Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
API Rate Limiter Design
00:00
5 left

API Rate Limiter Design

HardPython

Problem

How would you implement a rate-limiter for an API endpoint?

Implement rate_limit(requests, limit, window) for chronologically ordered requests. Each request is [client_id, timestamp]; apply the limit independently per client, and rejected requests must not consume capacity.

Return a boolean for each request. A request at time t can use accepted requests with timestamps in (t - window, t]; requests exactly t - window have expired.

Constraints

  • 0 <= requests.length <= 1000
  • Each request has the form [client_id, timestamp]
  • client_id is a non-empty string
  • 0 <= timestamp <= 10^9
  • Requests are ordered by nondecreasing timestamp
  • 1 <= limit <= 10^9
  • 1 <= window <= 10^9

Function Signature

def rate_limit(requests, limit, window):
Interviewer

Your question is API Rate Limiter Design. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
You need to log in / sign up to run or submit.Ln 2
Run your code to see test output here.