Skip to content
RED SAGSkills
hardFull Stack Developer interview question

You are opening your product’s API to outside partners. How do you design authentication, authorization, rate limiting and change management for it?

What the interviewer wants to hear

  • Use OAuth 2.0 scopes for user-delegated access and hashed API keys for server-to-server use
  • Scope every request to the partner’s tenant and permissions
  • Apply per-client rate limits and quotas with clear headers
  • Sign outgoing webhooks and support key rotation
  • Version the API, publish an OpenAPI contract and deprecate with notice
  • Log and monitor usage per client for abuse and debugging

Model answer

For partners acting on behalf of our users, I use OAuth 2.0 authorization code flow with narrow scopes like orders:read, so users approve exactly what the partner can do. For server-to-server integrations I issue API keys with a visible prefix, store only their hash, allow several active keys for rotation and let customers revoke them. Every request is scoped to the client’s tenant and scopes in a central authorization layer. Rate limits and quotas are per client, enforced in a shared store, with 429 responses and RateLimit headers. Outgoing webhooks are signed with HMAC and a timestamp to stop replay. The API is described by an OpenAPI contract, versioned, and changed additively; breaking changes get a new version, deprecation headers and months of notice. Per-client logs and dashboards help support partners and spot abuse.

Can you answer it under time pressure?

Take a timed hard round and get scored on every answer.

Start mock interview

More hard Full Stack Developer questions