NovidadesNovo

Envie até 500 tarefas em uma única requisição

API
Uma requisição em lote com três tarefas para motores diferentes e a resposta que lista cada tarefa na fila

O endpoint de lote coloca na fila até 500 tarefas, com qualquer combinação de mecanismos, em uma única chamada e informa o resultado de cada uma.

O que você recebe

  • POST /v1/async/task/batch aceita um array de até 500 tarefas, cada uma no mesmo formato de uma tarefa individual.
  • Os mecanismos se misturam livremente: uma chamada envia um conjunto de prompts ao ChatGPT, ao Gemini e ao Perplexity de uma vez.
  • results[] informa cada item separadamente: a tarefa criada ou o motivo da recusa daquele item.
  • idempotencyKey vale por item, então um lote reenviado devolve as tarefas que já tinha criado.

Como funciona

Um lote bem formado sempre responde 200. Cada item é validado separadamente: um prompt malformado aparece na sua própria entrada de results[] e o restante do lote entra na fila. Cada tarefa criada roda, termina e é cobrada exatamente como uma tarefa individual, e cada uma envia o próprio webhook.

Com lotes, milhares de chamadas HTTP viram poucas, e os trabalhos agendados ficam rápidos e simples.

Onde ajuda

  • Envie toda manhã um conjunto completo de prompts a vários mecanismos com uma única chamada.
  • Carregue uma lista grande de palavras-chave em poucas requisições e deixe a fila processá-la.

Envie a requisição

Envie até 500 tarefas num único array JSON, cada uma no mesmo formato de uma tarefa avulsa. Mecanismos e países se combinam livremente no mesmo lote.

curl -X POST https://api.querying.ai/v1/async/task/batch \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "CHATGPT",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    },
    {
      "taskType": "GEMINI",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    },
    {
      "taskType": "PERPLEXITY",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    }
  ]'

Resposta

A chamada responde 200 com uma entrada por tarefa, na ordem enviada. Os IDs das tarefas aparecem abreviados aqui.

JSON
{
  "success": true,
  "summary": { "total": 3, "succeeded": 3, "failed": 0 },
  "results": [
    {
      "success": true,
      "index": 0,
      "task": {
        "id": "…",
        "taskType": "CHATGPT",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    },
    {
      "success": true,
      "index": 1,
      "task": {
        "id": "…",
        "taskType": "GEMINI",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    },
    {
      "success": true,
      "index": 2,
      "task": {
        "id": "…",
        "taskType": "PERPLEXITY",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    }
  ]
}
summaryobject
Contagem do lote: total, succeeded e failed.
resultsarray
Uma entrada por tarefa, na ordem enviada: index, success e a task na fila, ou error com o código.

Receba o resultado

A requisição devolve a tarefa na hora, com status QUEUED. Consulte GET /v1/async/task/{id} até status virar COMPLETED ou FAILED, ou adicione webhook.url e a tarefa concluída chega ao seu servidor com os mesmos task, credits e response. Os resultados ficam disponíveis por 24 horas após o fim da tarefa.

curl https://api.querying.ai/v1/async/task/$TASK_ID \
  -H "Authorization: Bearer $QUERYING_API_KEY"

Erros

O lote inteiro responde 400 VALIDATION_ERROR quando o corpo é um array vazio ou passa de 500 itens, e 413 acima de 8 MiB. Num lote de tamanho certo, um item acima da concorrência do seu plano ou do limite de fila do mecanismo volta com success em false e o código em error.code, e os demais entram na fila. Reenvie esses itens após uma breve espera.

PLAN_CONCURRENCY_LIMITHTTP 429
Suas tarefas na fila e em execução atingiram o limite do plano: 2 no plano gratuito, 10 no Basic, 25 no Pro, 50 no Scale e 100 no Max. Envie de novo após Retry-After segundos.
QUEUE_BACKPRESSUREHTTP 429
A fila do mecanismo está cheia no momento. Envie de novo após Retry-After segundos.
VALIDATION_ERRORHTTP 400
Falta um campo ou o valor está fora do intervalo. details indica o campo.
PAYLOAD_TOO_LARGEHTTP 413
O corpo passa de 1 MiB, ou de 8 MiB num lote.

Preço

Um lote custa a soma das suas tarefas pelo preço de cada mecanismo, e cada tarefa é cobrada quando é concluída.

Mais novidades

Receba as novidades

Receba atualizações do produto por e-mail.

Feed RSS