Versioning
All Happklaar public API routes are under the /v1 prefix. v1 is the current and only supported public API version.
URL structure
All routes follow the pattern:
Code
There is one base URL. There are no per-module subdomains. All modules (Auth, Recipes, Pantry, Cooking, etc.) expose their routes under this single prefix.
v2 status
No v2 routes exist today. When a v2 surface ships, v1 will continue to operate for at least 6 months before removal. During that window:
- Existing
/v1/...endpoints keep working exactly as documented. - v1 responses include a
DeprecatedHTTP header so client libraries can detect the sunset proactively. - A migration guide and per-endpoint diff is published on Changelog at the start of the window.
What counts as a breaking change
A breaking change requires a new version (and triggers the sunset window above). Breaking changes include:
- Removing a required response field
- Changing a field's type (e.g., string → number)
- Removing an endpoint
- Changing authentication requirements
Additive changes — new optional response fields, new optional query parameters, new endpoints — do not require a new version and ship within the current /v1 surface without notice. Treat unknown response fields as forward-compatible: your client should ignore fields it doesn't recognize rather than fail to parse.
Type URI stability
RFC 9457 problem type URIs (for error responses) are cross-version — they do not carry a /v1/ segment. The same type URI identifies the same error class regardless of which API version raised it. See Errors for the full type URI list.