Skip to content

Obter resultado da tarefa

Depois de enviar uma tarefa assíncrona de imagem ou vídeo, a Pixapi retorna um id. Use esse identificador com GET /v1/tasks/{id} para consultar o status, o progresso e as URLs finais da mídia.

Para saber como enviar tarefas assíncronas, consulte Tarefas assíncronas de mídia.

Endpoint

MétodoCaminhoDescrição
GET/v1/tasks/{id}Consulta o status e o resultado da tarefa

Autenticação: Authorization: Bearer <API_KEY>

Só é possível consultar tarefas criadas pela mesma chave de API ou conta. IDs desconhecidos retornam 404.

Requisição

bash
curl --request GET \
  --url 'https://api.pixapi.ai/v1/tasks/task_01KPQ7J7DWB7QZ3WCEK3YVPBRA' \
  --header 'Authorization: Bearer $PIXAPI_KEY'

Parâmetro do caminho:

CampoTipoObrigatórioDescrição
idstringSimID retornado no envio da tarefa assíncrona (por exemplo, task_...).

Valores de status

StatusSignificado
submittedA Pixapi aceitou a tarefa e a colocou na fila.
processingA geração está em andamento no provedor.
completedConcluída com sucesso. Leia result.data[].url.
failedEncerrada com erro. Leia error.

Consulte até que status seja completed ou failed. Enquanto a tarefa estiver em andamento, result será null.

Resposta durante o processamento

json
{
  "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
  "status": "processing",
  "credits_cost": 64,
  "model": "veo3.1-fast",
  "progress": 40,
  "result": null,
  "created": 1703884800
}

Resposta concluída

json
{
  "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
  "status": "completed",
  "credits_cost": 64,
  "model": "veo3.1-fast",
  "progress": 100,
  "result": {
    "type": "video",
    "data": [
      {
        "url": "https://cdn.example.com/output.mp4"
      }
    ]
  },
  "created": 1703884800,
  "completed": 1703884880
}

Em tarefas de imagem, result.type é image e cada item de data[] também expõe uma url pública.

Resposta com falha

json
{
  "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
  "status": "failed",
  "credits_cost": 64,
  "model": "veo3.1-fast",
  "progress": 100,
  "error": {
    "code": 400,
    "message": "Upstream generation failed",
    "type": "api_error"
  },
  "created": 1703884800,
  "completed": 1703884820
}

Campos da resposta

CampoDescrição
idID da tarefa.
statussubmitted, processing, completed ou failed.
credits_costCréditos associados à tarefa.
modelID do modelo usado no envio.
progressNúmero inteiro de 0 a 100.
resultPresente após a conclusão; null durante o processamento.
result.typeimage ou video.
result.dataItens de saída. Use result.data[0].url para o arquivo principal.
errorPresente quando status é failed.
createdTimestamp Unix (segundos) de criação da tarefa.
completedTimestamp Unix (segundos) em que a tarefa chegou a um estado final.

Exemplo de consulta periódica

bash
TASK_ID="task_01KPQ7J7DWB7QZ3WCEK3YVPBRA"

while true; do
  RESP=$(curl -s \
    -H "Authorization: Bearer $PIXAPI_KEY" \
    "https://api.pixapi.ai/v1/tasks/$TASK_ID")
  STATUS=$(printf '%s' "$RESP" | python3 -c 'import sys,json; print(json.load(sys.stdin)["status"])')
  echo "$STATUS"
  case "$STATUS" in
    completed|failed) printf '%s\n' "$RESP"; break ;;
  esac
  sleep 3
done
js
async function waitForTask(taskId) {
  for (;;) {
    const response = await fetch(`https://api.pixapi.ai/v1/tasks/${taskId}`, {
      headers: { Authorization: `Bearer ${process.env.PIXAPI_KEY}` },
    });
    if (!response.ok) throw new Error(await response.text());
    const task = await response.json();
    if (task.status === 'completed' || task.status === 'failed') return task;
    await new Promise((resolve) => setTimeout(resolve, 3000));
  }
}

const task = await waitForTask('task_01KPQ7J7DWB7QZ3WCEK3YVPBRA');
if (task.status === 'completed') {
  console.log(task.result.data[0].url);
} else {
  console.error(task.error);
}

Observações de integração

  1. Armazene o id retornado no envio assíncrono.
  2. Consulte GET /v1/tasks/{id} pelo seu backend, aumentando o intervalo quando necessário (por exemplo, a cada 2 a 5 segundos).
  3. Pare quando status for completed ou failed.
  4. Salve result.data[].url (ou error) no seu próprio armazenamento.

Não exponha sua chave de API da Pixapi em código de consulta executado somente no navegador.