VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Exportação para BI

Jobs de exportação

Define qual conjunto de dados exportar para um destino, em que formato e com que frequência.

Um job liga um destino a um conjunto de dados. Cada job guarda a sua marca d'água e o horário da última execução, e roda sozinho conforme a frequência: hourly (se a última execução tem mais de 1 hora) ou daily (mais de 24 horas). O agendador confere a cada 15 minutos.

Listar jobs

GET/api/v1/admin/warehouse/jobsAdmin

Lista os jobs de exportação

Exige o privilégio manage_settings (também para ler). Do mais novo para o mais antigo.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/admin/warehouse/jobs" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Jobs retornados
json
[
  {
    "id": "a5e3e4c8-4e2c-4923-a53c-d2a917a7259a",
    "destination_id": "e7c0b063-711d-4109-aea0-36fcbd40fa3b",
    "dataset": "orders",
    "format": "parquet",
    "csv_style": "international",
    "schedule": "hourly",
    "watermark": "1970-01-01T00:00:00Z",
    "is_active": true,
    "last_run_at": "2026-10-11T22:00:03.800000Z"
  }
]

A resposta é um vetor JSON direto.

Campos da resposta

[].iduuid
Id do job.
[].destination_iduuid
Destino.
[].datasetstring
ordersorder_itemscustomersproductsinventorycommissions
Conjunto de dados.
[].formatstring
parquetcsv
Formato do arquivo.
[].csv_stylestring
internationalbrazilian
Estilo do CSV (ignorado em Parquet).
[].schedulestring
hourlydaily
Frequência.
[].watermarkstring
Data da última linha exportada. 1970-01-01T00:00:00Z = nada exportado ainda.
[].is_activeboolean
Se o agendador executa o job. Cai para false depois de 3 falhas seguidas.
[].last_run_atstring
Última execução. Ausente se nunca rodou.

Criar um job

A combinação destino, conjunto e formato é única: criar de novo devolve 400. O job nasce ativo e com a marca d'água zerada, então a primeira execução exporta o histórico inteiro.

POST/api/v1/admin/warehouse/jobsAdmin

Cria um job de exportação

Exige o privilégio manage_settings (também para ler).

Corpo da requisição

destination_iduuidobrigatório
Destino que recebe os arquivos.
datasetstringobrigatório
ordersorder_itemscustomersproductsinventorycommissions
Conjunto de dados.
formatstringpadrão: parquet
parquetcsv
Formato do arquivo.
csv_stylestringpadrão: international
internationalbrazilian
Estilo do CSV.
schedulestringpadrão: hourly
hourlydaily
Frequência.

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/warehouse/jobs" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destination_id": "e7c0b063-711d-4109-aea0-36fcbd40fa3b",
    "dataset": "orders",
    "format": "parquet",
    "schedule": "daily"
  }'

Resposta

200Job criado
json
{
  "id": "a5e3e4c8-4e2c-4923-a53c-d2a917a7259a",
  "destination_id": "e7c0b063-711d-4109-aea0-36fcbd40fa3b",
  "dataset": "orders",
  "format": "parquet",
  "csv_style": "international",
  "schedule": "daily",
  "watermark": "0001-01-01T00:00:00Z",
  "is_active": false
}

A criação responde 200 e devolve is_active: false e watermark zerado como valores de preenchimento; o job de fato nasce ativo e com marca d'água em 1970-01-01. Releia pela listagem.

Alterar um job

Regrava format, csv_style, schedule e is_active com o que você enviar. Envie os quatro: um campo omitido vira vazio (ou false) e a gravação é recusada com 500, ou pior, desativa o job. Não é possível trocar destination_id nem dataset. Responde 204.

PUT/api/v1/admin/warehouse/jobs/{id}Admin

Altera um job de exportação

Exige o privilégio manage_settings (também para ler).

Parâmetros de caminho

iduuidobrigatório
Id do job.

Corpo da requisição

formatstringobrigatório
parquetcsv
Formato.
csv_stylestringobrigatório
internationalbrazilian
Estilo do CSV.
schedulestringobrigatório
hourlydaily
Frequência.
is_activebooleanobrigatório
Se o job roda.

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/admin/warehouse/jobs/$JOB_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "format": "parquet",
    "csv_style": "international",
    "schedule": "hourly",
    "is_active": false
  }'

Resposta

Status 204 No Content, sem corpo.

Apagar um job

Exclusão definitiva do job e do histórico de execuções dele. Os arquivos já gravados no seu bucket não são tocados. Responde 204.

DELETE/api/v1/admin/warehouse/jobs/{id}Admin

Apaga um job de exportação

Exige o privilégio manage_settings (também para ler).

Parâmetros de caminho

iduuidobrigatório
Id do job.

Exemplo de requisição

bash
curl -X DELETE "$BASE_URL/api/v1/admin/warehouse/jobs/$JOB_ID" \
  -H "Authorization: Bearer $TOKEN"

Resposta

Status 204 No Content, sem corpo.

Erros

StatusQuandoCorpo
401Sem token, token inválido ou expirado{"error":"invalid or expired token"}
403Sem o privilégio manage_settings{"error":"insufficient privileges","privilege_required_any":["manage_settings"]}
503Exportação indisponível nesta instalação{"error":"warehouse export unavailable"}
400Corpo que não é JSON; dataset desconhecido; job repetido (mesmo destino, conjunto e formato); destination_id inexistente{"error":"failed to create job","detail":"warehouse: unknown dataset \"zz\""}
500Alterar com format, csv_style ou schedule vazio ou fora dos valores aceitos; id que não é UUID{"error":"failed to update job","detail":"o valor enviado está fora da faixa permitida (campo relacionado a \"export_jobs_csv_style\")..."}
O PUT parcial desativa o job sem aviso

Um PUT com {"schedule":"daily"} falha por faltarem os outros campos; um com os três textos corretos e sem is_active grava is_active: false. Leia o job, altere o objeto e devolva todos os campos.

CSV para planilha brasileira

Para abrir direto no Excel em português, use format: "csv" com csv_style: "brazilian": valores em reais com vírgula e datas dd/mm/aaaa. Para ferramentas de dados, prefira Parquet.

Veja também

  • Execuções
  • Conjuntos de dados
  • Destinos
Anterior
Destinos de exportação
Próxima
Execuções de exportação
Nesta página
  • Listar jobs
  • Exemplo de requisição
  • Resposta
  • Criar um job
  • Exemplo de requisição
  • Resposta
  • Alterar um job
  • Exemplo de requisição
  • Resposta
  • Apagar um job
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também