API V2 Route: Profiles
Last updated: October 5, 2026
General Details:
| Endpoint |
/api/v2/profiles and /api/v2/profiles/<id>
|
| Headers | Authorization: <JWT> |
| HTTP Methods |
GET and POST
|
GET Details:
| Request Body Format | N/A |
| Response Body Format | JSON |
| Required Scopes | PROFILES_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 |
|---|---|---|
dateCreated |
date or Date Filter | An ISO date string or a complex Date Filter can be utilized |
sisId |
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 | |
| sisId | string | |
| preferredName | string | |
| dateOfBirth | date string | ISO Date string |
| phone | string | |
| isSensitive | boolean | If the Profile is marked as sensitive |
| emails | ProfileEmail[] | |
| tags | string[] | An array of Tag Captions |
Example Collection Response:
{
"entities": [
{
"id": "11",
"name": "Lela Hoeger",
"sisId": "3gvg8",
"preferredName": "",
"dateOfBirth": "1956-11-18T00:00:00.000Z",
"phone": "",
"isSensitive": false,
"emails": [
{
"email": "[email protected]",
"isPreferred": false,
"isAuthEmail": false
}
],
"tags": [
"Athlete-Rugby",
"LLC-LGBTQ+"
]
},
{
"id": "12",
"name": "Myron Bashirian",
"sisId": "rxvd6",
"preferredName": "",
"dateOfBirth": "1953-11-29T00:00:00.000Z",
"phone": "+131868239194914",
"isSensitive": false,
"emails": [
{
"email": "[email protected]",
"isPreferred": false,
"isAuthEmail": false
}
],
"tags": [
"Athlete-Rugby",
"LLC-LGBTQ+"
]
}
],
"metaData": {
"agentId": "634afe7e-b41d-470e-98c1-c9fb147e7226",
"rateLimits": {
"tenant": {
"limit": 50,
"remaining": 49,
"reset": 1761921241000
},
"agent": {
"limit": 10,
"remaining": 9,
"reset": 1761921241000
}
},
"pagination": {
"offset": 0,
"limit": 2
}
}
}
POST Details:
| Request Body Format | JSON |
| Response Body Format | JSON |
| Required Scopes | PROFILES_POST |
POST Behavior:
Housing.Cloud will create or update the Profile entity based on the existence (or lack there of) of a Profiles sisId.
POST API Request Body:
Housing.Cloud supports batch creation, as such every POST payload should contain an array of objects with the following structure:
| Field Name | Data Type | Required | Notes |
|---|---|---|---|
| sisId | string | Yes | Unique value of the Profile used to determine operation |
| name | string | Yes | |
| emails | ProfileEmail[] | Yes | The full set of emails |
| preferredName | string | No | |
| dateOfBirth | ISO date string | No | |
| phone | string | No | |
| isSensitive | boolean | No |
Example POST Collection Request:
[
{
"name": "Lela Hoeger",
"sisId": "3gvg8",
"dateOfBirth": "1956-11-18T00:00:00.000Z",
"isSensitive": false,
"addressId": "345",
"emails": [
{
"email": "[email protected]",
"isPreferred": true
}
]
},
{
"name": "Robert Test",
"sisId": "rxvd6",
"preferredName": "Bob",
"isSensitive": true,
"emails": [
{
"email": "[email protected]",
"isPreferred": true
}
]
}
]