Space-Track.org enforces rate limits of 30 requests per minute and 300 requests per hour. Exceeding these limits results in temporary account suspension. Brahe's RateLimitConfig controls a sliding-window rate limiter built into SpaceTrackClient that automatically delays requests to stay within the configured thresholds.
By default, the client uses conservative limits of 25 requests per minute and 250 requests per hour (~83% of the actual limits), providing safety margin for clock drift and shared accounts. Most users do not need to configure rate limiting at all -- the defaults are applied automatically.
Default config: 25/min, 250/hour
Custom config: 10/min, 100/hour
Disabled config: 4294967295/min, 4294967295/hour
Client with default rate limiting created
Client with custom rate limiting created
Client with disabled rate limiting created
Default config: 25/min, 250/hour
Custom config: 10/min, 100/hour
Disabled config: 4294967295/min, 4294967295/hour
Client with default rate limiting created
Client with custom rate limiting created
Client with disabled rate limiting created
Defaults Are Automatic
Creating a SpaceTrackClient without specifying a RateLimitConfig applies the default conservative limits (25/min, 250/hour). You only need RateLimitConfig if you want to change or disable the limits.
The rate limiter tracks request timestamps in two sliding windows (1-minute and 1-hour). Before each HTTP request, the client checks whether the configured limit has been reached in either window. If a limit would be exceeded, the calling thread sleeps until enough time has passed for the oldest request in the window to expire. This is transparent to the caller -- queries simply take longer when the limit is approached.
The limiter applies to all client operations: authentication, queries, file operations, and public file downloads.