Create User Profile

post/v1/user_profiles?beta=true

Headers

anthropic-versionstring
anthropic-betastring

Request body

external_idstring nullable

Platform's own identifier for this user. Not enforced unique. Maximum 255 characters.

namestring nullable

Optional for all profiles. Real-world name of the entity this profile represents (company or individual); for a company the platform resells Claude access to (access_type passthrough), that company's name where known. Maximum 255 characters.

access_type'application' | 'passthrough'

How the platform uses the API on behalf of the entity this profile represents. application: the platform sells a product that uses the API behind the scenes, and the profile represents an individual end-user of that product. passthrough: the platform resells raw inference, and the profile identifies the resold-to company.

external_user_onboarded_atstring date-time

A timestamp in RFC 3339 format

metadataobject

Free-form key-value data to attach to this user profile. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters. Values must be non-empty strings.

Example request

{
  "external_id": "user_12345",
  "external_user_onboarded_at": "2024-11-02T08:15:00Z",
  "metadata": {}
}

Response

Successful response (OK)

idstring required

Unique identifier for this user profile, prefixed uprof_.

type'user_profile' required

Object type. Always user_profile.

external_idstring nullable

Platform's own identifier for this user. Not enforced unique.

namestring nullable

Real-world name of the entity this profile represents (company or individual). For a company the platform resells Claude access to (access_type passthrough) this is that company's name.

access_type'application' | 'passthrough'

How the platform uses the API on behalf of the entity this profile represents. application: the platform sells a product that uses the API behind the scenes, and the profile represents an individual end-user of that product. passthrough: the platform resells raw inference, and the profile identifies the resold-to company.

external_user_onboarded_atstring date-time nullable

A timestamp in RFC 3339 format

trust_grantsobject required

Trust grants for this profile, keyed by grant name. Key omitted when no grant is active or in flight.

created_atstring date-time required

A timestamp in RFC 3339 format

metadataobject required

Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.

updated_atstring date-time required

A timestamp in RFC 3339 format

Example response

{
  "id": "uprof_011CZkZCu8hGbp5mYRQgUmz9",
  "type": "user_profile",
  "external_id": "user_12345",
  "name": "Example User",
  "access_type": "application",
  "trust_grants": {
    "cyber": {
      "status": "active"
    }
  },
  "external_user_onboarded_at": "2024-11-02T08:15:00Z",
  "metadata": {},
  "created_at": "2026-03-15T10:00:00Z",
  "updated_at": "2026-03-15T10:00:00Z"
}

Changes