Consultar status do job batch
curl --request GET \
--url http://api.gu1.ai/batch-import/jobs/{jobId} \
--header 'Authorization: Bearer <token>'import requests
url = "http://api.gu1.ai/batch-import/jobs/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://api.gu1.ai/batch-import/jobs/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://api.gu1.ai/batch-import/jobs/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://api.gu1.ai/batch-import/jobs/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://api.gu1.ai/batch-import/jobs/{jobId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.gu1.ai/batch-import/jobs/{jobId}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"job.jobId": "<string>",
"job.kind": "<string>",
"job.status": "<string>",
"job.totalItems": {},
"job.succeeded": {},
"job.failed": {},
"job.skipped": {},
"job.heartbeatAt": {},
"job.leaseExpiresAt": {},
"job.workerError": {},
"job.createdAt": "<string>",
"job.completedAt": {},
"job.metadata": {},
"job.jobFailure": {}
}Referência API
Consultar status do job batch
Consulte status, progresso e contadores de linhas de um job de importação batch por jobId (entidades, transações e user events) na API batch gu1.
GET
/
batch-import
/
jobs
/
{jobId}
Consultar status do job batch
curl --request GET \
--url http://api.gu1.ai/batch-import/jobs/{jobId} \
--header 'Authorization: Bearer <token>'import requests
url = "http://api.gu1.ai/batch-import/jobs/{jobId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://api.gu1.ai/batch-import/jobs/{jobId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://api.gu1.ai/batch-import/jobs/{jobId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://api.gu1.ai/batch-import/jobs/{jobId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://api.gu1.ai/batch-import/jobs/{jobId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://api.gu1.ai/batch-import/jobs/{jobId}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"job.jobId": "<string>",
"job.kind": "<string>",
"job.status": "<string>",
"job.totalItems": {},
"job.succeeded": {},
"job.failed": {},
"job.skipped": {},
"job.heartbeatAt": {},
"job.leaseExpiresAt": {},
"job.workerError": {},
"job.createdAt": "<string>",
"job.completedAt": {},
"job.metadata": {},
"job.jobFailure": {}
}Endpoint
GET https://api.gu1.ai/batch-import/jobs/{jobId}
202 com um jobId. Resolve o tipo de job automaticamente e faz lookup direto — não percorre o histórico completo.
Autenticação
Authorization: Bearer YOUR_API_KEY
transactions:create, entities:bulk_import, events:create.
Query parameters
| Parâmetro | Descrição |
|---|---|
include | Lista CSV opcional. Use include=failures para obter o mesmo JSON do endpoint de failures por tipo (failures[], skips[] em entidades, etc.). Omita para payload leve durante o polling. |
Respostas HTTP
| Status | Quando |
|---|---|
200 | Job encontrado |
401 | Não autenticado |
403 | Sem permissão de batch-import |
404 | jobId desconhecido ou job de outra organização |
Fluxo de polling recomendado
- Upload (entidades, transações ou user events) → guardar
jobIddo202. - Poll
GET /batch-import/jobs/{jobId}a cada 2–5 segundos. - Parar quando
statusfor terminal:completed,failed,cancelledouinterrupted. - Se precisarem de detalhe linha a linha, chamar com
?include=failuresou usar o endpoint de failures por tipo (ver Bulk imports overview).
Para listar jobs recentes (estilo dashboard), use Unified history. Para polling de um job específico, prefira este endpoint.
JSON (default — só status)
{
"success": true,
"job": {
"jobId": "550e8400-e29b-41d4-a716-446655440000",
"kind": "entity_batch",
"status": "running",
"totalItems": 100,
"succeeded": 45,
"failed": 2,
"skipped": 1,
"heartbeatAt": "2026-06-26T12:00:00.000Z",
"leaseExpiresAt": "2026-06-26T12:10:00.000Z",
"workerError": null,
"createdAt": "2026-06-26T11:59:00.000Z",
"completedAt": null,
"metadata": { "fileName": "entities.csv" }
}
}
boolean
Sempre
true quando o job existe.string
Identificador do job retornado no upload.
string
entity_batch (alias entity_automatic), transaction_batch ou user_event_batch.string
queued, running, completed, failed, cancelled ou interrupted. Durante cancelamento pode permanecer em running com metadata.batchCancelRequested.number | null
Total de linhas/itens do job.
number | null
Quantidade processada com sucesso.
number | null
Quantidade de linhas com falha.
number | null
Quantidade ignorada (ex.: taxId duplicado em entidades).
string | null
Último heartbeat do worker (ISO 8601).
string | null
Expiração do lease do worker (ISO 8601).
string | null
Erro do worker truncado quando o job falhou em nível de job.
string
Criação do job (ISO 8601).
string | null
Conclusão quando terminal (ISO 8601).
object | null
Metadata do job (ex.:
fileName, modo de import).object | null
Presente quando
status é failed e o job inteiro abortou. Inclui code estável e message — ver Failure codes.JSON com ?include=failures
Mesmo contrato dos endpoints JSON de failures por tipo:
- Entidades: Entity batch failures
- Transações: Transaction batch failures
- User events: User-event batch failures
failures é array vazio (failuresTotal: 0).
Ver também: Bulk imports overview, Unified history.Was this page helpful?