The Dentally NexGen API uses Problem Details for HTTP APIs (RFC 7807) for every error response. This means error bodies are predictable: same shape, same fields, machine‑readable.
{
"type": "https://httpstatuses.io/400",
"title": "Bad Request",
"status": 400,
"detail": "Missing required field 'address'",
"instance": "/v2/sites",
"traceId": "00-84c1fd4063c38d9f3900d06e56542d48-85d1d4-00"
}| Field | Type | Notes |
|---|---|---|
type | URI | Identifies the problem type. Defaults to about:blank if absent. |
title | string | Short, human‑readable summary. Stable for a given problem type. |
status | integer | HTTP status code mirrored in the body. |
detail | string | Human‑readable explanation specific to this occurrence. |
instance | URI | Reference to the specific occurrence (typically the request path). |
traceId | string | Distributed trace identifier — quote this when contacting support. |
The envelope is open to additional properties: future problem types may add fields. Clients should ignore unknown properties.
| Status | When | Notes |
|---|---|---|
400 Bad Request | Validation failed, malformed request, or unknown Dentally-API-Version. | detail describes the offending field or header. |
401 Unauthorized | Missing, invalid or expired bearer token. | See Authentication. |
404 Not Found | The resource does not exist or is not visible to the caller's practice scope. | |
410 Gone | The requested API version has been sunset. | Includes Link rel="sunset" to the changelog. |
429 Too Many Requests | A rate limit or spike arrest was exceeded. | Includes RateLimit-* response headers. See Rate limiting. |
4XX other | Other client errors (conflict, etc.). | Same Problem Details envelope. |
5XX | Server error. | detail is intentionally generic. Use traceId when reporting. |
- Branch on
status, not ontitleordetailstrings — those may be refined or localised. - Log
traceIdwith your application logs so support can correlate failures end‑to‑end. - Treat
4XXother and5XXas the catch‑all for status codes not individually documented on an operation.
For per‑operation responses, see the API reference.