Base URL
Request format
- All requests must use TLS 1.2+. Plain HTTP is rejected.
- JSON request bodies must include
Content-Type: application/json. - Dates and timestamps are ISO 8601 UTC strings.
Response format
Every response includes:Content-Type: application/json- A JSON body. On error the body matches the error shape.
data key).
On failure, the body is { "statusCode": <number>, "message": "<string>" }.
Authentication
Server-to-server requests to documented external API routes are authenticated with an API key pair:
Key pairs are scoped to a tenant + environment. A live key pair (
pk_live_ / sk_live_) targets your live environment; a test key pair (pk_test_ / sk_test_) targets a sandbox environment. Admin-console routes use user sessions and reject API-key callers unless the route is explicitly documented for API-key access.
See Authentication for full details.
Environments
Each tenant has one permanent live environment and any number of sandbox environments. API keys are bound to a specific environment — you do not need to pass an environment ID in requests; it is resolved from the key.Customers
Customers are the end-users (buyers, sellers, or account holders) that belong to your tenant. In the backend they are/users resources.
Accounts
Accounts represent escrow transactions. Each account links two parties (or one for non-real-estate types) and tracks compliance through its lifecycle.KYC
Pagination
List endpoints use page-based pagination:
All paginated responses include
total, page, totalPages, and a limit (or pageSize) field.
Errors
The API uses standard HTTP status codes:
Error responses always follow this shape:
Quick links
Authentication
API key pairs, scopes, and rotation.
Environments
List and retrieve tenant environments.
Customers
List and retrieve customers by environment.
Accounts
List and manage escrow account lifecycles.
Errors
Full error code reference.