Errors and limits
Handle API errors, request IDs, pagination, and rate limits.
Error response
The API returns one structured error object:
{
"error": {
"code": "validation_failed",
"message": "validation error\nincident title must be between 1 and 200 characters",
"details": [],
"request_id": "b4a3b2ad5f05494697dd0f2fe7c28a72"
}
}Include request_id when you report an API problem. The same value is in the X-Request-ID response header.
| Status | Meaning |
|---|---|
400 | A path parameter, query parameter, cursor, or JSON body is invalid. |
401 | The request does not contain a developer token. |
403 | The token, scope, membership, or role does not permit the request. |
404 | The resource does not exist in the token's team. |
409 | The request conflicts with current data or an idempotency key. |
422 | The body is valid JSON but fails resource validation. |
429 | The token exceeded a rate limit. |
500 | Stazus could not complete the request. |
Pagination
List endpoints accept limit and cursor.
limitaccepts1through100. The default is50.cursormust be the unmodified value frompagination.next_cursor.- Stop when
pagination.has_moreisfalse. - Keep the same endpoint and filters for every page. Restart without a cursor
when a filter changes or the API returns
invalid_cursor.
Do not create or decode cursor values. Stazus can change their internal format.
curl \
-H "Authorization: Bearer $SIFTR_DEVELOPER_TOKEN" \
"https://siftr-backend.jdqc.dev/api/public/v2/incidents?limit=50&cursor=CURSOR_FROM_RESPONSE"Rate limits
Read routes accept 120 requests per minute for each token. Write routes accept 30 requests per minute for each token.
Each authenticated response contains:
RateLimit-LimitRateLimit-RemainingRateLimit-Reset
A 429 response also contains Retry-After. Wait for that number of seconds before another request.
Request size
Request bodies have a 1 MiB limit. Incident metadata has a 64 KiB encoded JSON limit.
Idempotent operations
These operations require an Idempotency-Key header:
- Create an incident.
- Merge incidents.
- Add an incident comment.
- Add an incident checkpoint.
Use a unique value for each intended operation. Reuse a key only when you retry the exact same URL and request body.
Stazus keeps the key for 24 hours. A repeated request with the same body returns the original response. The response includes Idempotent-Replayed: true.
Stazus returns 409 if the same key is in progress or is used with a different
request.
Last updated on