# api-rate-limiting

Скилл помогает добавить ограничение частоты запросов к API: алгоритмы token bucket, sliding window и вариант на Redis. Пригодится, когда открываешь публичный API или делишь доступ по тарифам.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 491 установка · ★ 236
- Автор: secondsky
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/secondsky/claude-skills/tree/HEAD/plugins/api-rate-limiting/skills/api-rate-limiting/SKILL.md
- Обновлён: 2026-10-20
- HTML: https://affpapa.org/nevibecode/skills/secondsky-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`, следить за метриками лимитов и проверять поведение под нагрузкой. Всё это примеры и рекомендации, а не готовый конфиг под твой проект.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill api-rate-limiting -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/api-rate-limiting/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/api-rate-limiting/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill api-rate-limiting -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/api-rate-limiting/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill api-rate-limiting -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/api-rate-limiting/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install secondsky/claude-skills api-rate-limiting
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/api-rate-limiting/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill api-rate-limiting -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/secondsky/claude-skills --path plugins/api-rate-limiting/skills/api-rate-limiting
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/api-rate-limiting/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add secondsky/claude-skills --skill api-rate-limiting -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/secondsky/claude-skills/tree/HEAD/plugins/api-rate-limiting/skills/api-rate-limiting/SKILL.md

## Когда брать
- ограничить частоту запросов к публичному API
- выдать разные лимиты тарифам Free, Pro и Enterprise
- сгладить всплески трафика через token bucket
- вернуть клиенту 429 с заголовком Retry-After
- свести счётчик запросов между несколькими инстансами через Redis

## Примеры запросов агенту
- добавь rate limiting на /api/ с лимитом 100 запросов за 15 минут
- сделай token bucket для эндпоинта загрузки файлов
- раздели лимиты по тарифам: Free 100, Pro 1000, Enterprise 10000 запросов в час

## Похожие
- [rate-limiting-implementation](https://affpapa.org/nevibecode/skills/rate-limiting-implementation.md) — скилл · 502 установки
- [rate-limiting-abuse-protection](https://affpapa.org/nevibecode/skills/rate-limiting-abuse-protection.md) — скилл · 319 установок
- [implementing-api-rate-limiting-and-throttling](https://affpapa.org/nevibecode/skills/implementing-api-rate-limiting-and-throttling.md) — скилл · 348 установок
- [setup-rate-limiting](https://affpapa.org/nevibecode/commands/setup-rate-limiting.md) — команда · 247 установок
- [api-gateway-backend-security-and-rate-limiting](https://affpapa.org/nevibecode/skills/api-gateway-backend-security-and-rate-limiting.md) — скилл · 360 установок
- [marketplace-rate-limiting](https://affpapa.org/nevibecode/skills/marketplace-rate-limiting.md) — скилл · 1000 установок

## Другие версии с тем же именем
- [api-rate-limiting · aj-geddes](https://affpapa.org/nevibecode/skills/api-rate-limiting.md) — 640 установок

Из того же набора: [secondsky/claude-skills](https://affpapa.org/nevibecode/by/secondsky/claude-skills.md) — 89 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
