API and integration

Common conventions

Response format, pagination and errors.

Every response is JSON. The conventions below hold across all endpoints.

Paginated lists

Some list endpoints return an envelope:

{
  "data": [ ... ],
  "total": 5620,
  "page": 1,
  "limit": 50,
  "totalPages": 113
}
Not every list is enveloped — some return a bare array. Check the shape of the response before building against it.

Errors

Error responses share one shape:

{
  "message": "This task is private — only the assignee can see its contents",
  "error": "Forbidden",
  "statusCode": 403
}

For validation failures message may be an array — one line per field.