Saúde da ingestão (pipeline, fontes, pollers, histórico)
`latest` é o último run do pipeline completo, não o último run a terminar: reparos e recargas pontuais têm trigger próprio e aparecem em `latest_by_trigger`, com as mensagens de erro em `errors`. Uma fonte pode estar fresca e oca ao mesmo tempo — `missing_ratio` mede a fração de partições sem dado e `status: incomplete` sinaliza quando ela deixa de ser sazonal. O frescor é julgado contra a cadência da própria fonte: `expected_max_age_days` é o intervalo de atualização que ela declara e `stale_after_days`, o silêncio tolerado antes de `status: stale`. **`latest.ok` fala do RUN, não da sua fonte.** Um run vermelho por causa de uma série do Banco Central não diz nada sobre as ofertas da CVM, que no mesmo run vieram inteiras — e quem lê só o booleano recusa uma pergunta que a base responde. `latest.error_sources` nomeia quais fontes falharam; `sources[]` traz a saúde de cada uma por si. **São 57 fontes.** Use `source` para recortar — casa por substring, então `oferta` acha `cvm_ofertas`. O recorte vale só para `sources[]`: o run e os pollers continuam inteiros, porque é cruzando os dois que se separa 'o pipeline falhou' de 'esta fonte falhou'.
In: header
Query Parameters
Recorta sources[] por substring do nome da fonte: oferta, cvm, b3.
Response Body
curl -X GET "https://api.databolsa.com/v1/ingest?source=string"{
"latest": {
"errors": [
"string"
],
"run_id": "string",
"trigger": "string",
"started_at": "string",
"finished_at": "string",
"duration_s": 0,
"exit": 0,
"ok": true,
"error_count": 0,
"error_sources": [
"string"
]
},
"latest_by_trigger": [
{
"errors": [
"string"
],
"run_id": "string",
"trigger": "string",
"started_at": "string",
"finished_at": "string",
"duration_s": 0,
"exit": 0,
"ok": true,
"error_count": 0,
"error_sources": [
"string"
]
}
],
"sources": [
{
"source": "string",
"status": "ok",
"last_fetch": "string",
"age_days": 0,
"datasets": 0,
"missing": 0,
"missing_ratio": 0,
"unavailable": 0,
"failed_validation": 0,
"expected_max_age_days": 0,
"stale_after_days": 0,
"ok": 0,
"skip": 0,
"miss": 0,
"err": 0,
"rows": 0,
"duration_s": 0
}
],
"pollers": [
{
"source": "string",
"status": "ok",
"last_cycle_at": "string",
"last_write_at": "string",
"age_seconds": 0,
"cycle_seconds": 0,
"sleeping_until": "string",
"in_window": true,
"universe_size": 0,
"rows_written": 0,
"consecutive_errors": 0,
"last_error": "string",
"last_error_at": "string"
}
],
"recent_runs": [
{
"run_id": "string",
"trigger": "string",
"started_at": "string",
"finished_at": "string",
"duration_s": 0,
"exit": 0,
"ok": true,
"error_count": 0,
"error_sources": [
"string"
]
}
]
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"details": {
"property1": null,
"property2": null
}
}Status da API e frescor dos dados
Previous Page
Busca unificada (typeahead) por ações/FIIs/ETFs/BDRs/índices/títulos/macro/cripto/EUA/crédito
Resolve ticker↔nome em todas as classes cobertas, incluindo crédito privado: debêntures pelo código de negociação (ELTN17) e CRI/CRA/LCI/LCA pelo código do instrumento no balcão. Para ações vem também o `cvm_code` da companhia, que abre os documentos e as demonstrações (esses endpoints também aceitam o ticker direto).