The API enforces rate limits to ensure fair use.
- Limit: 200 requests per minute (global default)
- Response headers include
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (Unix timestamp)
Handling 429 responses
When you receive 429 Too Many Requests:
- Read
X-RateLimit-Reset to determine when the window resets.
- Back off exponentially if repeated 429s occur.
- Consider batching or reducing frequency of polling.
Example: simple backoff (see Python example below)
Python example
import time
import requests
url = "https://api.mission.space/api/v1/kp-index"
params = {"start_time": "2025-01-01T00:00:00Z", "end_time": "2025-01-02T00:00:00Z", "limit": 100}
headers = {"X-API-Key": "YOUR_API_KEY"}
backoff = 1
while True:
resp = requests.get(url, params=params, headers=headers)
if resp.status_code == 429:
reset_ts = int(resp.headers.get("X-RateLimit-Reset", 0))
now = int(time.time())
wait = max(reset_ts - now + 1, backoff)
time.sleep(wait)
backoff = min(backoff * 2, 60)
continue
resp.raise_for_status()
print(resp.json())
break