Requisições HTTP em lote
Mande uma lista de requisições HTTP — URLs, métodos, cabeçalhos e corpos — em uma única chamada e receba as respostas reunidas no final. Substitui aquele script de loop com retry e paralelismo que alguém escreveu às pressas e que hoje ninguém quer manter.
Uma chamada, todas as respostas
Em vez de disparar cem requisições do seu código e administrar fila, erro e espera, você envia a lista inteira para a API e recebe um task_id. O serviço executa as chamadas e agrega os resultados: para cada requisição da lista, o status, os cabeçalhos e o corpo da resposta. Seu código faz um POST e lê um relatório — o trabalho sujo de orquestrar fica do lado de cá.
Para que serve na prática
Checar uma lista de URLs depois de uma migração de site, consultar uma API pública para cada linha de uma planilha, disparar o mesmo POST de sincronização para vários endpoints do seu próprio sistema, aquecer o cache das páginas mais importantes depois do deploy. Sempre que a tarefa é “repita esta requisição para esta lista”, o lote resolve sem você escrever o laço.
Preço simples
US$ 0,002 por chamada, em dólares americanos, com o valor publicado nesta página — sem mensalidade, sem plano, sem mínimo. A cobrança é por uso: você paga quando dispara um lote e mais nada. Para quem hoje mantém uma função serverless só para fazer esse trabalho, a conta inclui também o custo que deixa de existir: deploy, log, monitoramento e manutenção do código do loop.
Use com responsabilidade
O lote é ferramenta para as suas URLs e para APIs públicas que aceitam esse uso. Respeite os termos de serviço e os limites de requisição dos sites de destino: disparar volume contra servidor alheio sem autorização é abuso — e costuma terminar em bloqueio do lado de lá. Para consultas em massa a serviços de terceiros, confirme antes que o volume é permitido.
Casos de uso
Pós-migração de site
Depois de migrar o site da empresa, o dev monta a lista com as 800 URLs do sitemap antigo e dispara o lote: o relatório mostra o status de cada uma, e os 404 e redirecionamentos quebrados aparecem de uma vez — antes que o Google os encontre.
Consulta de CEP em massa
O e-commerce precisa completar o endereço de 300 cadastros antigos. Uma requisição por CEP contra a API pública de consulta, tudo em um lote só — e as respostas voltam reunidas, prontas para preencher a planilha.
Sincronização multiponto
A Distribuidora Horizonte Verde replica a atualização de preços para os sistemas das três filiais. Em vez de três integrações separadas, um lote com três POSTs — e o relatório confirma quem recebeu e quem falhou.
Perguntas frequentes
E se uma das requisições falhar?
O resultado traz a situação de cada requisição da lista individualmente: as que responderam, com status e corpo; as que falharam, com o erro. Um item quebrado não derruba o lote — você identifica exatamente o que refazer.
Existe limite de requisições por lote?
Não há limite publicado. O bom senso operacional continua valendo: lotes gigantes demoram mais para concluir, e o limite real costuma ser o do servidor de destino, não o do serviço.
Posso usar contra qualquer site?
Tecnicamente a requisição é HTTP comum; na prática, use com as suas URLs e com APIs que permitem consulta programada. Os termos de uso do destino valem mais que a capacidade técnica de chamar.
Como recebo o resultado?
O fluxo é assíncrono: a chamada devolve um task_id e você consulta o resultado quando o lote termina. Para listas grandes, é o desenho certo — nada de conexão pendurada esperando a última resposta.
Quanto custa e como se paga?
US$ 0,002 por chamada, pagos por uso via PayPal, sem cadastro — a compra é direta. O valor está publicado em dólares americanos nesta página, sem taxa escondida.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/http-batch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/http-batch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/http-batch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/http-batch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/http-batch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.http_batch",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |