Skip to main content

Error shape

This is a FastAPI service, so most errors come back as a plain JSON object:
detail is usually a human-readable string. The one exception is 422 Unprocessable Entity — a request-body/query validation failure raised by FastAPI itself before your handler ever runs — where detail is an array of per-field problems instead:

Status codes you’ll see across this API

Pagination

List endpoints take limit and offset query parameters. There’s no single envelope shared across every resource — it varies by endpoint, so check the specific page:
  • Header-based: some list endpoints (e.g. GET /contacts) return a bare JSON array and put the total match count (ignoring limit/offset) in the X-Total-Count response header, so you can compute total pages without a second request.
  • Body-based: others (e.g. GET /files/list) wrap the array in an object alongside the pagination params you sent: {"files": [...], "limit": 50, "offset": 0}.
  • Bare array, no total: others (e.g. GET /deals) just return the page as a JSON array with no total-count signal at all — keep incrementing offset until you get back fewer rows than limit.
Each endpoint in the Core CRM API reference states which shape it uses. limit defaults and caps also vary per endpoint (commonly defaulting to 50–200 and capped at 200–500 server-side regardless of what you pass) — again, see the specific endpoint.