/api/v1/people
Create a person
Create a new person in your organization.
Last updated
Request
POST /api/v1/people
Requires people:create. See token permissions. Every listed permission is required for this endpoint.
Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json. Send request bodies as JSON with Content-Type: application/json.
Request body
| Field | Type | Usage |
|---|---|---|
first_name |
string | Required on creation. Up to 255 characters; cannot be empty when supplied. |
last_name |
string | Required on creation. Up to 255 characters; cannot be empty when supplied. |
email |
string or null | Optional. Valid email address, up to 255 characters. |
title |
string or null | Optional. Job title, up to 255 characters. |
department |
string or null | Optional. Up to 255 characters. |
phone_number |
string or null | Optional. Up to 255 characters. |
is_external |
boolean | Optional. Whether this person belongs to an external organization. |
organization |
string or null | Optional. Up to 255 characters; used when is_external is true. |
Fetch available values before choosing IDs. IDs and required fields vary by organization.
Example
Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization.
curl --request POST "https://my.assetcenter.app/api/v1/people" \
--header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"first_name":"Alex","last_name":"Morgan","email":"[email protected]"}'
Response
201 Created. Example response; IDs, values, and timestamps will differ in your organization.
{
"data": {
"id": 123,
"first_name": "Alex",
"last_name": "Morgan",
"email": "[email protected]",
"title": null,
"department": null,
"phone_number": null,
"is_external": false,
"organization": null,
"status": "active",
"created_at": "2026-09-07T16:00:00.000000Z",
"updated_at": "2026-09-07T16:00:00.000000Z"
}
}
Behavior and constraints
Required: first_name and last_name. Creation respects plan limits. Use only the fields listed here; assignments, status, IDs, timestamps, and file uploads are not writable through this endpoint. Each successful POST creates a new record. Inventory creation has no idempotency replay protection.
Errors
401 means the token is missing, expired, revoked, or not a customer API token. 403 means a required permission or administrator access is missing. 422 identifies invalid or unsupported input; inspect the errors object when present. 409 indicates a conflicting state or concurrent change; inspect the message and refresh the record before deciding how to proceed. 429 means a rate limit was reached. See error handling and rate limits.