from line 1
1---
2title: User Profiles
3url: https://platform.claude.com/docs/en/api/beta/user_profiles
4---
5
61# User Profiles
72
83## Create User Profile
94
10**post** `/v1/user_profiles`
5**POST** `/v1/user_profiles`
116
127Create User Profile
138
14### Header Parameters
9### Headers
1510
1611- `"anthropic-beta": optional array of AnthropicBeta`
1712
from line 84
8984
9085 - `"mid-conversation-tool-changes-2026-07-01"`
9186
92### Body Parameters
87### Body parameters
9388
9489- `access_type: optional "application" or "passthrough"`
9590
from line 98
10398
10499 Platform's own identifier for this user. Not enforced unique. Maximum 255 characters.
105100
101 minLength: 1, maxLength: 255
102
106103- `metadata: optional map[string]`
107104
108105 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.
from line 108
111108
112109 Optional for all profiles. Real-world name of the entity this profile represents (company or individual); for a resold-to company (`relationship` `resold` / `access_type` `passthrough`), that company's name where known. Maximum 255 characters.
113110
111 minLength: 1, maxLength: 255
112
114113- `relationship: optional "external" or "resold" or "internal"`
115114
116115 How the entity behind a user profile relates to the platform that owns the API key. `external`: an individual end-user of the platform. `resold`: a company the platform resells Claude access to. `internal`: the platform's own usage.
from line 122
123122
124123### Returns
125124
126- `BetaUserProfile object { id, created_at, metadata, 7 more }`
125- `BetaUserProfile object`
127126
128127 - `id: string`
129128
from line 132
133132
134133 A timestamp in RFC 3339 format
135134
135 format: date-time
136
136137 - `metadata: map[string]`
137138
138139 Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
from line 156
155156
156157 Object type. Always `user_profile`.
157158
158 - `"user_profile"`
159
160159 - `updated_at: string`
161160
162161 A timestamp in RFC 3339 format
163162
163 format: date-time
164
164165 - `access_type: optional "application" or "passthrough"`
165166
166167 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.
from line 190
189190
190191### Example
191192
192```http
193```bash
193194curl https://api.anthropic.com/v1/user_profiles \
194195 -H 'Content-Type: application/json' \
195196 -H 'anthropic-version: 2023-06-01' \
from line 202
201202 }'
202203```
203204
204#### Response
205#### Response (200)
205206
206207```json
207208{
from line 225
224225
225226## List User Profiles
226227
227**get** `/v1/user_profiles`
228**GET** `/v1/user_profiles`
228229
229230List User Profiles
230231
231### Query Parameters
232### Query parameters
232233
233234- `limit: optional number`
234235
235236 Query parameter for limit
236237
238 format: int32
239
237240- `order: optional "asc" or "desc"`
238241
239242 Query parameter for order
from line 249
246249
247250 Query parameter for page
248251
249### Header Parameters
252### Headers
250253
251254- `"anthropic-beta": optional array of AnthropicBeta`
252255
from line 341
338341
339342 A timestamp in RFC 3339 format
340343
344 format: date-time
345
341346 - `metadata: map[string]`
342347
343348 Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
from line 365
360365
361366 Object type. Always `user_profile`.
362367
363 - `"user_profile"`
364
365368 - `updated_at: string`
366369
367370 A timestamp in RFC 3339 format
368371
372 format: date-time
373
369374 - `access_type: optional "application" or "passthrough"`
370375
371376 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.
from line 403
398403
399404### Example
400405
401```http
406```bash
402407curl https://api.anthropic.com/v1/user_profiles \
403408 -H 'anthropic-version: 2023-06-01' \
404409 -H 'anthropic-beta: user-profiles-2026-08-18' \
from line 410
405410 -H "X-Api-Key: $ANTHROPIC_API_KEY"
406411```
407412
408#### Response
413#### Response (200)
409414
410415```json
411416{
from line 438
433438
434439## Get User Profile
435440
436**get** `/v1/user_profiles/{user_profile_id}`
441**GET** `/v1/user_profiles/{user_profile_id}`
437442
438443Get User Profile
439444
440### Path Parameters
445### Path parameters
441446
442447- `user_profile_id: string`
443448
444### Header Parameters
449### Headers
445450
446451- `"anthropic-beta": optional array of AnthropicBeta`
447452
from line 526
521526
522527### Returns
523528
524- `BetaUserProfile object { id, created_at, metadata, 7 more }`
529- `BetaUserProfile object`
525530
526531 - `id: string`
527532
from line 536
531536
532537 A timestamp in RFC 3339 format
533538
539 format: date-time
540
534541 - `metadata: map[string]`
535542
536543 Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
from line 560
553560
554561 Object type. Always `user_profile`.
555562
556 - `"user_profile"`
557
558563 - `updated_at: string`
559564
560565 A timestamp in RFC 3339 format
561566
567 format: date-time
568
562569 - `access_type: optional "application" or "passthrough"`
563570
564571 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.
from line 594
587594
588595### Example
589596
590```http
597```bash
591598curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \
592599 -H 'anthropic-version: 2023-06-01' \
593600 -H 'anthropic-beta: user-profiles-2026-08-18' \
from line 601
594601 -H "X-Api-Key: $ANTHROPIC_API_KEY"
595602```
596603
597#### Response
604#### Response (200)
598605
599606```json
600607{
from line 624
617624
618625## Update User Profile
619626
620**post** `/v1/user_profiles/{user_profile_id}`
627**POST** `/v1/user_profiles/{user_profile_id}`
621628
622629Update User Profile
623630
624### Path Parameters
631### Path parameters
625632
626633- `user_profile_id: string`
627634
628### Header Parameters
635### Headers
629636
630637- `"anthropic-beta": optional array of AnthropicBeta`
631638
from line 710
703710
704711 - `"mid-conversation-tool-changes-2026-07-01"`
705712
706### Body Parameters
713### Body parameters
707714
708715- `access_type: optional "application" or "passthrough" or null`
709716
from line 724
717724
718725 If present, replaces the stored external_id. Omit to leave unchanged. Maximum 255 characters.
719726
727 minLength: 1, maxLength: 255
728
720729- `metadata: optional map[string]`
721730
722731 Key-value pairs to merge into the stored metadata. Keys provided overwrite existing values. To remove a key, set its value to an empty string. Keys not provided are left unchanged. Maximum 16 keys, with keys up to 64 characters and values up to 512 characters.
from line 734
725734
726735 If present, replaces the stored name. Omit to leave unchanged. Maximum 255 characters.
727736
737 minLength: 1, maxLength: 255
738
728739- `relationship: optional "external" or "resold" or "internal" or null`
729740
730741 How the entity behind a user profile relates to the platform that owns the API key. `external`: an individual end-user of the platform. `resold`: a company the platform resells Claude access to. `internal`: the platform's own usage.
from line 748
737748
738749### Returns
739750
740- `BetaUserProfile object { id, created_at, metadata, 7 more }`
751- `BetaUserProfile object`
741752
742753 - `id: string`
743754
from line 758
747758
748759 A timestamp in RFC 3339 format
749760
761 format: date-time
762
750763 - `metadata: map[string]`
751764
752765 Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
from line 782
769782
770783 Object type. Always `user_profile`.
771784
772 - `"user_profile"`
773
774785 - `updated_at: string`
775786
776787 A timestamp in RFC 3339 format
777788
789 format: date-time
790
778791 - `access_type: optional "application" or "passthrough"`
779792
780793 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.
from line 816
803816
804817### Example
805818
806```http
819```bash
807820curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID \
808821 -H 'Content-Type: application/json' \
809822 -H 'anthropic-version: 2023-06-01' \
from line 827
814827 }'
815828```
816829
817#### Response
830#### Response (200)
818831
819832```json
820833{
from line 850
837850
838851## Create Enrollment URL
839852
840**post** `/v1/user_profiles/{user_profile_id}/enrollment_url`
853**POST** `/v1/user_profiles/{user_profile_id}/enrollment_url`
841854
842855Create Enrollment URL
843856
844### Path Parameters
857### Path parameters
845858
846859- `user_profile_id: string`
847860
848### Header Parameters
861### Headers
849862
850863- `"anthropic-beta": optional array of AnthropicBeta`
851864
from line 938
925938
926939### Returns
927940
928- `BetaUserProfileEnrollmentURL object { expires_at, type, url }`
941- `BetaUserProfileEnrollmentURL object`
929942
930943 - `expires_at: string`
931944
932945 A timestamp in RFC 3339 format
933946
947 format: date-time
948
934949 - `type: "enrollment_url"`
935950
936951 Object type. Always `enrollment_url`.
937952
938 - `"enrollment_url"`
939
940953 - `url: string`
941954
942955 Enrollment URL to send to the end user. Valid until `expires_at`.
from line 956
943956
944957### Example
945958
946```http
959```bash
947960curl https://api.anthropic.com/v1/user_profiles/$USER_PROFILE_ID/enrollment_url \
948961 -X POST \
949962 -H 'anthropic-version: 2023-06-01' \
from line 964
951964 -H "X-Api-Key: $ANTHROPIC_API_KEY"
952965```
953966
954#### Response
967#### Response (200)
955968
956969```json
957970{
from line 974
961974}
962975```
963976
964## Domain Types
977## Domain types
965978
966979### Beta User Profile
967980
968- `BetaUserProfile object { id, created_at, metadata, 7 more }`
981- `BetaUserProfile object`
969982
970983 - `id: string`
971984
from line 988
975988
976989 A timestamp in RFC 3339 format
977990
991 format: date-time
992
978993 - `metadata: map[string]`
979994
980995 Arbitrary key-value metadata. Maximum 16 pairs, keys up to 64 chars, values up to 512 chars.
from line 1012
9971012
9981013 Object type. Always `user_profile`.
9991014
1000 - `"user_profile"`
1001
10021015 - `updated_at: string`
10031016
10041017 A timestamp in RFC 3339 format
10051018
1019 format: date-time
1020
10061021 - `access_type: optional "application" or "passthrough"`
10071022
10081023 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.
from line 1046
10311046
10321047### Beta User Profile Enrollment URL
10331048
1034- `BetaUserProfileEnrollmentURL object { expires_at, type, url }`
1049- `BetaUserProfileEnrollmentURL object`
10351050
10361051 - `expires_at: string`
10371052
10381053 A timestamp in RFC 3339 format
10391054
1055 format: date-time
1056
10401057 - `type: "enrollment_url"`
10411058
10421059 Object type. Always `enrollment_url`.
10431060
1044 - `"enrollment_url"`
1045
10461061 - `url: string`
10471062
10481063 Enrollment URL to send to the end user. Valid until `expires_at`.
from line 1064
10491064
10501065### Beta User Profile Trust Grant
10511066
1052- `BetaUserProfileTrustGrant object { status }`
1067- `BetaUserProfileTrustGrant object`
10531068
10541069 - `status: "active" or "pending" or "rejected"`
10551070
No line in this hunk matches that.