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.