Getting started
Errors
The API uses conventional HTTP status codes and always returns a consistent JSON error shape.
Error shape
Every error response has an error code (stable, safe to switch on) and a message (human-readable, may change):
json
{
"error": "invalid_replay",
"message": "The uploaded file could not be parsed as an Unreal replay."
}Status codes
| Status | error | Meaning |
|---|---|---|
400 | invalid_replay | The file is corrupt or of an unsupported replay format. |
401 | unauthorized | The API key is missing or invalid. |
413 | file_too_large | The upload exceeds the 35 MB limit. |
415 | unsupported_file | The upload is not a .replay file (fails the magic-byte check). |
422 | parse_timeout | Parsing took too long and was aborted. |
429 | rate_limited | You exceeded your rate limit. Retry after the given delay. |
500 | internal_error | An unexpected server error occurred. Safe to retry. |
Handling errors
Branch on the error code rather than the message text. Codes are stable across releases; messages are for humans and may be reworded. For 429, honor the Retry-After header; for 500, a retry with backoff is safe.