Agent skill · marketing growth · jeremylongshore

openrouter-rate-limits

Understand and handle OpenRouter rate limits. Use when hitting 429 errors,

Why this skill is useful

Provides specific commands and strategies for handling OpenRouter rate limits that the AI wouldn't reliably generate on its own.

What it needs

Requires curl, jq, python3 installed locally. Requires openrouter account access. About 4k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.

What this skill does

OpenRouter Rate Limits Overview OpenRouter rate limits are per-key, not per-account. Free tier keys get lower limits; paid keys get higher limits that scale with credit balance. The OpenAI SDK has built-in retry with exponential backoff for 429 responses. Check your current limits via GET /api/v1/auth/key. Rate limit headers are returned on every response. Prerequisites An OpenRouter API key (sk-or-v1-...) exported as OPENROUTERAPIKEY — see the openrouter-install-auth skill for setup curl and jq for querying your key's limits from GET /api/v1/auth/key Python 3.8+ with the OpenAI SDK (sync OpenAI and AsyncOpenAI) plus the requests package for reading rate-limit headers directly Awareness of your tier: free keys get 20 req/10s, keys with any credits 200 req/10s (see Rate Limit Tiers) Instructions 1. Query your key's limits via GET /api/v1/auth/key per Check Your Rate Limits — note ratelimit.requests and ratelimit.interval. 2. Place yourself in the Rate Limit Tiers table, remembering free models carry separate daily caps (50 req/day free, 1000 req/day with $10+ credits). 3. Inspect live headroom with checkrateheaders() per Read Rate Limit Headers — watch x-ratelimit-remaining and retry-after. 4. Configure SDK retries per Retry Strategy with OpenAI SDK: maxretries=5, timeout=60.0; the SDK catches 429s and backs off with jitter automatically. 5. Add the client-side TokenBucket limiter from Custom Rate Limiter, set below the server limit (e.g. 150 per 10s under a 200/10s cap) so you rarely hit 429 at all. 6. For bulk jobs, use batchwithratelimit() per Batch Processing with Rate Awareness — staggered starts plus semaphore-capped concurrency instead of bursts. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills jeremylongshore/openrouter-rate-limits--909096

View the source on GitHub

Browse the @skills marketplace