/api. Every CRM record type shares the same endpoint shape, so once you learn the pattern you can work with any resource.
All endpoints require authentication (see Authentication).
Built-in resources
Use any of these as the:resource segment in the endpoints below:
Custom CRM objects
If your organization defines custom objects in the database, the:resource segment can also be the custom object’s slug. These resolve dynamically per organization and support the same CRUD endpoints as built-in resources.
Endpoints
List records
Content-Range header for pagination:
<resource> <start>-<end>/<total>
Get one record
Create a record
Update a record
Delete a record
Restore a record
Merge contacts
:resource pattern.
Endpoint summary
Query parameters
Use these onGET /api/:resource to control pagination, filtering, and sorting.
range
JSON array specifying the inclusive start and end indices for pagination.
[0, 24].
filter
JSON object for legacy filter support. Keys are field names, values are the match criteria.
filters
JSON array of filter objects for advanced filtering. Each object specifies a field, operator, value, and optional logical operator.
sort and order
Single-field sort.
sorts
JSON array of sort objects for multi-field sorting.
Full example
Pagination with Content-Range
List responses include aContent-Range header:
Use this to build pagination controls on the client side. Increment the
range parameter to fetch the next page:
Request body format
- Send JSON with
Content-Type: application/json. - The API accepts snake_case field names (e.g.
first_name,company_id). The server maps these to internal camelCase for built-in tables automatically. - Writable fields per resource are enforced server-side via a whitelist. Fields not in the whitelist are silently ignored.

