Os rate limits protegem a estabilidade da plataforma e garantem uma experiência consistente para todos os integradores.
O que é rate limit?
Rate limit é um mecanismo de controle que define o número máximo de requisições que uma integração pode realizar à API dentro de um determinado intervalo de tempo.
Quando esse limite é atingido, a API retorna o status HTTP 429 Too Many Requests e bloqueia novas requisições até que a janela de tempo seja reiniciada.
Limites por módulo
A tabela abaixo apresenta os limites de requisições agrupados por módulo funcional da API Yampi.
Para a lista completa por rota e verbo HTTP, consulte a página Limites.
| Módulo | Limite por minuto | Limite por hora | Observações |
|---|
| Geral (todos os endpoints) | 60 req/min | — | Limite padrão para rotas sem configuração específica |
| Autenticação | 10 req/min | — | Proteção contra força bruta |
| Busca | 60 req/min | — | — |
| Catálogo - Produtos | 30 req/min | — | Import/Export: 5 req/min por usuário autenticado |
| Catálogo - SKUs | 30 req/min | — | Import/Export: 5 req/min por usuário autenticado |
| Catálogo - Atualização em massa | 60 req/min | — | Endpoint de lote de SKUs |
| Checkout - Carrinhos | 60 req/min | — | Export: 5 req/min por usuário autenticado |
| Checkout - Links de Pagamento | 30 req/min | — | Aplicado em operações de escrita |
| Clientes | 60 req/min | — | Export: 5 req/min por usuário autenticado; Exclusão: 1 req/min |
| Configurações | 30 req/min | — | Aplicado em operações de escrita |
| Conteúdo | 60 req/min | — | — |
| Descontos | 60 req / 30 seg | — | Criação: 30 req / 30 seg; Edição/Exclusão: 15 req / 30 seg |
| Leads | 60 req/min | — | Export: 5 req/min por usuário autenticado |
| Logística - Cálculo de frete | 60 req/min | — | — |
| Marketing | 60 req/min | — | — |
| Pedidos | 120 req/min | — | Escrita: 30 req/min; Importação/Exportação: 5 req/min por usuário |
| Pedidos - Rastreamento | — | 3 req/h | Criação de rastreamentos (POST) |
| Promoções - Cupons | 120 req/min | — | Escrita: 30 req/min |
| Promoções - Cashback | 30 req/min | — | Regras de cashback: 10 req/min por usuário autenticado |
| Promoções - Order Bumps | 30 req/min | — | Escrita: 10 req / 30 seg |
| Público | 60 req/min | — | Informações públicas da loja |
| Usuários | 10 req/min | — | Limitado a 10 tentativas de redefinição de senha por minuto |
Os valores marcados como X req/min e Y req/h são placeholders e devem ser validados com o time de engenharia antes da publicação.
Como funciona
A Yampi aplica rate limits principalmente por rota e por IP de origem, monitorando o volume de requisições em janelas de tempo fixas, geralmente de 1 minuto.
Cada requisição consome uma unidade da cota disponível. Ao esgotá-la, as requisições seguintes são rejeitadas com HTTP 429 até o início da próxima janela.
A API retorna os seguintes headers em todas as respostas, permitindo monitorar o estado do rate limit em tempo real:
| Header | Descrição |
|---|
X-RateLimit-Limit | Número máximo de requisições permitidas na janela atual |
X-RateLimit-Remaining | Quantas requisições ainda estão disponíveis na janela atual |
Resposta de erro
Ao ultrapassar o limite, você receberá:
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
{
"message": "Too Many Requests",
"status_code": 429
}
Exemplos
Exemplo 1 — Requisição dentro do limite
curl --request GET \
--url "https://api.dooki.com.br/v2/{alias}/catalog/products" \
--header "User-Token: seu-token" \
--header "User-Secret-Key: sua-secret-key"
Resposta (200 OK):
HTTP/1.1 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
Exemplo 2 — Limite atingido
curl --request GET \
--url "https://api.dooki.com.br/v2/{alias}/catalog/products" \
--header "User-Token: seu-token" \
--header "User-Secret-Key: sua-secret-key"
Resposta (429 Too Many Requests):
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0