Pular para o conteúdo principal

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/pandas

Instale 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

httr2
library(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

Referência da API v2

Principais endpoints por tag

Catálogo resumido do schema isolado /api/v2/openapi.json. Parâmetros, respostas e x-codeSamples na referência interativa.

Séries

MétodoCaminhoDescrição
GET /api/v2/series/{qsid} Metadados da série por QSID (ex.: bcb:432).

Observações

MétodoCaminhoDescrição
GET /api/v2/series/{qsid}/observations Observações da série; filtros start/end/limit e format=csv.

Lote

MétodoCaminhoDescrição
POST /api/v2/series:batch Observações de várias séries em uma chamada (export:bulk).

Catálogo

MétodoCaminhoDescrição
GET /api/v2/search Busca no catálogo por texto (q) e fonte (source).

Divulgações

MétodoCaminhoDescrição
GET /api/v2/releases Calendário de divulgações de indicadores.

Dashboards

MétodoCaminhoDescriçã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étodoCaminhoDescrição
POST /api/v2/alerts Cria alerta sobre uma série (alerts:write).
POST /api/v2/webhooks Registra webhook de entrega (webhooks:manage).