Errors
Every non-success response returns application/problem+json with a stable code, a human-readable detail, and a request_id for debugging.
{ "type": "https://docs.duitmyself.com/reference/errors#unauthorized", "title": "Unauthorized", "detail": "Invalid API key", "status": 401, "code": "unauthorized", "request_id": "..."}unauthorized
Section titled “unauthorized”Returned when the bearer token is missing, malformed, revoked, expired, or does not match a stored API key hash.
forbidden
Section titled “forbidden”Returned when the authenticated key is missing a required scope, the feature requires Pro access, or the current deployment has the public API disabled.
not_found
Section titled “not_found”Returned when the requested resource does not exist for the current API subject.
conflict
Section titled “conflict”Returned when an Idempotency-Key is reused with a different request fingerprint or when an externalId collides with another resource unexpectedly.
rate_limit_exceeded
Section titled “rate_limit_exceeded”Returned when the request exceeds the configured minute or day budget for that key on the current deployment. Read Retry-After and the X-RateLimit-* headers before retrying.
bad_request
Section titled “bad_request”Returned when the request payload is invalid, required fields are missing, or a route-specific constraint fails.
internal_error
Section titled “internal_error”Returned when the backend encounters an unexpected failure.