API V2 Route: Custom Profile Fields
Last updated: October 5, 2026
General Details:
| Endpoint |
/api/v2/profile-fields and /api/v2/profile-fields/<id>
|
| Headers | Authorization: <JWT> |
| HTTP Methods | GET |
| Request Body Format | N/A |
| Response Body Format | JSON |
| Required Scopes | PROFILE_FIELDS_GET |
Supported Request Filters:
These filters should be query parts in the URL string and follow the standard pattern of <baseUrl>?<key>=<filter>&...
| Field Name | Filter Type | Notes |
|---|---|---|
name |
string or String Filter | A string or complex string filter can be utilized |
API Response:
| Field Name | Data Type | Notes |
|---|---|---|
| id | string | Globally unique identifier |
| name | string | |
| type | enum string* | See values below |
| isRequired | boolean | Whether or not the Profile Field is required by users to complete |
| choices | Profile Field Choice or null | The value will be null if the type does not require choices. See data model below |
| ranges | Profile Field Range or null | The value will be null if the type does not require ranges. See data model below |
Custom Profile Field Type Options
| Type | Description |
|---|---|
| TEXT | A free form paragraph of text |
| LINE | A free form singular line of text |
| RADIO | A list of options, but only one may be selected |
| CHECKBOX | A list of options, but several may be selected |
| INTEGER | A number |
| SOCIAL | A link to a social media website |
| NUMERICAL_RANGE | A range containing numerical bounds |
Profile Field Choice Model
| Field Name | Data Type | Notes |
|---|---|---|
| id | string | Globally unique identifier |
| text | string | The option text |
| tagsToAdd | string[] | An array of Tag Captions. If this choice were assigned, the tags would be assigned to the Profile |
Profile Field Choice Model
| Field Name | Data Type | Notes |
|---|---|---|
| id | string | Globally unique identifier |
| limitStart | number | The lower bound of the range |
| limitEnd | number | The upper bound of the range |
| tagsToAdd | string[] | An array of Tag Captions. If this choice were assigned, the tags would be assigned to the Profile |
Example Collection Response:
{
"entities": [
{
"id": "2",
"name": "Gender Identity",
"type": "RADIO",
"isRequired": true,
"choices": [
{
"id": "5",
"text": "Male",
"tagsToAdd": [
"Male"
]
},
{
"id": "6",
"text": "Female",
"tagsToAdd": [
"Female"
]
},
{
"id": "7",
"text": "Other",
"tagsToAdd": []
},
{
"id": "8",
"text": "Prefer not to disclose",
"tagsToAdd": []
}
],
"ranges": null
},
{
"id": "3",
"name": "Pronouns",
"type": "LINE",
"isRequired": true,
"choices": null,
"ranges": null
},
{
"id": "4",
"name": "Preferred Name",
"type": "LINE",
"isRequired": true,
"choices": null,
"ranges": null
}
],
"metaData": {
"agentId": "ab5f95b2-303a-403b-85fd-ab1d0cd8093c",
"rateLimits": {
"tenant": {
"limit": 50,
"remaining": 49,
"reset": 1759525677000
},
"agent": {
"limit": 10,
"remaining": 9,
"reset": 1759525677000
}
},
"pagination": {
"offset": 0,
"limit": 1000
}
}
}
Example Individual Response:
{
"entity": {
"id": "3",
"name": "Pronouns",
"type": "LINE",
"isRequired": true,
"choices": null,
"ranges": null
},
"metaData": {
"params": {
"id": "3"
},
"agentId": "ab5f95b2-303a-403b-85fd-ab1d0cd8093c",
"rateLimits": {
"tenant": {
"limit": 50,
"remaining": 49,
"reset": 1759525701000
},
"agent": {
"limit": 10,
"remaining": 9,
"reset": 1759525702000
}
}
}
}