Base URL: https://api.orbioapi.com.br
Exports
Base URL: https://api.orbioapi.com.br
Autenticação
Authorization: Bearer <API_KEY>
POST /v1/exports
Cria um export assíncrono (CSV ou HTML) em modo enqueue-only.
Notas sobre secondary_cnae_mode:
off: apenas CNAE principal.fallback: modo econômico (2 fases) permitido em todos os planos.full: permitido apenas no plano Scale+ e quando habilitado globalmente.
Headers
Idempotency-Key: <string>(obrigatório)
Body da requisição
Campos:
spec(object, obrigatório)output(object, obrigatório)format:csvouhtmlinclude_explain: booleanfields: lista de campos
limit(int, opcional)
Resposta (201)
json
{
"request_id": "req_01HX...",
"snapshot": "2026-01",
"snapshot_date": "2026-01-31",
"spec": {
"kind": "account_query",
"spec_version": "2.0",
"entity": "company",
"limit": 5000,
"filters": {
"industry": {
"cnae_any_of": ["6201-5/00"],
"cnae_exclude": [],
"secondary_cnae_mode": "fallback",
"text_hints": ["software"]
},
"geo": {
"uf_any_of": ["SP"],
"municipality_ibge_any_of": [],
"municipality_tom_any_of": []
},
"company": {
"registration_status_any_of": [2],
"company_size_code_any_of": [],
"headquarters_only": true,
"simples_opt_in": null,
"mei_opt_in": null,
"started_after": null,
"started_before": null
},
"contact": {
"require_email": false,
"require_phone": false,
"require_any_contact": false
}
},
"sort": [{ "field": "score", "direction": "desc" }],
"scoring": { "strategy": "balanced", "random_seed": null },
"output": {
"format": "csv",
"include_explain": false,
"fields": ["cnpj", "legal_name", "uf"]
},
"explain": {
"assumptions": [],
"warnings": [],
"unmapped_constraints": [],
"confidence": 0.74
}
},
"preview_accounts": [],
"export": {
"export_id": "exp_123",
"status": "queued",
"format": "csv",
"snapshot": "2026-01",
"snapshot_date": "2026-01-31",
"row_count": null,
"size_bytes": null,
"object_key": null,
"expires_at": null,
"download_url": null
}
}Observações:
- O
POST /v1/exportsnão executa query de dados no request path. preview_accountsno create é sempre[].
GET /v1/exports/{export_id}
Consulta um export.
Status possíveis:
queuedrunningdonefailed
Quando status = done, download_url é retornado.
json
{
"export_id": "exp_123",
"status": "done",
"format": "csv",
"snapshot": "2026-01",
"snapshot_date": "2026-01-31",
"row_count": 1200,
"size_bytes": 456789,
"expires_at": "2026-02-10T12:00:00Z",
"download_url": "/v1/exports/exp_123/download"
}GET /v1/exports/{export_id}/download
Retorna 303 See Other com Location para URL assinada.
GET /v1/exports
Lista exports do tenant.
Query params:
limit(1–200)cursor(opcional)
Resposta:
json
{
"exports": [
{
"export_id": "exp_123",
"status": "done",
"format": "csv",
"snapshot": "2026-01",
"snapshot_date": "2026-01-31",
"row_count": 1200,
"size_bytes": 456789,
"expires_at": "2026-02-10T12:00:00Z",
"download_url": "/v1/exports/exp_123/download"
}
],
"next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wMi0wNVQxMjozMDowMFoiLCJleHBvcnRfaWQiOiJleHBfMTIzIn0=",
"has_more": false
}Quando has_more = true, a API também retorna header Link com rel="next".
Erros
- 401/403: autenticação
- 404: export não encontrado
- 409:
EXPORT_NOT_READYouEXPORT_FAILED - 410: export expirado
- 422: validação da requisição
- 429: rate limit
Veja exemplos em Erros e códigos.

