API & MCP

Limites e headers

As respostas trazem cabeçalhos de rastreio e de limite de uso. Os X-RateLimit-* aparecem nas respostas autenticadas (do limite por chave), o 401 chave-invalida sai sem eles.

HeaderSignificado
X-Request-IdId único da requisição (também vem no corpo como requestId). Cite-o ao pedir suporte.
X-Api-VersionVersão da API (atualmente 1).
X-RateLimit-LimitMáximo de requisições na janela.
X-RateLimit-RemainingQuantas ainda restam na janela atual.
X-RateLimit-ResetSegundos até a janela reiniciar.
Retry-AfterPresente nos 429 de janela (rate): espere estes segundos antes de repetir. O 429 teto-leads não o envia, esse limite não reseta com o tempo.

Limites atuais: 60 cotações/min por chave em /v1/quote e 120/min em /v1/coverage. Antes da autenticação há ainda um freio por IP de 300 requisições/min (anti-flood; vale pra REST e MCP). No MCP, o transporte /api/mcp aceita 120 mensagens JSON-RPC/min por chave (initialize, tools/list etc.), mas as ferramentas debitam os mesmos buckets do REST:quote_solar conta nas 60 cotações/min e check_coverage nas 120/min, usar os dois canais não multiplica o limite. Ao estourar no REST, você recebe 429 com Retry-After. No MCP são dois casos: estourar o teto do transporte (ou o freio por IP) devolve HTTP 429 com erro JSON-RPC -32000 e o header Retry-After; estourar o limite de uma ferramenta devolve um resultado de ferramenta com isError e (rate) na mensagem. Há também um teto absoluto de propostas por conta (429 teto-leads), esse vem sem Retry-After, porque não reseta sozinho: fale com o suporte.

API v1 · ionluz, orçamentos solares. Dúvidas? Cite o requestId ao escrever para suporte@ionluz.com.br.
Limites e headers · API ionluz