API Errors
View as MarkdownEvery non-2xx response from the Simmit API returns the same JSON envelope. Branch on code, log error, and read meta when you need additional context.
#Response shape
{
"error": "Human-readable message describing what went wrong.",
"code": "machine_readable_code",
"meta": {}
}Human-readable message safe to log. Don't branch on it; the wording can change.
Stable, machine-readable identifier for this error. Branch on this.
Additional structured context relevant to this specific code. Shape varies by code; null when no additional context applies.
#Status codes
Validation failed. The body, query, header, or path didn't match the endpoint's schema.
Missing, invalid, expired, or revoked Authorization header. Re-issue your secret key under Clients & Keys.
Your account doesn't have enough credits to reserve this job, or it's inactive. Top up or reactivate, then retry.
Idempotency conflict (reused key with a different payload), or /result was polled before the job reached a terminal status.
Request body exceeds the platform limit. Most commonly profile text above 2 MB, or too many profileset variants in one input.
Input was syntactically valid but semantically rejected. Most commonly a SimC profile containing a blocked directive (see Input Constraints), or a terminal job that produced no result payload.
Rate limit exceeded, or your account's in-flight job limit is full. Honour Retry-After. Responses include X-RateLimit-Remaining and X-RateLimit-Reset where applicable.
Unhandled error on Simmit's side. Safe to retry with exponential backoff.
Simmit is in a maintenance window or a transient dependency is degraded. Retry after the window or with exponential backoff.
#Useful error codes
You don't need to memorize every code value. The codes below are the ones a real integration is most likely to branch on. The API Reference documents the full set per endpoint.
- Your account ran out of credits for this job's reservation. Top up before retrying.
- Your account is inactive. Activate before retrying.
- The
idempotency-keyheader was reused with a different request body. See Idempotency.
/resultwas polled before the job reached a terminal status. Use/statusfirst.
- The submitted SimC profile contained a directive Simmit doesn't allow.
meta.docsUrllinks to the constraints. See Input Constraints.
- Too many requests for this client in the current window. Honour
Retry-After.
- Your account already has the maximum number of jobs in flight. Wait for some to finish.
- Simmit is in a planned maintenance window. Retry once the window closes.