Residents
Current and past tenants. List and retrieve, plus async write-back to update a resident.
Writing back to the PMS. Updating a resident is an async write-back: PATCH returns an Operation immediately and the change is reconciled to the source PMS in the background. See the Operations page.
get
/v1/residentsList residents
Query parameters
limitinteger — Page size, 1–100.offsetinteger — Zero-based record offset.include_deletedboolean — Include soft-deleted records.updated_afterstring — Return records with updated_at >= this ISO 8601 datetime.created_afterstring — Return records with created_at >= this ISO 8601 datetime.created_beforestring — Return records with created_at <= this ISO 8601 datetime.x_idstring — External PMS identifier (exact match). Comma-separated list matches ANY (OR).integration_idstring — Integration UUID (exact match). Comma-separated list of UUIDs matches ANY (OR).order-bystringproperty_idstring — Exact match; comma-separated list matches ANY (OR).lease_idstring — Exact match; comma-separated list matches ANY (OR).statusstring — Exact match; comma-separated list matches ANY (OR).typestring — Exact match; comma-separated list matches ANY (OR).first_namestring — Case-insensitive substring match.last_namestring — Case-insensitive substring match.
Response · 200
Page of residents
| Field | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| meta* | object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| results* | array<object> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Errors
400— Validation error401— Missing or invalid API key429— Rate limit exceeded
get
/v1/residents/{id}Retrieve a resident
Path & headers
id· path · required
Query parameters
include_deletedboolean — Include soft-deleted records.
Response · 200
The resident
| Field | Type | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| id* | string | ||||||||||
| x_id* | string | ||||||||||
| organization_id* | string (uuid) | ||||||||||
| integration_id* | string (uuid) | ||||||||||
| first_name | string | null | ||||||||||
| middle_name | string | null | ||||||||||
| last_name | string | null | ||||||||||
| display_name | string | null | ||||||||||
| status | string | null | ||||||||||
| type | string | null | ||||||||||
| emails | array<object> | null | ||||||||||
| phones | array<object> | null | ||||||||||
| address | object | null | ||||||||||
| date_of_birth | string (date) | null | ||||||||||
| gender | string | null | ||||||||||
| ssn_last_four | string | null | ||||||||||
| driver_license_number | string | null | ||||||||||
| driver_license_state | string | null | ||||||||||
| emergency_contact_name | string | null | ||||||||||
| emergency_contact_phone | string | null | ||||||||||
| emergency_contact_relationship | string | null | ||||||||||
| move_in_date | string (date) | null | ||||||||||
| move_out_date | string (date) | null | ||||||||||
| lease_ids* | array<string> | ||||||||||
| property_ids* | array<string> | ||||||||||
| balance* | object | null | ||||||||||
| |||||||||||
| preferred_language | string | null | ||||||||||
| preferred_contact_method | string | null | ||||||||||
| custom_data* | object | ||||||||||
| created_at* | string (date-time) | ||||||||||
| updated_at* | string (date-time) | ||||||||||
| deleted_at | string (date-time) | null | ||||||||||
| ps_synced_at | string (date-time) | null | ||||||||||
Errors
400— Validation error401— Missing or invalid API key404— Resource not found429— Rate limit exceeded
patch
/v1/residents/{id}Update a resident (async write-back)
Path & headers
id· path · requiredIdempotency-Key· header · required
Request body (required)
| Field | Type | Description |
|---|---|---|
| first_name | string | |
| last_name | string | |
| middle_name | string | |
| emails | array<object> | |
| phones | array<object> | |
| address | object |
Response · 202
Write operation queued
| Field | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| id* | string | ||||||||||||||||
| object* | string | ||||||||||||||||
| type* | string | ||||||||||||||||
| status* | string | ||||||||||||||||
| source | object | ||||||||||||||||
| |||||||||||||||||
| reconcile | object | ||||||||||||||||
| |||||||||||||||||
| resource | object | ||||||||||||||||
| |||||||||||||||||
| result | object | null | ||||||||||||||||
| idempotency_key | string | null | ||||||||||||||||
| created_at* | string (date-time) | ||||||||||||||||
Errors
400— Validation error401— Missing or invalid API key403— Insufficient permissions404— Resource not found409— Duplicate idempotency key with different payload422— Semantic validation error429— Rate limit exceeded
Next
See the Operations page for the async write-back flow, or the Common Data Model for the full entity shapes.