api-rate-limiting · secondsky — скилл для Claude Code: лимиты запросов к API
Скилл помогает добавить ограничение частоты запросов к API: алгоритмы token bucket, sliding window и вариант на Redis. Пригодится, когда открываешь публичный API или делишь доступ по тарифам.
npx skills add secondsky/claude-skills --skill api-rate-limiting -a claude-codeЧто делает api-rate-limiting
Скилл даёт готовые куски кода под три алгоритма. Token bucket сглаживает всплески, sliding window считает точнее, fixed window проще всего, но даёт скачки на границе окна. Выбор зависит от того, что для тебя важнее: память или точность.
Внутри есть класс TokenBucket на Node.js с методами consume() и refill(), middleware для Express на базе express-rate-limit с окном 15 минут и лимитом 100 запросов, а также набор заголовков ответа: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset и Retry-After. Для распределённого счётчика скилл советует Redis — без него лимиты не сойдутся между несколькими инстансами приложения. Это первое, что стоит проверить, если у тебя больше одной реплики сервиса.
Отдельная таблица тарифов: Free — 100 запросов в час, Pro — 1 000, Enterprise — 10 000. Есть список практик: возвращать 429 со Retry-After, следить за метриками лимитов и проверять поведение под нагрузкой. Всё это примеры и рекомендации, а не готовый конфиг под твой проект.
Какие задачи решает
- ограничить частоту запросов к публичному API
- выдать разные лимиты тарифам Free, Pro и Enterprise
- сгладить всплески трафика через token bucket
- вернуть клиенту 429 с заголовком Retry-After
- свести счётчик запросов между несколькими инстансами через Redis
Примеры запросов агенту
- добавь rate limiting на /api/ с лимитом 100 запросов за 15 минут
- сделай token bucket для эндпоинта загрузки файлов
- раздели лимиты по тарифам: Free 100, Pro 1000, Enterprise 10000 запросов в час
Как установить api-rate-limiting
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-rate-limiting -a claude-code2Вручную: положить файлы
~/.claude/skills/api-rate-limiting/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-rate-limiting/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-rate-limiting -a codex2Вручную: положить файлы
.agents/skills/api-rate-limiting/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-rate-limiting -a cursor2Вручную: положить файлы
.cursor/skills/api-rate-limiting/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install secondsky/claude-skills api-rate-limiting2Вручную: положить файлы
.github/skills/api-rate-limiting/SKILL.md1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-rate-limiting -a gemini-cli2Командой платформы
gemini skills install https://github.com/secondsky/claude-skills --path plugins/api-rate-limiting/skills/api-rate-limitingВручную: положить файлы
.devin/skills/api-rate-limiting/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill api-rate-limiting -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о api-rate-limiting
Как установить api-rate-limiting в Claude?
Выполни npx skills add secondsky/claude-skills --skill api-rate-limiting -a claude-code. После этого файл скилла окажется в ~/.claude/skills/api-rate-limiting/SKILL.md.
Что делает api-rate-limiting?
Показывает, как ограничивать частоту запросов к API: три алгоритма, middleware для Express, заголовки ответа и таблицу лимитов по тарифам.
Нужен ли Redis для этого скилла?
Redis назван как способ сделать лимиты распределёнными. Если приложение работает в одном процессе, хватит счётчика в памяти.
Исходный текст
SKILL.md · MIT
---
name: api-rate-limiting
description: Implements API rate limiting using token bucket, sliding window, and Redis-based algorithms to protect against abuse. Use when securing public APIs, implementing tiered access, or preventing denial-of-service attacks.
license: MIT
---
# API Rate Limiting
Protect APIs from abuse using rate limiting algorithms with per-user and per-endpoint strategies.
## Algorithms
| Algorithm | Pros | Cons |
|-----------|------|------|
| Token Bucket | Handles bursts, smooth | Memory per user |
| Sliding Window | Accurate | Memory intensive |
| Fixed Window | Simple | Boundary spikes |
## Token Bucket (Node.js)
```javascript
class TokenBucket {
constructor(capacity, refillRate) {
this.capacity = capacity;
this.tokens = capacity;
this.refillRate = refillRate; // tokens per second
this.lastRefill = Date.now();
}
consume() {
this.refill();
if (this.tokens >= 1) {
this.tokens--;
return true;
}
return false;
}
refill() {
const now = Date.now();
const elapsed = (now - this.lastRefill) / 1000;
this.tokens = Math.min(this.capacity, this.tokens + elapsed * this.refillRate);
this.lastRefill = now;
}
}
```
## Express Middleware
```javascript
const rateLimit = require('express-rate-limit');
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100,
standardHeaders: true,
message: { error: 'Too many requests, try again later' }
});
app.use('/api/', limiter);
```
## Response Headers
```
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1705320000
Retry-After: 60
```
## Tiered Limits
| Tier | Requests/Hour |
|------|---------------|
| Free | 100 |
| Pro | 1,000 |
| Enterprise | 10,000 |
## Best Practices
- Use Redis for distributed rate limiting
- Include proper headers in responses
- Return 429 status with Retry-After
- Implement tiered limits for different plans
- Monitor rate limit metrics
- Test under load
© secondsky · MIT · secondsky/claude-skills
Похожие скиллы
Всё по теме «Бэкенд и API» →Сначала — api-rate-limiting от других авторов.