Versioning
We version in the URL path (/v1/) rather than headers. It is explicit and cacheable.
Error format
{ "error": { "code": "NOT_FOUND", "message": "Resource not found", "request_id": "abc123" } }
Pagination
Cursor-based pagination by default for any list endpoint that may grow unbounded. Offset pagination only when the client genuinely needs random-access page jumps.
Auth
JWT with short expiry + refresh token rotation. API keys for server-to-server. OAuth 2.0 for third-party integrations.