Error Codes
HTTP status codes and error responses
SilentAPI returns HTTP status codes. Error responses follow the format of the request endpoint.
HTTP Status Codes
| Code | Meaning | What to Do |
|---|---|---|
| 200 | Success | Process the response |
| 400 | Bad request | Check the request body, model name, and parameters |
| 401 | Missing API key | Send your API key in an accepted header |
| 402 | Insufficient credits | Add credits or increase the API key budget |
| 403 | Forbidden | API access may be disabled for your account |
| 404 | Service not found | The model ID does not exist |
| 413 | Input too large | Reduce the request size or image dimensions |
| 415 | Unsupported media type | Use application/json or multipart/form-data |
| 422 | Input rejected | Check the file, encryption, and request parameters |
| 429 | Rate limited | Wait and retry, or reduce request frequency |
| 500 | Internal error | Retry the request, contact support if it persists |
| 502 | Service error | The model returned an error, fallback may apply |
| 503 | Service unavailable | The service is temporarily disabled or overloaded |
Error Response Formats
OpenAI Style
{
"error": {
"message": "Insufficient credits",
"type": "silentapi_error"
}
}
Anthropic Style
{
"type": "error",
"error": {
"type": "api_error",
"message": "Insufficient credits"
}
}
Gemini Style
{
"error": {
"code": 402,
"message": "Insufficient credits",
"status": "SILENTAPI_ERROR"
}
}
Common Error Messages
| Message | Cause |
|---|---|
| Insufficient credits | The balance cannot cover the request or is zero. |
| This model doesn't exist. | The model ID is unknown and has no compatible match. |
| Prompt is required. | The request prompt is missing. |
| This account has reached its internal safety limit. Please contact contact@silentapi.com if you need this raised. | The account API minute limit was reached. |
| This API key has reached its monthly budget. | The key budget was reached. Change it on the Keys page. |
| This service is temporarily disabled. | Select another service. |
| The service is busy. Try again shortly. | The service or a shared quota is busy. A 429 response can include Retry-After. |
| The service could not complete the request. Try again shortly. | The service failed during the request. |
| The request was not accepted. Check the parameters and try again. | The request has invalid parameters. |
| The request is too large. | The request is larger than the endpoint allows. |
| The request was blocked by a content filter. | The request was blocked by a content filter. |
| The input is longer than the model context. | The input is longer than the model context. |
| Please wait before trying again | An account media operation limit was reached. |
| API key is required | No accepted API key was sent. |
| Invalid API key | The API key is not valid. |
| API key has expired | The key has passed its expiry date. |
| API key is disabled | The key is disabled. |
| API access is disabled for this account. | API access is disabled. |
| Insufficient credits for the requested maximum usage. | The balance cannot cover the request hold. |
| This model is not available right now. | The model has no active price. |
| Service is not configured. | The service cannot accept requests. |
| Request body is not valid JSON. | Correct the JSON body. |
| Request body is too large. | Reduce the encoded request body. |
| Request body is not valid form data. | Correct the multipart form. |
| A file is required. | Send a file, data URL, or supported HTTPS URL. |
| Image format is required. | Set format for image conversion. |
| Input is required. | Send nonempty moderation input. |
| This model does not support OCR. | Select an OCR model. |
| This model does not support moderation. | Select a moderation model. |
| This model does not create music. | Select a music model. |
| The lookup service is unavailable. | Retry after the wait time in Retry-After. |
| Enter a valid IP address. | The lookup IP address is invalid. |
| Enter a valid email address. | The email lookup input is missing. |
| Too many requests. Try again in one minute. | The status endpoint limit was reached. Wait 60 seconds. |
| Case | Status | Notes |
|---|---|---|
| The service is busy | 429 | Includes Retry-After: 5 |
| A shared service quota is reached | 429 | Retry-After gives the wait time of that quota |
| An account limit is reached | 429 | Retry-After can be absent |
| The service rejects the input | 400 or 422 | Check the request parameters |
| The input is too large | 413 | Reduce the request size |
| Content filter or context error | Mapped from the failed request | The message names the cause |
SilentAPI does not return error details from the service.
Old Model IDs
Supported old model IDs use a configured replacement or model family match. An unknown ID with no match returns 404. The response names the model that served the request.
The response tells you when this happens:
"silentapi": {
"cost": 0.0412,
"fallback": null,
"model": "gpt-image-2.5-flare",
"model_name": "GPT Image 2.5 Flare",
"requested_model": "stable-image-ultra",
"substituted": true,
"notice": "stable-image-ultra is no longer offered. SilentAPI served this request with GPT Image 2.5 Flare, the closest current model."
}
These headers carry the same facts:
| Header | Meaning |
|---|---|
| X-SilentAPI-Model | ID of the model that served the request |
| X-SilentAPI-Substituted-For | Requested model ID. Only present when another model served the request. |
Audio responses have no JSON body, so read the headers there. See Fallbacks for each field of the silentapi object. A 404 means the ID has no close match. Check the Services page for the current list.
Media Error Messages
Media endpoints can return these fixed messages:
| Message | Meaning |
|---|---|
| Forbidden. | Internal media authentication failed. |
| The input is not valid. | The request body or method is not valid. |
| The media options are not valid. | An option has the wrong type or value. |
| The file is too large. | The file or image dimensions exceed the limit. |
| This input format is not supported. | The file type is not supported. |
| The file could not be processed. | The media parser could not read the file. |
| Encrypted files are not supported. | The file is encrypted. |
| Lossless output is not available for this format. | The selected output format cannot be lossless. |
| Only English is available for this OCR model. | OCR accepts English OCR data only. |
| The page selection is not valid. | The page list or range is invalid. |
| A maximum of 50 pages is allowed. | The selected OCR pages exceed the limit. |
| The media service could not complete the request. | An internal media failure occurred. |