Error Handling
Handle API errors gracefully in your application.
Error Response Format
All errors follow this format:
{
"error": "Human-readable error message",
"code": "MACHINE_READABLE_CODE",
"message": "Additional details"
}HTTP Status Codes
400Bad Request
Invalid request format or validation error
401Unauthorized
Missing or invalid API key
403Forbidden
API key lacks required permission
429Too Many Requests
Rate limit or quota exceeded
500Internal Server Error
Server-side error
Error Codes
| Code | Description | Solution |
|---|---|---|
MISSING_API_KEY | No API key provided | Include X-API-Key header |
INVALID_API_KEY | Key is invalid or revoked | Check your API key |
PERMISSION_DENIED | Key lacks permission | Update key permissions |
RATE_LIMIT_EXCEEDED | Too many requests/minute | Wait and retry with backoff |
QUOTA_EXCEEDED | Monthly quota reached | Upgrade your plan |
VALIDATION_ERROR | Invalid request data | Check request body |
ENHANCEMENT_ERROR | Enhancement failed | Retry the request |
Example Error Handling
async function enhance(prompt) {
const response = await fetch(url, options);
const data = await response.json();
if (!response.ok) {
switch (data.code) {
case 'RATE_LIMIT_EXCEEDED':
// Wait and retry
await sleep(data.retryAfter * 1000);
return enhance(prompt);
case 'QUOTA_EXCEEDED':
// Show upgrade prompt
showUpgradeDialog();
break;
case 'VALIDATION_ERROR':
// Show validation errors
showErrors(data.details);
break;
default:
throw new Error(data.message);
}
}
return data;
}