Skip to main content
POST
Create and onboard a user
Creates a user and onboards them through the Zero-Touch (access-template) flow in a single call, provisioning the access the template rules match for the user’s org info. Omit scheduled_at to provision now, or pass a future timestamp to defer it.
This is all-or-nothing: if onboarding cannot start, nothing is created. It also fails if a user with the email already exists.
Related endpoints:

Authorizations

Authorization
string
header
required

Bearer token authentication. Pass your AccessOwl API token in the Authorization header as Bearer <token>.

Headers

Idempotency-Key
string

Optional key (1–255 chars) for safely retrying a request. Reusing the same key for the same request returns 409 Conflict and is not processed again — this confirms the request was already received. Keys are retained for 14 days.

Required string length: 1 - 255

Body

application/json

Create and onboard parameters

Request body for creating a new user and onboarding them via the Zero-Touch (access-template) flow in one step. The org-info fields are set on the new user so the template rules can match. Omit scheduled_at to provision now; provide a future timestamp to defer provisioning to that date.

email
string<email>
required

Email address

first_name
string
required

First name

last_name
string
required

Last name

manager_user_id
string<uuid>
required

Manager (user)

departments
string[]

Departments the user belongs to

employment_type
enum<string> | null

Employment type

Available options:
full_time,
part_time,
contract,
freelance,
internship,
apprenticeship,
working_student,
training
job_title
string | null

Job title

location_city
string | null

City location

scheduled_at
string<date-time> | null

When to provision access. Omitted or null provisions now; a future ISO 8601 timestamp defers it.

teams
string[]

Teams the user belongs to

Response

User created and onboarding triggered

A user in the organization

email
string<email>
required

Email address

first_name
string
required

First name

id
string<uuid>
required

User ID

last_name
string
required

Last name

status
enum<string>
required

Current status

Available options:
active,
inactive,
onboarding,
onboarding_provisioning_planned,
offboarding,
offboarding_planned,
offboarded
deactivated_at
string<date-time> | null

Deactivation timestamp

departments
string[]

Departments the user belongs to

employment_type
enum<string> | null

Employment type

Available options:
full_time,
part_time,
contract,
freelance,
internship,
apprenticeship,
working_student,
training
full_name
string

Full name (computed)

inserted_at
string<date-time>

Creation timestamp

job_title
string | null

Job title

location_city
string | null

City location

manager_user_id
string<uuid> | null

Manager user ID

teams
string[]

Teams the user belongs to

updated_at
string<date-time>

Last update timestamp

Last modified on September 29, 2026