Skip to content
All docs

Start

Rate limits

120 requests a minute per key, and the daily cap you set on it. When either is reached, the answer says how long to wait.

Checked 26 October 2026

The limits

LimitSizeWhen it is reached
Requests per key120 a minute429 rate_limited
Daily cap per keyWhat you set, $0.10 to $1,000.00429 daily_cap, until 00:00 UTC
Test key (sk-nokeep-test)20 a minute per address429 rate_limited
Messages per request2,000400 invalid_messages
Request size12 MB413 too_large
Pictures per request10, DeepSeek only400 too_many_images

Headers that say where you are

Every answer to a keyed call carries x-ratelimit-limit-requests and x-ratelimit-remaining-requests, for the current minute.

Every 429 and every 503 busy carries Retry-After, in seconds: until the minute frees up, until 00:00 UTC for a daily cap, or 5 for a busy model.

Retrying

OpenAI’s Python and JavaScript SDKs retry 429 and 5xx on their own and wait the Retry-After time. With plain HTTP, wait that long, then retry once.

Python
import time
import requests

def call(body, key):
    for _ in range(3):
        res = requests.post(
            "https://nokeep.ai/v1/chat/completions",
            headers={"Authorization": f"Bearer {key}"},
            json=body,
        )
        if res.status_code not in (429, 503):
            return res
        time.sleep(int(res.headers.get("Retry-After", "5")))
    return res

A daily_cap waits until midnight UTC. Raise the cap in the console instead of retrying.