Error response format
All errors follow a consistent structure:Error fields
code: Machine-readable error codemessage: Human-readable error messagestatus: HTTP status codepath: API endpoint that generated the errortimestamp: When the error occurredrequestId: Unique request identifier for supportdetails: Additional error-specific information
HTTP status codes
| Code | Description | Common causes |
|---|---|---|
400 | Bad Request | Invalid input, validation errors |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | Insufficient permissions |
404 | Not Found | Resource doesn’t exist |
409 | Conflict | Duplicate resource, invalid state |
500 | Internal Server Error | Server-side error |
502 | Bad Gateway | Provider integration error |
Common error codes
VALIDATION_ERROR (400)
Input validation failed. Check thedetails.issues array for specific field errors.
AUTHENTICATION_ERROR (401)
API key is missing or invalid.x-api-key header.
AUTHORIZATION_ERROR (403)
You don’t have permission to access the resource.RESOURCE_NOT_FOUND (404)
The requested resource doesn’t exist.CONFLICT_ERROR (409)
Resource already exists or operation conflicts with current state.INTEGRATION_ERROR (502)
Provider integration failed.requestId.
Handling validation errors
Validation errors include detailed information about each invalid field:Idempotency
Use therequest_id field to safely retry requests:
Rate limiting
Rinne implements rate limiting to ensure platform stability. If you exceed rate limits, you’ll receive a 429 status code:Logging and debugging
Request IDs
Every response includes arequestId that you can use when contacting support:

