Skip to main content
Every error response from the CS2Cap API includes two fields: a stable machine-readable code you can branch on in code, and a human-readable detail string you can surface to users or log for debugging. You never have to parse error message text to determine what went wrong.

HTTP status codes

Error payload format

Every error response uses the same JSON structure:
Use code for programmatic error handling. Use detail for logging or displaying context to users.

Error codes by category

When you receive a 429, or a 409 STREAM_ALREADY_ACTIVE from a bulk streaming endpoint, read the Retry-After header. It contains the number of seconds you must wait before the next request will succeed.The response also includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-RateLimit-Tier headers for monitoring your usage.
Index unavailability errors are temporary. They typically resolve within minutes. Implement an exponential backoff retry strategy with a cap of a few minutes.

Retry guidance

For 429 responses and bulk-stream 409 conflicts: Read the Retry-After response header. It contains the number of seconds to wait before retrying. Do not retry before that window expires.
For 503 responses: The service or a specific index is temporarily unavailable. These errors are transient — retry after a short delay using exponential backoff. If the error persists beyond a few minutes, check the CS2Cap status page.
Last modified on July 12, 2026