Developers · API v2
Portal do Desenvolvedor
Dados públicos brasileiros por API em 5 minutos: séries por QSID
(bcb:432, sidra.curated:ipca-mensal), observações,
lote, catálogo, divulgações, dashboards e alertas. Schema público isolado em
/api/v2/openapi.json
(OpenAPI 3.x, somente rotas /api/v2/ — nenhuma rota administrativa vaza).
Passo 0: Obtenha sua chave de API gratuita
Conta gratuita em minutos
A chave qd_live_... é criada em
/conta/credenciais após o login e a
verificação de e-mail (a opção aparece em Minha conta). O segredo
é exibido uma única vez — guarde-o com segurança.
Quickstart Python — 5 minutos
httpx + polars/pandasInstale httpx polars (ou pandas) e troque a chave pela sua credencial qd_live_....
Passo 3 (Lote) Requer escopo export:bulk; tamanho máximo do lote por plano (10 no free).
import httpx
import polars as pl
API_KEY = "qd_live_SUA_CHAVE"
headers = {"Authorization": f"Bearer {API_KEY}"}
# 1. Metadados da série (QSID bcb:432 = Meta Selic)
meta = httpx.get(
"https://quantilica.com/api/v2/series/bcb:432",
headers=headers,
).json()
print(meta["label"], meta["unit"])
# 2. Observações em DataFrame — bcb:433 = IPCA mensal (quickstart python polars)
obs = httpx.get(
"https://quantilica.com/api/v2/series/bcb:433/observations",
params={"start": "2024-01-01", "limit": 1000},
headers=headers,
).json()
df = pl.DataFrame(obs["data"])
print(df.head())
# 3. Lote (escopo export:bulk; máximo por plano via batch_max_qsids)
batch = httpx.post(
"https://quantilica.com/api/v2/series:batch",
headers=headers,
json={"qsids": ["bcb:432", "bcb:433"], "start": "2024-01-01"},
).json()
print(batch["meta"])
Quickstart R — 5 minutos
httr2library(httr2)
req_base <- request("https://quantilica.com") |>
req_auth_bearer_token("qd_live_SUA_CHAVE")
# Metadados
req_base |>
req_url_path("/api/v2/series/bcb:433") |>
req_perform() |>
resp_body_json() |> str()
# Observações (quickstart r httr2)
req_base |>
req_url_path("/api/v2/series/bcb:433/observations") |>
req_url_query(start = "2024-01-01", limit = 1000) |>
req_perform() |>
resp_body_json()
Quickstart cURL
qualquer shell# Metadados (quickstart curl)
curl -s -H "Authorization: Bearer qd_live_SUA_CHAVE" \
"https://quantilica.com/api/v2/series/bcb:433" | head -c 400
# Observações CSV prontas para planilha
curl -s -H "Authorization: Bearer qd_live_SUA_CHAVE" \
"https://quantilica.com/api/v2/series/bcb:433/observations?start=2024-01-01&format=csv" \
-o ipca.csv
# Catálogo
curl -s -H "Authorization: Bearer qd_live_SUA_CHAVE" \
"https://quantilica.com/api/v2/search?q=selic&source=bcb"
Quickstart Google Sheets
sem código, via IMPORTDATA
O formato format=csv devolve text/csv com cabeçalho
date,value — cole a URL pública (com token de leitura de escopo
restrito) em IMPORTDATA ou use o conector de API do Sheets.
=IMPORTDATA("https://quantilica.com/api/v2/series/bcb:433/observations?start=2024-01-01&format=csv")
Para planilhas compartilhadas, prefira gerar uma credencial qd_live_... de escopo mínimo (read:bcb) e rotacione em caso de vazamento.
Limites do plano gratuito
Valores aplicados pela API, lidos do banco| Requisições por minuto | 30 req/min |
|---|---|
| Quota mensal | 5.000 req/mês |
| Chaves ativas por organização | 3 |
| Lote máximo (series:batch) | 10 QSIDs |
Ao esgotar a quota mensal, as respostas 429 de quota trazem
upgrade_url apontando para o pedido de mais volume em
Minha conta.
Autenticação e cabeçalhos
Bearer + RateLimit-*curl -i -H "Authorization: Bearer qd_live_SUA_CHAVE" \
"https://quantilica.com/api/v2/series/bcb:433"
# Resposta inclui:
# RateLimit-Limit: 300
# RateLimit-Remaining: 299
# RateLimit-Reset: 42
- Produção usa
qd_live_...; homologação usaqd_test_.... - Escopos por fonte:
read:bcb,read:rtn,read:sidra,read:td,read:account; operações:export:bulk,alerts:write,webhooks:manage; painéis:read:dashboards; produtos:products:inflation-feed. - Cabeçalhos
RateLimit-Limit,RateLimit-RemainingeRateLimit-Resetacompanham cada resposta 200 e cada 429.
Referência da API v2
Principais endpoints por tagCatálogo resumido do schema isolado /api/v2/openapi.json. Parâmetros, respostas e x-codeSamples na referência interativa.
Séries
| Método | Caminho | Descrição |
|---|---|---|
| GET | /api/v2/series/{qsid} |
Metadados da série por QSID (ex.: bcb:432). |
Observações
| Método | Caminho | Descrição |
|---|---|---|
| GET | /api/v2/series/{qsid}/observations |
Observações da série; filtros start/end/limit e format=csv. |
Lote
| Método | Caminho | Descrição |
|---|---|---|
| POST | /api/v2/series:batch |
Observações de várias séries em uma chamada (export:bulk). |
Catálogo
| Método | Caminho | Descrição |
|---|---|---|
| GET | /api/v2/search |
Busca no catálogo por texto (q) e fonte (source). |
Divulgações
| Método | Caminho | Descrição |
|---|---|---|
| GET | /api/v2/releases |
Calendário de divulgações de indicadores. |
Dashboards
| Método | Caminho | Descrição |
|---|---|---|
| GET | /api/v2/dashboards/{slug} |
Definição do dashboard temático. |
| GET | /api/v2/dashboards/{slug}/data |
Dados do dashboard prontos para consumo. |
Alertas
| Método | Caminho | Descrição |
|---|---|---|
| POST | /api/v2/alerts |
Cria alerta sobre uma série (alerts:write). |
| POST | /api/v2/webhooks |
Registra webhook de entrega (webhooks:manage). |