topic
Verified 2026-09-18Problem Type Design and Migration
Problem type identifiers give API clients stable semantics for errors beyond the HTTP status code.
Use durable HTTPS type identifiers, document required members and extensions, keep status and title consistent, and treat a type URI as an identifier rather than a requirement to fetch a webpage. Version semantics deliberately when a breaking change is unavoidable.
httpapierrorsproblem-types
Reference (http)
Content-Type: application/problem+json
{"type":"https://api.example.com/problems/quota","title":"Quota exceeded","status":429,"detail":"Try again later"}Use durable HTTPS type identifiers, document required members and extensions, keep status and title consistent, and treat a type URI as an identifier rather than a requirement to fetch a webpage. Version semantics deliberately when a breaking change is unavoidable.
Common mistakes
- Changing the meaning of a type URI, putting secrets in detail, or making clients scrape title text instead of using stable type and extension members.