Skip to main content
POST
http://localhost:3000
/
users
curl -X POST 'https://api.example.com/users' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "kindeId": "kp_abc123",
    "email": "jane@acme.com",
    "firstName": "Jane",
    "lastName": "Doe",
    "defaultTenantId": "tenant_acme"
  }'
{
  "id": "user_0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
  "subjectId": "subject_0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5c",
  "kindeId": "kp_abc123",
  "email": "jane@acme.com",
  "emailVerified": false,
  "firstName": "Jane",
  "lastName": "Doe",
  "displayName": "Jane Doe",
  "defaultTenantId": "tenant_acme",
  "status": "active",
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}

Request Body

id
string
Optional client-provided ID. Format: user_{uuidv7}
kindeId
string
required
External IDP identifier (Kinde sub claim)
email
string
required
User’s email address
emailVerified
boolean
Whether the email is verified. Default: false
firstName
string
First name
lastName
string
Last name
displayName
string
Display name (defaults to firstName + lastName or email)
avatarUrl
string
URL to avatar image
defaultTenantId
string
Default tenant for the user

Response

Returns the created user object. Also creates an associated Bedrock subject automatically.
curl -X POST 'https://api.example.com/users' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "kindeId": "kp_abc123",
    "email": "jane@acme.com",
    "firstName": "Jane",
    "lastName": "Doe",
    "defaultTenantId": "tenant_acme"
  }'
{
  "id": "user_0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
  "subjectId": "subject_0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5c",
  "kindeId": "kp_abc123",
  "email": "jane@acme.com",
  "emailVerified": false,
  "firstName": "Jane",
  "lastName": "Doe",
  "displayName": "Jane Doe",
  "defaultTenantId": "tenant_acme",
  "status": "active",
  "createdAt": "2024-01-15T10:30:00Z",
  "updatedAt": "2024-01-15T10:30:00Z"
}