# Sailer API - [Sailer API](https://docs.chatsailer.com/index.md): A REST API for the contacts, conversations, and campaigns in your Sailer workspace. - [Quickstart](https://docs.chatsailer.com/guides/quickstart.md): Make your first authenticated request and read a contact. - [Authentication](https://docs.chatsailer.com/guides/authentication.md): Token format, scopes, and what a workspace token can reach. - [Pagination](https://docs.chatsailer.com/guides/pagination.md): One cursor scheme across every collection. - [Errors](https://docs.chatsailer.com/guides/errors.md): One error shape, a stable code, and what to do about each type. - [Custom fields](https://docs.chatsailer.com/guides/custom-fields.md): Workspace-defined fields, on the wire. - [Heartbeat](https://docs.chatsailer.com/api-reference/heartbeat/heartbeat.md) - [Heartbeat Head](https://docs.chatsailer.com/api-reference/heartbeat/heartbeat-head.md): ALB/ECS probes: empty 200 without serializing pool JSON. - [Effective write policy for this workspace](https://docs.chatsailer.com/api-reference/meta/effective-write-policy-for-this-workspace.md): Mirror of the internal ``GET /crm/capabilities``, minus the per-user grant layer — tokens are gated by scopes instead. The company policy (ADR 2026-07-29-001) binds every actor, tokens included. - [Describe the current token](https://docs.chatsailer.com/api-reference/meta/describe-the-current-token.md) - [List contacts](https://docs.chatsailer.com/api-reference/contacts/list-contacts.md): Returns contacts newest-first by default. - [Create or update a contact](https://docs.chatsailer.com/api-reference/contacts/create-or-update-a-contact.md): The endpoint to build a sync on. Matches an existing contact by `phone`; creates one when there is no match. - [Create a contact](https://docs.chatsailer.com/api-reference/contacts/create-a-contact.md): Creates one contact. - [Search contacts](https://docs.chatsailer.com/api-reference/contacts/search-contacts.md): For queries `GET /v1/contacts` cannot express: nested and/or, ranges, and conditions across relationships. - [Retrieve a contact](https://docs.chatsailer.com/api-reference/contacts/retrieve-a-contact.md) - [Update a contact](https://docs.chatsailer.com/api-reference/contacts/update-a-contact.md): Only the fields you send are changed. Send `null` to clear a field; omit it to leave it alone. `custom_fields` merges the same way. ## OpenAPI Specs - [openapi](/api-reference/openapi.json)