К основному содержанию
скилл CX Codex

api-rate-limiting · secondsky — скилл для Claude Code: лимиты запросов к API

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

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add secondsky/claude-skills --skill api-rate-limiting -a claude-code
Открыть на GitHub

Что делает 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-code

2Вручную: положить файлы

~/.claude/skills/api-rate-limiting/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/api-rate-limiting/

По шагам, с командами для каждой платформы: Как установить скилл в 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 от других авторов.

api-rate-limiting aj-geddes Помогает настроить ограничение частоты запросов к API через token bucket, sliding window и Redis. Защищает эндпоинты от брутфорса и перегрузок трафика. CX Codex +1 640установок rate-limiting-implementation aj-geddes Скилл помогает агенту добавить в сервис ограничение частоты запросов, квоты и backpressure. Пригодится, когда API открыт наружу или нагрузка растёт. CX Codex +1 502установок rate-limiting-abuse-protection patricio0312rev Скилл добавляет в проект ограничение частоты запросов: политики на маршрут, лимиты по IP и пользователю, скользящее окно и понятные ответы об ошибке. CX Codex +1 319установок implementing-api-rate-limiting-and-throttling mahipal Скилл внедряет алгоритмы sliding window и token bucket через Redis, защищая эндпоинты API от перебора паролей и исчерпания ресурсов. CX Codex +1 348установок setup-rate-limiting davila7 Слэш-команда разбирает проект и собирает систему ограничения запросов к API: алгоритмы, квоты по пользователям, хранение счётчиков. 247установок api-gateway-backend-security-and-rate-limiting официальный google Настраивает аутентификацию клиентов и доступ API Gateway к бэкендам, а также квоты по проектам. Пригодится для защиты Cloud Run и разбора ошибок квот. CX Codex 360установок marketplace-rate-limiting vtex Учит агента обрабатывать 429 от VTEX API: экспоненциальный backoff с джиттером, чтение заголовков лимитов, circuit breaker и очередь запросов. CX Codex +1 1 000установок

Из того же набора89

bun-sveltekit Подсказывает агенту, как собирать и запускать SvelteKit на Bun: SSR, адаптер, bun:sqlite и работа с файлами. CX Codex +1 499установок progressive-web-app Скилл для сборки устанавливаемых веб-приложений: манифест, service worker, офлайн-режим и запрос на установку. CX Codex +1 500установок bun-sqlite Скилл подсказывает агенту, как писать код для встроенного драйвера bun:sqlite: запросы, подготовленные выражения, транзакции. CX Codex +1 495установок architecture-patterns Скилл для проектирования бэкенда: раскладывает код по слоям Clean Architecture, портам и адаптерам, подсказывает тактические приёмы DDD. CX Codex +1 493установок design-system-creation Скилл помогает агенту собрать дизайн-систему: токены, типографику, компоненты и документацию к ним. Пригодится, когда стандарты интерфейса нужно зафиксировать до начала вёрстки. CX Codex +1 481установок technical-specification Скилл ведёт агента по шаблону технической спецификации: требования, архитектура, API, план внедрения, тесты и риски. Пригодится, когда фичу планируют до кода. CX Codex +1 470установок mobile-app-testing Скилл для тестирования мобильных приложений: юнит-тесты, UI-автоматизация, E2E и производительность. Пригодится, когда нужно настроить тестовую инфраструктуру. CX Codex +1 467установок bun-test-basics Скилл подсказывает синтаксис bun:test: ассерты, describe/it, модификаторы skip, only, each и запуск тестов. CX Codex +1 458установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой