{
"job_id": "550e8400-e29b-41d4-a716-446655440002"
}Endpoints
POST /batch
Raspa até 50 URLs de forma assíncrona em uma única requisição.
POST
/
batch
{
"job_id": "550e8400-e29b-41d4-a716-446655440002"
}Como difere do /scrape
/scrape é síncrono: uma URL, uma resposta, conteúdo no corpo.
/batch é assíncrono: devolve 202 com um job_id imediatamente e distribui
o trabalho na fila. Não há resultado do lote no 202 — é preciso fazer
polling.
Use /batch quando você já tem a lista de URLs. Use
/crawl quando você só tem uma semente e quer
que o crawler descubra os links.
Limites
Até 50 URLs por requisição. Lista vazia ou acima de 50 URLs é recusada com422 antes de qualquer job ser criado — lote recusado nunca é cobrado.
O rate limit deste endpoint escala com o plano (free 10/min,
starter 60/min, growth 120/min, scale 300/min). É o único endpoint que
faz isso.
Custo
1 crédito por URL cujoscrape_status seja success. URLs bloqueadas,
falhas ou recusadas por SSRF dentro do lote não são cobradas, então o
credits_used final pode ser menor que o número de URLs enviadas.
Polling do resultado
cURL
# 1. enfileirar
curl -X POST https://api.messora.dev/batch \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{"urls": ["https://example.com", "https://messora.dev"], "formats": ["markdown"]}'
# → {"job_id": "550e8400-e29b-41d4-a716-446655440002"}
# 2. consultar a cada 2s até status SUCCESS ou FAILURE
curl https://api.messora.dev/jobs/550e8400-e29b-41d4-a716-446655440002 \
-H "X-API-Key: YOUR_API_KEY"
results traz sua própria url, scrape_status e
credits_used. Veja GET /jobs/{job_id} para o
contrato completo de status.Autorizações
Corpo
application/json
Resposta
Lote enfileirado. Usar GET /jobs/{job_id} para polling.
Resposta 202 de POST /batch: só o identificador para polling.
Identificador do job. Consultar em GET /jobs/{job_id}.