Strategia Invest API

Complete reference for Financial Data, Valuation Models, and Macroeconomics.

Referência completa para Dados Financeiros, Modelos de Valuation e Macroeconomia.

Base URL: https://strategiainvest.com.br

1. Authentication 1. Autenticação

The API uses JWT (JSON Web Tokens). You must first exchange your credentials for a token valid for 24 hours.

A API utiliza JWT (JSON Web Tokens). Você deve primeiro trocar suas credenciais por um token válido por 24 horas.

POST /api/v1/token
Headers
Authorization Required Basic Auth (Base64 encoded username:password)
Example Response Exemplo de Resposta
{ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." }
Important: For all subsequent requests, include the token in the header: Importante: Para todas as requisições seguintes, inclua o token no header:
Authorization: Bearer <your_token>
Service credential (recommended for agents/MCP): long-lived ApiKey, issued via CLI (flask apikey create) by the account owner — no self-service HTTP endpoint. Inherits the owner's premium tier. Use it instead of re-authenticating every 24h: Credencial de serviço (recomendado para agentes/MCP): ApiKey de longa duração, emitida via CLI (flask apikey create) pelo dono da conta — sem endpoint HTTP self-service. Herda o tier premium do dono. Use em vez de reautenticar a cada 24h:
Authorization: ApiKey <your_key>
Rate limits: 120/minute per credential for the whole API, 10/minute per IP on POST /v1/token, 5/minute per credential on POST /v1/backtest (heavier compute). Exceeding returns 429 in the same application/problem+json shape as other errors. Rate limits: 120/minuto por credencial para a API inteira, 10/minuto por IP em POST /v1/token, 5/minuto por credencial em POST /v1/backtest (compute mais caro). Ao exceder, devolve 429 no mesmo formato application/problem+json dos demais erros.

2. Discovery Endpoints 2. Endpoints de Descoberta (Discovery)

Use these endpoints to list all available assets and find out which indicators are available for them.

Use estes endpoints para listar todos os ativos disponíveis e descobrir quais indicadores existem para eles.

Asset Lists Listas de Ativos
  • GET /api/v1/companies/cnpjs
    Returns a list of all available Company CNPJs. Retorna uma lista de todos os CNPJs de empresas disponíveis.
  • GET /api/v1/stocks/codes
    Returns a list of all available Stock Tickers. Retorna uma lista de todos os Tickers de ações disponíveis.
Indicator Discovery Descoberta de Indicadores
  • GET /api/v1/macro/indicators
  • GET /api/v1/companies/{cnpj}/indicators
  • GET /api/v1/stocks/{ticker}/indicators
Response Example (Asset List) Exemplo de Resposta (Lista de Ativos)
{ "stock_codes": [ "ABEV3", "BBAS3", "PETR4", "WEGE3", ... ] }

3. Macroeconomics 3. Macroeconomia

Access historical data for global economic indicators.

Acesse dados históricos de indicadores econômicos globais.

GET /api/v1/macro/indicators/{indicator}
Parameters Parâmetros
start_date Optional YYYY-MM-DD
end_date Optional YYYY-MM-DD
Available Indicators Indicadores Disponíveis
  • cdi_interest_rate: Daily CDI rate.Taxa CDI diária.
  • ipca_inflation: Monthly official inflation.Inflação oficial (IPCA) mensal.
  • ibovespa_index: IBOVESPA daily closing points.Fechamento diário do IBOVESPA.
  • equity_risk_premium: Implied ERP for Brazil (Damodaran).ERP Implícito Brasil (Metodologia Damodaran).
  • risk_free_rate: Calculated Risk-Free Rate.Taxa Livre de Risco (Tesouro IPCA+ Spread + IPCA Acumulado).
Example Request

GET /api/v1/macro/indicators/ipca_inflation?start_date=2023-01-01

Response Format
{ "indicator": "ipca_inflation", "count": 226, "history": [ { "date": "2007-01-01", "value": 0.44 }, ... ] }

4. Full Reports (RAG) 4. Relatórios Completos (RAG)

Endpoints optimized for RAG (Retrieval-Augmented Generation) ingestion. Returns pre-formatted Markdown dossiers containing all available data.

Endpoints otimizados para ingestão em RAG (Geração Aumentada por Recuperação). Retorna dossiês pré-formatados em Markdown contendo todos os dados disponíveis.

GET /api/v1/reports/macro

Generates a complete macroeconomic context report including definitions and recent history for all indicators (Selic, IPCA, GDP, etc). Gera um relatório de contexto macroeconômico completo incluindo definições e histórico recente para todos os indicadores (Selic, IPCA, PIB, etc).

Example Request

GET /api/v1/reports/macro

Response Format
{ "report": "================================================================================\nDOSSIÊ MACROECONÔMICO: CENÁRIO DE MERCADO BRASIL\nData de Geração: 07/01/2026 14:30\n================================================================================\n\n> Este documento fornece o contexto econômico atual para análise de investimentos.\n\n## Taxa CDI (Juros de Curto Prazo)\n> **Definição:** A taxa CDI segue de perto a Taxa Selic...\n..." }
GET /api/v1/reports/dossier/{ticker}

Generates an analysis dossier for a specific stock. By default returns a compact dossier (Profile + Valuation Models); pass sections=all for the full dossier, including Fundamental Indicators, Market Data, and recent CVM Documents/Insider Trading. Gera um dossiê de análise para uma ação específica. Por padrão devolve um dossiê compacto (Perfil + Modelos de Valuation); passe sections=all para o dossiê completo, incluindo Indicadores Fundamentalistas, Dados de Mercado e Documentos CVM/Insiders recentes.

Parameters Parâmetros
ticker Required Stock symbol (e.g., WEGE3). Código da ação (ex: WEGE3).
sections Optional Comma-separated: profile, valuation, fundamentals, market, documents, adjustments; or all. Default: profile,valuation. Separado por vírgula: profile, valuation, fundamentals, market, documents, adjustments; ou all. Default: profile,valuation.
start_date Optional YYYY-MM-DD
end_date Optional YYYY-MM-DD
Example Request

GET /api/v1/reports/dossier/WEGE3?sections=all

Response Format
{ "report": "================================================================================\nDOSSIÊ COMPLETO: WEG S.A. (WEGE3)\nData: 07/01/2026 14:32\n================================================================================\n\n## 1. PERFIL E GOVERNANÇA\n**CNPJ:** 84.429.695/0001-11\n**Setor:** Bens Industriais / Máquinas e Equipamentos\n...\n## 2. VALUATION ENGINE (MODELOS)\n..." }

5. Company Profile 5. Perfil da Empresa

GET /api/v1/companies/{cnpj}/info

Retrieves static data, governance info, sector, and share structure.

Retorna dados cadastrais, governança, setor e estrutura acionária.

CNPJ Format: You can send the CNPJ encoded (84.429.695%2F0001-11) or digits only (84429695000111). Formato CNPJ: Você pode enviar o CNPJ codificado (84.429.695%2F0001-11) ou apenas dígitos (84429695000111).
Example Request

GET /api/v1/companies/84429695000111/info

Response Format
{ "legal_name": "WEG SA", "cnpj": "84.429.695/0001-11", "sector_classification": "Bens Industriais / Máquinas e Equipamentos", "governance_level": "BOLSA", "free_float": { "common_percent": 35.4, "preferred_percent": 0.0, "total_percent": 35.4 }, "tickers": ["WEGE3"], "last_financial_statement": { "delivery_timestamp": "2025-10-22T08:00:24", "download_url": "https://..." } }

6. Company Indicators (History) 6. Indicadores da Empresa (Histórico)

GET /api/v1/companies/{cnpj}/indicators/{indicator}
Parameters Parâmetros
start_date Optional YYYY-MM-DD
end_date Optional YYYY-MM-DD
Example Request

GET /api/v1/companies/84429695000111/indicators/net_revenue_annual?start_date=2010-01-01

Available Indicators Reference Referência dos Indicadores Disponíveis

  • net_revenue_annual, net_revenue_quarterly (Receita Líquida)
  • gross_revenue_annual, gross_revenue_quarterly (Receita Bruta)
  • gross_profit_annual, gross_profit_quarterly (Lucro Bruto)
  • operating_income_annual, operating_income_quarterly (EBIT/Lucro Operacional)
  • ebitda_annual, ebitda_quarterly (EBITDA)
  • net_income_annual, net_income_quarterly (Lucro Líquido)
  • financial_result_annual, financial_result_quarterly (Resultado Financeiro)
  • taxes_annual, taxes_quarterly (Impostos)
  • depreciation_annual, depreciation_quarterly (Depreciação)

  • total_equity (Patrimônio Líquido)
  • current_assets, non_current_assets (Ativo Circulante / Não Circulante)
  • current_liabilities, non_current_liabilities (Passivo Circulante / Não Circulante)
  • gross_debt, net_debt (Dívida Bruta / Líquida)
  • short_term_debt, long_term_debt (Dívida CP / LP)
  • cash_and_equivalents (Caixa e Equivalentes)
  • inventory (Estoques)

  • fcff_annual: Free Cash Flow to Firm (Fluxo de Caixa Livre da Firma).
  • net_capex_annual, net_capex_quarterly
  • working_capital_change_annual (Variação de Capital de Giro)
  • roic, roe (Rentabilidade)
  • gross_margin, net_margin, ebitda_margin, operating_margin (Margens)
  • payout_ratio (Payout)
  • current_liquidity, dry_liquidity, general_liquidity (Liquidez)
  • net_debt_to_ebitda (Dívida Líquida/EBITDA), net_debt_to_ebit

  • loss_ratio_history_20y: % of years with negative net income.Proporção de anos com prejuízo.
  • cagr_net_income_history: 1y, 3y, 5y, 10y and Weighted Avg CAGR.CAGR de Lucros (1, 3, 5, 10 anos e Média Ponderada).
  • cost_of_debt_history: Estimated Kd.Custo da Dívida estimado (Kd).
  • financial_leverage_degree_history: GAF (Grau de Alavancagem Financeira).
  • value_generation_history: Market Cap growth vs Retained Earnings.Geração de Valor (Crescimento de VM vs Lucros Retidos).
  • return_on_new_invested_capital_history: RONIC (Retorno sobre Novos Investimentos).
  • ten_year_averages_history: 10y average for ROE, ROIC, Margins.Médias de 10 anos (ROE, ROIC, Margens).
  • share_capital_history: Capital Stock (See special format below).Histórico de Capital Social (Veja formato abaixo).
Special Response: Share Capital Resposta Especial: Capital Social

Indicator: share_capital_history

{ "cnpj": "84.429.695/0001-11", "count": 5, "history": [ { "date": "2021-04-28", "total_shares": 4197317998, "common_shares": 4197317998, "preferred_shares": 0 } ] }

7. Stock Snapshot (Info) 7. Ações (Info/Snapshot)

GET /api/v1/stocks/{ticker}/info

Returns market data, multiples, and the Rights/Governance structure.

Retorna dados de mercado, múltiplos e estrutura de Direitos/Governança.

Example Request

GET /api/v1/stocks/WEGE3/info

Response Format
{ "ticker": "WEGE3", "market_data": { "price": 44.23, // Raw/Unadjusted Price "pe_ratio": 27.25, "dividend_yield": 0.019 }, "rights": { "tag_along_percent": 100.0, "voting_rights": "Pleno", "dividend_rights_description": "25% do lucro líquido..." } }

8. Stock Indicators (History) 8. Histórico da Ação (Indicadores)

GET /api/v1/stocks/{ticker}/indicators/{indicator}
Parameters Parâmetros
start_date Optional YYYY-MM-DD
end_date Optional YYYY-MM-DD
Available Indicators Indicadores Disponíveis
  • price: Raw closing price (unadjusted).Preço de fechamento bruto (sem ajustes).
  • volume: Financial volume.Volume financeiro.
  • volume_moving_avg_30d: 30-day Volume Moving Average.Média Móvel de Volume (30d).
  • pe_ratio: P/E History (Price-to-Earnings).Histórico P/L (Preço/Lucro).
  • pb_ratio: P/B History (Price-to-Book).Histórico P/VP (Preço/Valor Patrimonial).
  • dividend_yield: DY History.Histórico de Dividend Yield.
  • payouts: Dividends & JCP (Special format).Dividendos e JCP (Formato especial).
Example Usage: Payouts

GET /api/v1/stocks/WEGE3/indicators/payouts?start_date=2024-01-01

Response Format (Payouts)
{ "indicator": "payouts", "history": [ { "date": "2024-12-20", // Ex-Date (Data Com) "approval_date": "2024-12-17", "payment_date": "2025-03-12", "type": "INTEREST_ON_EQUITY", "value": 0.079764706 } ] }

9. Valuation Engine (DCF & Simple) 9. Motor de Valuation (DCF e Simples)

Run dynamic valuation models. You can use default parameters or override them to create custom scenarios.

Execute modelos de valuation dinâmicos. Você pode usar os parâmetros padrão ou sobrescrevê-los para criar cenários personalizados.

Discounted Cash Flow (DCF)

Available endpoints:

Endpoints disponíveis:

  • Company: intrinsic_value_dcf_history (Fair Value / Valor Justo)
  • Stock: target_price_dcf_history (Target Price / Preço Alvo)
  • Stock: margin_of_safety_dcf_history (Margin / Margem de Segurança)
Query Parameters (Filter & Modeling) Parâmetros (Filtro e Modelagem)
Parameter Type Description
start_date YYYY-MM-DD Filter history start date (Optional). Filtrar data de início do histórico (Opcional).
end_date YYYY-MM-DD Filter history end date (Optional). Filtrar data final do histórico (Opcional).
projection_years int Years for explicit cash flow projection (Default: 3). Anos de projeção explícita de caixa (Padrão: 3).
growth_years int Lookback period for historical growth (Default: 5). Período retroativo para crescimento histórico (Padrão: 5).
terminal_growth float Perpetuity growth rate (g). Example: 0.05 (5%). Crescimento na perpetuidade (g). Exemplo: 0.05 (5%).
projection_growth_rate float / dict Override: Force a specific growth rate (g_proj).
Accepts a literal (e.g., 0.10) or a JSON object.
Forçar: Impõe um crescimento específico (g_proj).
Aceita valor literal (ex: 0.10) ou objeto JSON.
discount_rate float / dict Override: Force a specific WACC/Ke rate.
Accepts a literal (e.g., 0.12) or a JSON object.
Forçar: Impõe uma taxa de desconto (WACC/Ke).
Aceita valor literal (ex: 0.12) ou objeto JSON.
Example 1: Literal Override (Valor Fixo)

Force 10% growth and 12% discount rate:

Forçar 10% de crescimento e 12% de desconto:

GET /api/v1/stocks/WEGE3/indicators/target_price_dcf_history?projection_years=10&discount_rate=0.12&projection_growth_rate=0.10
Example 2: Dictionary Override (Avançado)

Pass a JSON object to vary rates over time (URL Encoded):

Passe um objeto JSON para variar taxas no tempo (URL Encoded):

GET ...&discount_rate={"2023-01-01":0.10, "2024-01-01":0.12}
Response Format (With Meta)
{ "meta": { "params": { "projection_years": 10, "discount_rate": 0.12, "terminal_growth": 0.05 } }, "history": [ { "date": "2023-12-31", "value": 45.20 } ] }
Simple Valuation Valuation Simples (Múltiplos)

Approximation of the DCF model based on the 5-year average of Net Income, discounted by the Risk-Free Rate (Treasury IPCA+).

Aproximação do modelo DCF baseada na média de Lucro Líquido dos últimos 5 anos, descontada pela Taxa Livre de Risco (Tesouro IPCA+).

start_date Optional YYYY-MM-DD Filter history start date. Filtrar data de início do histórico.
end_date Optional YYYY-MM-DD Filter history end date. Filtrar data final do histórico.
  • intrinsic_value_simple_history: Calculated Fair Value (Company).Valor Justo Calculado (Empresa).
  • target_price_simple_history: Target Price (Stock).Preço Alvo (Ação).
  • margin_of_safety_simple_history: Margin (Stock).Margem de Segurança (Ação).

10. Screener 10. Screener

Multi-criteria filter over the whole B3 universe, with point-in-time support (as_of).

Filtro multi-critério sobre todo o universo da B3, com suporte a point-in-time (as_of).

GET /api/v1/screener/attributes

Catalog of ~60 filterable attributes (name, category, unit, observed min/max, whether the attribute is point-in-time reliable). Cacheable for 1 day.

Catálogo dos ~60 atributos filtráveis (nome, categoria, unidade, min/max observados, se o atributo é fidedigno point-in-time). Cacheável por 1 dia.

GET /api/v1/screener/strategies

Pre-built filter sets (Graham, Buffett, Lynch, Damodaran).

Conjuntos de filtro pré-montados (Graham, Buffett, Lynch, Damodaran).

POST /api/v1/screener/run

Runs the filter and returns paginated matching stock codes with the requested attribute values.

Executa o filtro e devolve os códigos de ação encontrados, paginados, com os valores dos atributos pedidos.

Body Example Exemplo de Corpo
{ "as_of": "2024-12-31", "filters": [ { "attribute": "pe_ratio", "max": 15 }, { "attribute": "roic", "min": 0.1 } ], "sort": "-roic", "page": 1, "page_size": 50 }
Response Format Formato da Resposta
{ "results": [ { "code": "WEGE3", "values": { "pe_ratio": 14.2, "roic": 0.31 } } ], "total": 1, "page": 1, "page_size": 50, "has_next": false }

11. Portfolio (Selection, Allocation & Correlation) 11. Carteira (Seleção, Alocação e Correlação)

Compose a portfolio over a given universe of stock codes — stateless, no Portfolio is created/edited via API. The read-only routes below are the one exception: they read (never write) portfolios already saved on the site.

Compõe uma carteira sobre um universo de códigos de ação dado — stateless, nenhum Portfolio é criado/editado via API. As rotas de leitura abaixo são a única exceção: leem (nunca escrevem) carteiras já salvas no site.

POST /api/v1/portfolio/select-stocks

Body: {universe: [codes], method, num_stocks, as_of?}. method: margin_of_safety_simple / margin_of_safety_dcf / cluster_margin_of_safety_simple / cluster_margin_of_safety_dcf.

Corpo: {universe: [codes], method, num_stocks, as_of?}. method: margin_of_safety_simple / margin_of_safety_dcf / cluster_margin_of_safety_simple / cluster_margin_of_safety_dcf.

POST /api/v1/portfolio/allocate-capital

Body: {stocks: [codes], method, as_of?}{allocations: [{code, weight}]}. method: equal / sharpe_max_dcf / sharpe_max_simple.

Corpo: {stocks: [codes], method, as_of?}{allocations: [{code, weight}]}. method: equal / sharpe_max_dcf / sharpe_max_simple.

POST /api/v1/portfolio/systemic-correlation

Body: {stocks: [codes], as_of?}{value} (variance share explained by the 1st principal component — systemic risk proxy).

Corpo: {stocks: [codes], as_of?}{value} (proporção da variância explicada pelo 1º componente principal — proxy de risco sistêmico).

Saved portfolios (read-only — the only stateful endpoints in this API) Carteiras salvas (somente leitura — os únicos endpoints com estado desta API)

Read the portfolios/strategies the current user already saved on the site — no write. Requires an ApiKey issued with the read:portfolios scope (a Bearer session has full access, unrestricted by scope).

Lê as carteiras/estratégias que o usuário já salvou no site — sem nenhuma escrita. Exige uma ApiKey emitida com o escopo read:portfolios (uma sessão Bearer tem acesso total, sem restrição de escopo).

GET /api/v1/portfolios

Summary list of the user's own portfolios (no filters/stocks — see the detail route).

Lista resumida das carteiras do próprio usuário (sem filtros/ações — veja a rota de detalhe).

{ "portfolios": [ { "id": 1, "name": "Carteira Value", "num_stocks": 10, "total_investment": 5000.0, "auto_allocation": true, "auto_stock_allocation": true, "last_updated": "2024-06-01T12:00:00" } ] }
GET /api/v1/portfolios/{id}

Full detail — filters and manually added stocks included, translated to English. A portfolio ID belonging to another user (or that doesn't exist) returns 404.

Detalhe completo — filtros e ações adicionadas manualmente incluídos, traduzidos para inglês. Um ID de portfolio de outro usuário (ou inexistente) devolve 404.

{ "id": 1, "name": "Carteira Value", "variable_income_method": "fixed", "distribution_method": "equal", "stock_allocation_method": "margin_of_safety_simple", "filters": [{ "attribute": "margin_of_safety_simple", "min": 0.1, "max": null, "is_active": true }], "stocks": [{ "code": "PETR4", "allocation": 1.0 }] }

12. Backtest (Async Job) 12. Backtest (Job Assíncrono)

Fully parametrized point-in-time backtest — filters, selection/allocation method, date interval, step, optional rebalancing, output series, and a rolling-window (walk-forward) mode. Runs as an async job, since a single backtest can take minutes.

Backtest point-in-time totalmente parametrizado — filtros, método de seleção/alocação, intervalo de datas, cadência de passo, rebalanceamento opcional, séries de saída, e um modo de janela móvel (walk-forward). Roda como job assíncrono, já que um único backtest pode levar minutos.

POST /api/v1/backtest

Returns 202 {"job_id": "..."} immediately — the simulation runs in the background.

Devolve 202 {"job_id": "..."} imediatamente — a simulação roda em background.

{ "filters": [{ "attribute": "pe_ratio", "max": 15 }], "num_stocks": 10, "selection_method": "margin_of_safety_simple", "allocation_method": "equal", "variable_income_method": "fixed", "start_date": "2020-01-01", "end_date": "2024-01-01", "step_days": 30, "rebalance_every_n_steps": 1, "output_series": ["cdi", "portfolio_return", "sharpe_ratio"], "output_step_days": 7, // optional — display periodicity, distinct from step_days (rebalancing) "mode": "series" }

output_step_days is optional and distinct from step_days: step_days controls how often the portfolio is rebalanced, output_step_days controls how many points come back in chart_data (default: 1 per calendar day). Neither affects sharpe_ratio/total_return, always computed on the full daily series.

output_step_days é opcional e distinto de step_days: step_days controla a cadência de rebalanceamento, output_step_days controla quantos pontos voltam em chart_data (padrão: 1 por dia corrido). Nenhum dos dois afeta sharpe_ratio/total_return, sempre calculados sobre a série diária completa.

mode: "walk_forward" requires walk_forward_window_days and returns, once SUCCESS, {windows, win_rate, average_alpha, window_returns} instead of chart_datawin_rate is the share of windows with positive return, average_alpha is the simple mean return across windows (not a CAPM-style excess return).

mode: "walk_forward" exige walk_forward_window_days e devolve, quando SUCCESS, {windows, win_rate, average_alpha, window_returns} em vez de chart_datawin_rate é a proporção de janelas com retorno positivo, average_alpha é a média aritmética simples do retorno das janelas (não é excesso sobre benchmark no sentido CAPM).

GET /api/v1/backtest/{job_id}

Poll until state is terminal. percent is computed server-side.

Faça polling até state ficar terminal. percent já vem calculado no servidor.

{ "state": "PROGRESS", "progress": { "current": 4, "total": 10, "percent": 40 }, "result": null, "error": null }
Dedicated rate limit (5/minute) and a hard cap of 50 windows in walk-forward mode — this is the heaviest endpoint in the API. Rate limit dedicado (5/minuto) e um teto duro de 50 janelas no modo walk-forward — é o endpoint mais caro da API.

13. CVM Documents & Insiders 13. Documentos e Insiders CVM

Read-only access to the CVM regulatory document archive (Material Facts, Meetings, art. 11 insider filings...) — "list → open → excerpt", each step narrower than the last. Every response carrying text embeds a citation envelope (source_url is the original CVM download link) — provenance is always verifiable outside our database.

Acesso de leitura ao acervo de documentos regulatórios da CVM (Fatos Relevantes, Assembleias, formulários de insiders art. 11...) — "listar → abrir → recortar", cada passo mais estreito que o anterior. Toda resposta com texto embute um envelope de citação (source_url é o link de download original da CVM) — a procedência é sempre conferível fora do nosso banco.

GET /api/v1/companies/{cnpj}/documents

Paginated metadata of documents the company delivered to the CVM — never the full text. Metadado paginado dos documentos que a companhia entregou à CVM — nunca o texto integral.

Parameters Parâmetros
cnpj Required Company CNPJ. CNPJ da companhia.
category Optional One of: material_fact, market_announcement, shareholders_meeting, board_meeting, insider_trading, related_party_transaction. Uma de: material_fact, market_announcement, shareholders_meeting, board_meeting, insider_trading, related_party_transaction.
start_date / end_date Optional YYYY-MM-DD
include_superseded Optional Default false — only the current version per protocol; a restatement never appears twice. Default false — só a versão vigente por protocolo; uma retificação nunca aparece duas vezes.
page / page_size Optional
Example Request

GET /api/v1/companies/84.429.695/0001-11/documents?category=material_fact

Response Format
{ "items": [{ "document_id": 918234, "protocol": "PROT-001234", "version": 1, "category": "material_fact", "delivery_date": "2024-05-10", "reference_date": "2024-05-01", "company_cnpj": "84.429.695/0001-11", "source_url": "https://www.rad.cvm.gov.br/ENET/...", "text_status": "ok", "chars": 4213 }], "total": 1, "page": 1, "page_size": 50, "has_next": false }
GET /api/v1/documents/{document_id}

Returns a single document's citation envelope and text, capped at DOCUMENTO_API_MAX_CHARS (default 2,000,000 chars). truncated/total_chars are always present, not only when truncated. Devolve o envelope de citação e o texto de um documento, sob o teto de DOCUMENTO_API_MAX_CHARS (default 2.000.000 chars). truncated/total_chars sempre presentes, não só quando truncado.

Parameters Parâmetros
document_id Required document_id from the listing above. document_id da listagem acima.
Example Request

GET /api/v1/documents/918234

Response Format
{ "document_id": 918234, "protocol": "PROT-001234", "...": "(same citation fields as above)", "text": "Comunicamos aos nossos acionistas...", "truncated": false, "total_chars": 4213 }
GET /api/v1/documents/{document_id}/excerpt

Returns a character-offset excerpt of a document's text, sliced in the database (never loads the full column into Python — the longest document measured has 1,627,451 chars). Devolve um trecho do texto do documento por offset de caracteres, fatiado no banco (nunca carrega a coluna inteira em Python — o documento mais longo medido tem 1.627.451 chars).

Parameters Parâmetros
start / end Required Character offsets. Negative or end <= start → 422; offsets beyond total_chars are clamped, not an error. Offsets de caractere. Negativo ou end <= start → 422; offset além de total_chars é clampado, não é erro.
context Optional Extra characters of context around the excerpt. Default: DOCUMENTO_API_EXCERPT_CONTEXT. Caracteres extras de contexto ao redor do trecho. Default: DOCUMENTO_API_EXCERPT_CONTEXT.
Example Request

GET /api/v1/documents/918234/excerpt?start=120&end=340&context=50

Response Format
{ "start": 70, "end": 390, "text": "...trecho recortado...", "total_chars": 4213 }
GET /api/v1/companies/{cnpj}/insider-trades

Insider trading activity (art. 11), aggregated by group × month by default — derived from balance lines, never the free-text operation column. detail=raw returns paginated raw rows. Negociação de insiders (art. 11), agregada por grupo × mês por padrão — derivada das linhas de saldo, nunca da coluna de operação (texto livre). detail=raw devolve as linhas cruas paginadas.

Parameters Parâmetros
cnpj Required Company CNPJ. CNPJ da companhia.
detail Optional aggregated (default) or raw. aggregated (default) ou raw.
start_date / end_date Optional YYYY-MM-DD
Example Request

GET /api/v1/companies/84.429.695/0001-11/insider-trades

Response Format
{ "items": [{ "group": "executive_board", "month": "2024-05-01", "security": "Ações", "initial_position": 1000.0, "final_position": 1200.0, "net_change": 200.0, "net_change_pct": 20.0, "citation": "(citation envelope)" }], "gaps": [{ "month": "2024-03-01", "parse_status": "estrutura_nao_reconhecida" }] }
Listar Filtrar Portfólios