All API error responses follow the RFC 7807 Problem Details standard. Each problem type has a stable URI that serves as the type field in error responses, plus a directory page documenting its description, example response, and any type-specific fields.
Response shape
Every error response uses the application/problem+json content type and includes a stable type URI you can branch on programmatically:
{
"type": "https://docs.avvail.com/v2/problems/not-found",
"title": "Not Found",
"detail": "The requested resource could not be found",
"instance": "/v2/reservations/abc-123"
}
The type URI is the integration contract — it does not change across releases for the same problem type, even if the human-readable title or detail is updated.
Problem types
The full directory of every error type the API can return. Click a type for an example response and its full type URI.
bad-requestRequest body, query parameters, or headers don't match the API specification.
invalid-bodyRequest body is malformed or doesn't match the expected schema.
invalid-queryOne or more query parameters have invalid names, types, or values.
invalid-headerA required header is missing, or a header value is invalid.
invalid-pathA path parameter is missing or invalid — typically an unknown resource ID.
unauthorizedAccess token is missing, expired, or invalid.
forbiddenToken is valid but lacks the scope required for this endpoint.
not-foundResource doesn't exist or isn't visible within your entity context.
method-not-allowedThe HTTP method used isn't supported on this endpoint.
goneThe requested resource has been permanently removed.
unsupported-media-typeRequest Content-Type isn't supported — use application/json.
validation-errorRequest fields failed validation; response includes per-field errors.
rate-limit-exceededRequest rate ceiling exceeded — back off using the Retry-After header.
internal-server-errorUnexpected server error; if persistent, share the instance path with support.
Handling errors
Validation errors
Validation errors (HTTP 422) include an errors array with field-level details:
{
"type": "https://docs.avvail.com/v2/problems/validation-error",
"title": "Validation Error",
"detail": "Validation failed for one or more fields",
"instance": "/v2/reservations",
"errors": [
{
"message": "must be in the format 'HH:MM'",
"pointer": "/time",
"code": "invalid"
}
]
}
Each entry in the errors array includes:
| Field | Description |
|---|---|
pointer |
JSON pointer to the field that caused the error |
message |
Human-readable description of the error |
code |
Machine-readable error category identifier |
Retry strategy
- 429 (Rate Limit): Respect the
Retry-Afterheader before retrying. See Advanced Usage for rate limit details. - 500 (Server Error): Use exponential backoff with jitter (e.g., 1s, 2s, 4s).
- 4xx errors: Do not retry — fix the request based on the error details.