Error Response Format
All errors follow the standard GraphQL error format:Authentication Errors
MISSING_HEADER
HTTP Status: 400 Bad Request A required header was not included in the request.Authorization- API keyContent-Type-application/jsonX-Session-ID- Session identifier fromstartSession
INVALID_TOKEN
HTTP Status: 401 Unauthorized The API key is invalid, malformed, or expired.- Typo in the API key
- Using staging key with production endpoint (or vice versa)
- Key has been revoked
- Key has expired
FORBIDDEN
HTTP Status: 403 Forbidden The API key doesn’t have permission for the requested operation.- Accessing a chain not assigned to your partner account
- Attempting admin operations with a read-only key
Validation Errors
INVALID_INPUT
HTTP Status: 400 Bad Request A request parameter is malformed or invalid.- Negative values for ranges
- Invalid enum values
- Missing required fields
- Malformed JSON
CHAIN_NOT_FOUND
HTTP Status: 404 Not Found The specified chain ID doesn’t exist.DISH_NOT_FOUND
HTTP Status: 404 Not Found The specified dish ID doesn’t exist or is no longer available.- Dish has been removed from the menu
- Incorrect dish ID
- Using EveryBite ID when partner ID expected (or vice versa)
RESTAURANT_NOT_FOUND
HTTP Status: 404 Not Found The specified restaurant/location ID doesn’t exist.Rate Limiting
RATE_LIMITED
HTTP Status: 429 Too Many Requests You’ve exceeded your rate limit.retryAfter seconds before retrying. Consider implementing request batching or caching filter options.
Server Errors
INTERNAL_ERROR
HTTP Status: 500 Internal Server Error An unexpected error occurred on the server.requestId.
SERVICE_UNAVAILABLE
HTTP Status: 503 Service Unavailable The service is temporarily unavailable.- Planned maintenance
- Temporary overload
- Dependency failure
Data Errors
NUTRITION_NOT_AVAILABLE
HTTP Status: 200 (partial response) Nutrition data is not available for a dish. This is not an error per se, but thenutrition field will be null.
MATCH_NOT_POSSIBLE
HTTP Status: 200 (informational) The dish cannot be matched due to missing data.Error Handling Quick Reference
| Code | HTTP | Retry? | User Message |
|---|---|---|---|
MISSING_HEADER | 400 | No | Fix code |
INVALID_TOKEN | 401 | No | Check API key |
FORBIDDEN | 403 | No | Contact support |
INVALID_INPUT | 400 | No | Fix request |
CHAIN_NOT_FOUND | 404 | No | Check chain ID |
DISH_NOT_FOUND | 404 | No | ”Item unavailable” |
RATE_LIMITED | 429 | Yes | ”Please wait…” |
INTERNAL_ERROR | 500 | Yes | ”Try again” |
SERVICE_UNAVAILABLE | 503 | Yes | ”Temporarily unavailable” |
Support
If you encounter persistent errors:- Note the
requestIdfrom the error response - Check status.everybite.com for outages
- Contact api-partnerships@everybite.com with:
- Error code and message
- Request ID
- Timestamp
- Request details (redact sensitive data)

