Errors
RFC 9457 problem details with stable type codes.
Errors are application/problem+json (RFC 9457):
{
"type": "https://healthcare.dev/problems/invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "limit must be at most 100",
"errors": [{ "path": "limit", "message": "Too big: expected number to be <=100" }]
}Branch on type. Codes are stable and only ever added, never renamed.
type (under https://healthcare.dev/problems/) | Status | What to do |
|---|---|---|
invalid-request | 400 | Fix the parameter named in errors[].path |
unauthorized | 401 | Send a valid key: Authorization: Bearer hdev_live_... |
forbidden | 403 | Your plan or key can't use this dataset |
not-found | 404 | The id doesn't exist in any release (retired ones do) |
rate-limited | 429 | Wait Retry-After seconds, then retry |
quota-exceeded | 429 | Monthly calls used up; upgrade or wait for the next month |
internal | 500 | Retry with backoff; tell us if it persists |
unavailable | 503 | Service degraded; retry with backoff |
dataset-unavailable | 503 | The dataset has no published version yet |
The SDK maps these to typed errors (NotFoundError, RateLimitError, QuotaExceededError, ...)
and retries rate-limited, 5xx and network errors for you.