# Brazil Company Financials (CVM DFP/ITR, B3) (`br_data_hub/br-cvm-company-financials`) Actor

Standardized financial statements of Brazilian listed companies from CVM open data (DFP annual, ITR quarterly): revenue, EBIT, net income, assets, cash, debt, equity, operating cash flow, margins, net debt, ROE and isolated quarters. Search by B3 ticker, CNPJ or CVM code.

- **URL**: https://apify.com/br_data_hub/br-cvm-company-financials.md
- **Developed by:** [br_data_hub](https://apify.com/br_data_hub) (community)
- **Categories:** AI, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.00 / 1,000 company periods

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Brazil Company Financials (CVM DFP/ITR, B3)

Get **standardized financial statements of Brazilian listed companies** straight from the official open data of **CVM** (Comissão de Valores Mobiliários, Brazil's SEC): the annual statements (**DFP**) and the quarterly ones (**ITR**). Ask for a B3 ticker, a CNPJ or a CVM code and the years you want; get one clean row per company and period, ready for a spreadsheet, a model or an AI agent.

No scraping of investment websites: every number comes from the filings companies send to CVM, mapped by CVM account code, with a link back to the filing.

### What you get per company and period

- **Income statement:** net revenue (3.01), gross profit (3.03), EBIT (3.05), financial result (3.06), net income (3.11) and the part attributable to the parent company
- **Balance sheet:** total assets, cash and equivalents, short-term financial investments, short- and long-term loans and financing, equity
- **Cash flow:** operating cash flow (6.01)
- **Computed:** gross, EBIT and net margins, gross debt, net debt, ROE
- **Quarters:** isolated quarter values computed from the year-to-date ITR figures, and **Q4 = annual DFP minus 9 months**; year-to-date values stay in `ytd`
- **Traceability:** consolidated or individual basis, filing version, date received by CVM, link to the filing and the CVM account code behind every metric (`sourceAccounts`)

#### Consolidated vs individual

By default the Actor uses the **consolidated** statements, and falls back to the **individual** (parent-only) ones when a company has no subsidiaries and files no consolidated statements. The `basis` field always says which one you got.

#### Banks and insurers

Banks and insurers use different charts of accounts. The Actor detects them (`chartOfAccounts`: `commercial`, `bank` or `insurance`) and maps net income, equity, total assets, cash and operating cash flow to the right accounts (for example, bank net income at 3.09 or 3.11, insurer net income at 3.13). Metrics that have no comparable meaning are left empty instead of being guessed, and the row is flagged with `standardized: false` plus a note. For example, a bank has no gross profit, EBIT or "debt".

#### Restatements

When a company refiles a statement, CVM keeps every version. The Actor always uses the **latest version** (`filingVersion`), and the period figures always come from the filing for that period, not from comparatives in later filings.

### Input

| Field | Description |
|---|---|
| `companies` | B3 tickers (`PETR4`, or the root `PETR`), CNPJs (`33.000.167/0001-01`) or CVM codes (`9512`). |
| `years` | Fiscal years, e.g. `[2023, 2024, 2025]`. DFP starts in 2010, ITR in 2011. |
| `statementType` | `annual` (DFP), `quarterly` (ITR Q1 to Q3 plus derived Q4) or `both`. |
| `basis` | `auto` (consolidated first), `consolidated` or `individual`. |
| `proxyConfiguration` | Optional. Only needed if CVM refuses connections from Apify's servers (see Data source); use Apify Proxy with country Brazil. |

Default input: `PETR4`, `VALE3`, `ITUB4`, year 2025, annual. It is expected to finish in 1 to 2 minutes.

CVM publishes one file per year with **all** companies, so the run time depends on the number of years, not on the number of companies: asking for 30 companies costs about the same compute as asking for one.

#### Tickers

Tickers are matched to CNPJs with a table built from CVM's own open data (the securities listed in each company's *Formulário Cadastral*, FCA). Source, license and generation date are in `src/data/tickers.meta.json`; tickers not in the bundled table are looked up at run time in the latest FCA file. If a ticker is not found, use the CNPJ or CVM code.

### Output

All amounts in **BRL (units, not thousands)**. Ratios are decimals (0.15 = 15%).

```json
{
  "companyName": "EMPRESA EXEMPLO INDUSTRIAL S.A.",
  "ticker": "EXIN3",
  "cnpj": "11.222.333/0001-81",
  "cvmCode": "99999",
  "period": "2024Q4",
  "periodType": "quarter",
  "periodStart": "2024-10-01",
  "periodEnd": "2024-12-31",
  "basis": "consolidated",
  "chartOfAccounts": "commercial",
  "standardized": true,
  "revenue": 260000,
  "ebit": 70000,
  "netIncome": 37000,
  "totalAssets": 5000000,
  "equity": 1400000,
  "grossDebt": 1000000,
  "netDebt": 600000,
  "operatingCashFlow": 80000,
  "netMargin": 0.1423,
  "roe": 0.0243,
  "ytd": {"revenue": 1000000, "netIncome": 150000, "operatingCashFlow": 320000},
  "quarterDerivation": "annual-minus-9m",
  "statementSource": "DFP-ITR",
  "filingVersion": 2,
  "filingReceivedAt": "2025-04-15",
  "sourceAccounts": {"revenue": "DRE 3.01", "ebit": "DRE 3.05", "netIncome": "DRE 3.11"},
  "notes": []
}
```

(Example with a fictional company; field list shortened.)

Definitions:

- `grossDebt` = loans and financing, current (2.01.04) + non-current (2.02.01). Under IFRS 16 some companies include lease liabilities in these accounts.
- `netDebt` = gross debt − cash and equivalents − short-term financial investments.
- `roe` = net income attributable to the parent (or net income) ÷ ending equity, for the period of the row (quarterly ROE is **not** annualized).
- `quarterDerivation`: `reported` (3-month values filed by the company), `ytd-difference` (at least one value is year-to-date minus previous quarter, as the cash flow statement is only filed year-to-date) or `annual-minus-9m` (Q4).

### How much does it cost?

Pay per event: **`company-period`**, charged once per row returned (one company × one period). Companies or years with no filing are not charged, and errors are free.

The standard Apify start event (`apify-actor-start`, charged by the platform, not by the code) stays at its default price.

Suggested price: **US$ 0.01 per company-period** (US$ 10 per 1,000). Ten years of annual data for one company cost US$ 0.10; one year of quarters plus the annual row costs US$ 0.05. How it was set:

- Apify compute costs US$ 0.20 per compute unit (1 CU = 1 GB of memory for 1 hour). The Actor runs with 256 MB: it streams CVM's ZIP files from disk and peaks at about 70 MB.
- Most of the time is spent downloading and reading CVM's yearly files (about 10 to 45 MB per year and type). Estimate per year requested: about 1 minute for annual data, 2 minutes with quarters, at 256 MB = 0.004 to 0.008 CU = **US$ 0.0008 to 0.0017**.
- After Apify's 20% commission, US$ 0.01 leaves US$ 0.008 per row. The worst case, a run that returns a single row (one company, one year, annual), still leaves US$ 0.008 against about US$ 0.001 of compute; with quarters each year returns 5 rows (US$ 0.04 net) against about US$ 0.002.
- Comparable Actors on the Store: one charges US$ 0.02 per **account line** of ITR filings (a single company-quarter has dozens of lines), and a B3 fundamentals Actor charges US$ 0.05 per stock for a current snapshot. Raw-line Actors at US$ 0.0005 per line exist, but leave mapping, banks, restatements and quarter isolation to you.

**$0.01 per company period** (`company-period` event, pay per event). Charged once per company and period returned with standardized statements. Errors are free.

- `apify-actor-start`: $0.00005 (Charged once when a run starts (Apify synthetic event).)

| You get | Free tier | Bronze tier (10% off) | Gold tier (30% off) |
|---|---|---|---|
| 100 company periods | $1.00 | $0.90 | $0.70 |
| 1,000 company periods | $10.00 | $9.00 | $7.00 |
| 10,000 company periods | $100.00 | $90.00 | $70.00 |

Discounts follow your Apify subscription tier: Bronze 10%, Silver 20%, Gold and above 30%. No subscription to this Actor and no charge for platform usage: you pay only for results.
The Apify Free plan includes $5 of monthly credit, enough for about **500 company periods** at the list price.
You can cap the cost of any run with **Maximum cost per run**; the Actor stops when it is reached.

### Data source

- **CVM open data portal** (`dados.cvm.gov.br`): *Cias Abertas: Documentos: DFP*, *ITR* and *FCA*, plus *Cadastro de Companhias Abertas*. License: **Open Database License (ODbL)**. Attribution: "Fonte: CVM – Portal Dados Abertos (dados.cvm.gov.br)". If you redistribute a database built from this output, ODbL requires attribution and sharing that database under the same license.
- **Not affiliated** with CVM, B3 or any listed company. This Actor only reads CVM's public open-data files.
- Some Brazilian government sites refuse connections from outside Brazil. If a run fails to download CVM files, the run stops with a clear message and nothing is charged; set `proxyConfiguration` to Apify Proxy with country Brazil and run again.
- Data is as filed by the companies; CVM updates the files about weekly. Figures of a recently filed quarter appear after CVM's next update.
- Personal data: the CVM registry includes the name, e-mail and phone of each company's investor relations officer. The Actor does **not** read or return them.
- Not investment advice. Account mapping follows the CVM standard chart of accounts; companies may classify items differently, so check `sourceAccounts` and the filing link for decisions that matter.

### More questions

#### Can I ask for PETR3 and PETR4, or just "PETR"?

Yes. Financial statements belong to the company, not to the share class, so the Actor matches tickers to the company's CNPJ and returns one set of rows per company: `PETR3` and `PETR4` in the same run give the same rows once. A 4-letter root such as `PETR` also works. If a ticker is not found in CVM's securities list, use the CNPJ or the CVM code; the unresolved entries are listed in the run's `OUTPUT` record.

#### How far back does the data go?

Annual statements (DFP) start in 2010 and quarterly ones (ITR) in 2011, which is where CVM's open data starts. Earlier years are skipped with a warning and nothing is charged for them.

#### When does a new quarter show up?

After the company files it with CVM and CVM refreshes its open data files, which happens about once a week. A year whose file CVM has not published yet is skipped with a warning; the other years of the run are returned normally.

#### Are the values in thousands of reais?

No. CVM files report values in units or thousands depending on the company; the Actor reads the scale of each filing and always returns **BRL units**. Ratios such as `netMargin` and `roe` are decimals (0.15 = 15%), and quarterly ROE is not annualized.

#### How do I get Q4 if companies do not file a fourth-quarter ITR?

With `statementType` set to `quarterly` or `both`, the Actor derives Q4 as the annual DFP minus the first nine months and marks it with `quarterDerivation: "annual-minus-9m"`. Q2 and Q3 are isolated from year-to-date figures when needed (`ytd-difference`), and the year-to-date values stay in `ytd`.

#### What happens when a company restates its statements?

CVM keeps every version. The Actor uses the latest version filed for each period (`filingVersion`, `filingReceivedAt`) and takes each period's figures from that period's own filing, not from the comparative columns of later filings.

#### Does it work for banks and insurers?

Yes, with their own charts of accounts (`chartOfAccounts`: `bank` or `insurance`). Net income, equity, total assets, cash and operating cash flow are mapped to the right accounts; metrics without a comparable meaning, such as gross profit or gross debt for a bank, are left empty and the row has `standardized: false` with a note.

#### Does asking for more companies make the run slower?

Barely. CVM publishes one file per year with all companies, so the run time depends on the years and statement types you ask for, not on how many companies. One year of annual data takes about a minute.

### Use it via API

Run it from any language and get the results as JSON. Replace `<YOUR_API_TOKEN>` with your [Apify API token](https://console.apify.com/settings/integrations).

```bash
curl -X POST "https://api.apify.com/v2/acts/br_data_hub~br-cvm-company-financials/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"companies": ["PETR4", "VALE3", "ITUB4"], "years": [2025]}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("br_data_hub/br-cvm-company-financials").call(run_input={'companies': ['PETR4', 'VALE3', 'ITUB4'], 'years': [2025]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

You can also schedule runs, send results to webhooks, or connect the Actor to Make, Zapier, n8n, Google Sheets and other [integrations](https://docs.apify.com/platform/integrations).

### Use it with AI agents (MCP)

This Actor is ready for AI agents: typed input and output schemas, pay-per-event pricing, limited permissions and short runs.

- **Apify MCP server:** add `https://mcp.apify.com/?tools=br_data_hub/br-cvm-company-financials` to Claude, ChatGPT, Cursor, VS Code or any MCP client, and the agent can call this Actor as a tool.
- **Agent frameworks:** call it from LangChain, LlamaIndex, CrewAI or the OpenAI Agents SDK through the Apify integrations, or with the API call above.
- Results come as structured JSON with stable field names, documented in the **Output** tab.

### FAQ

#### Where does the data come from?

- **CVM open data portal** (`dados.cvm.gov.br`): *Cias Abertas: Documentos: DFP*, *ITR* and *FCA*, plus *Cadastro de Companhias Abertas*. License: **Open Database License (ODbL)**. Attribution: "Fonte: CVM – Portal Dados Abertos (dados.cvm.gov.br)". If you redistribute a database built from this output, ODbL requires attribution and sharing that database under the same license. - **Not affiliated** with CVM, B3 or any listed company. This Actor only reads CVM's public open-data files. - Some Brazilian government sites refuse connections from outside Brazil. If a run fails to download CVM files, the run stops with a clear message and nothing is charged; set `proxyConfiguration` to Apify Proxy with country Brazil and run again. - Data is as filed by the companies; CVM updates the files about weekly. Figures of a recently filed quarter appear after CVM's next update. - Personal data: the CVM registry includes the name, e-mail and phone of each company's investor relations officer. The Actor does **not** read or return them. - Not investment advice. Account mapping follows the CVM standard chart of accounts; companies may classify items differently, so check `sourceAccounts` and the filing link for decisions that matter.

#### How much does it cost?

$0.01 per company period. Discounts follow your Apify subscription tier: Bronze 10%, Silver 20%, Gold and above 30%. See **How much does it cost?** above for examples.

#### Do I pay for errors or empty results?

No. Charged once per company and period returned with standardized statements. Errors are free.

#### Can I run it on a schedule or connect it to other tools?

Yes. Use Apify schedules to run it daily or weekly, webhooks to get notified, and integrations such as Make, Zapier, n8n and Google Sheets. Everything also works through the API.

#### Can AI agents use it?

Yes. It works as a tool in the Apify MCP server and in agent frameworks, and AI agents can pay per event. See **Use it with AI agents (MCP)**.

#### Is it legal to use this data?

The Actor reads only public, official sources and keeps personal data masked as the source publishes it. You are responsible for how you use the data, including LGPD compliance.

#### I found a bug or need a feature. What should I do?

Open an issue in the **Issues** tab. We answer within 14 days, usually much sooner.

### More Actors from BR Data Hub

| Actor | What it does |
|---|---|
| [Brazil Exchange Rates API (Cotação PTAX)](https://apify.com/br_data_hub/br-exchange-rates) | Get official PTAX exchange rates from Banco Central do Brasil: buy and sell rates in BRL, parities and bulleti |
| [Brazil Treasury Bonds API (Tesouro Direto)](https://apify.com/br_data_hub/br-tesouro-direto) | Daily rates and unit prices of Brazilian Treasury bonds (Tesouro Direto: Selic, Prefixado, IPCA+, Renda+, Educ |
| [Brazil Inflation Calculator (IPCA, IGP-M, Selic)](https://apify.com/br_data_hub/br-monetary-correction) | Correct BRL amounts in bulk by IPCA, INPC, IGP-M, IGP-DI, IPC-Fipe, Selic, CDI, TR or savings (poupança) using |
| [Brazil Investment Fund Returns (Fundos CVM)](https://apify.com/br_data_hub/br-cvm-fund-performance) | Ready-made performance metrics for Brazilian investment funds from CVM open data: period, YTD and 12-month ret |
| [Brazil Fuel Prices by City (ANP Combustíveis)](https://apify.com/br_data_hub/br-anp-fuel-prices) | Weekly fuel prices in Brazil from the ANP open data survey (not affiliated with the ANP): average, minimum, ma |

See all our Actors at [apify.com/br_data_hub](https://apify.com/br_data_hub).

### Usar em português

**Demonstrações financeiras padronizadas das companhias abertas brasileiras**, direto dos dados abertos da CVM: a DFP (anual) e o ITR (trimestral). Você informa ticker da B3, CNPJ ou código CVM e os anos; recebe uma linha limpa por empresa e período, pronta para planilha, modelo de valuation ou agente de IA.

**Para que serve:** montar o histórico de resultados de uma empresa ou de um setor, comparar margens e endividamento entre empresas, alimentar um modelo ou painel com números oficiais e rastreáveis, sem copiar dados de sites de investimento.

**Como usar em 3 passos:**

1. Em `companies`, coloque tickers (`PETR4`, ou só a raiz `PETR`), CNPJs (`33.000.167/0001-01`) ou códigos CVM (`9512`).
2. Em `years`, escolha os exercícios (DFP desde 2010, ITR desde 2011) e, em `statementType`, `annual` (anual), `quarterly` (1º ao 3º trimestre e o 4º calculado) ou `both` (ambos).
3. Deixe `basis` em `auto` (consolidado, ou individual quando a empresa não tem consolidado) e rode. Baixe em JSON, CSV ou Excel.

**Exemplo de entrada:**

```json
{"companies": ["PETR4", "VALE3", "ITUB4"], "years": [2023, 2024, 2025], "statementType": "annual", "basis": "auto"}
```

**Campos principais:** `companyName`, `ticker`, `cnpj`, `period` (por exemplo `2024` ou `2024Q4`), `periodType`, `basis` (consolidado ou individual), `revenue` (receita líquida, conta 3.01), `grossProfit`, `ebit`, `netIncome` (lucro líquido), `totalAssets`, `equity` (patrimônio líquido), `grossDebt` e `netDebt` (dívida bruta e líquida), `operatingCashFlow`, `netMargin`, `roe`, `ytd` (acumulado no ano), `filingVersion` e `sourceAccounts` (a conta CVM por trás de cada número).

**Bom saber:**

- Valores sempre em reais (unidades, não milhares); margens e ROE em decimal (0,15 = 15%). O ROE trimestral não é anualizado.
- O 4º trimestre é o anual menos os 9 meses (`quarterDerivation: "annual-minus-9m"`).
- Reapresentações: vale sempre a versão mais recente de cada demonstração.
- Bancos e seguradoras têm plano de contas próprio: o Actor mapeia o que é comparável e marca `standardized: false` no resto.
- PETR3 e PETR4 são a mesma empresa: as linhas vêm uma vez só.
- Se a CVM recusar a conexão dos servidores da Apify, a execução para com mensagem clara e sem cobrança; rode de novo com `proxyConfiguration` (Apify Proxy, país Brasil).

**O que é grátis:** erros, empresas não encontradas e anos sem demonstração. Você paga por linha entregue (empresa × período, evento `company-period`), mais o evento padrão de início de execução da Apify (`apify-actor-start`). Não é recomendação de investimento. Fonte: CVM – Portal Dados Abertos (dados.cvm.gov.br), licença ODbL. Ferramenta independente, sem vínculo com a CVM, a B3 ou as companhias.

**Quanto custa:** $0.01 por resultado (`company-period`); 1.000 resultados saem por $10.00. Desconto pelo nível da assinatura Apify: Bronze 10%, Silver 20%, Gold ou acima 30%. Erros e consultas sem resultado não são cobrados. Use também pela API ou por agentes de IA no servidor MCP da Apify (`https://mcp.apify.com/?tools=br_data_hub/br-cvm-company-financials`).

# Actor input Schema

## `companies` (type: `array`):

Enter B3 tickers (PETR4, or the 4-letter root PETR), CNPJs (33.000.167/0001-01 or digits only) or CVM codes (9512), one company per line.

## `years` (type: `array`):

Enter the fiscal years as a JSON list, e.g. \[2023, 2024, 2025]. Annual data (DFP) starts in 2010 and quarterly data (ITR) in 2011. Each extra year downloads one more CVM file, so runs get longer.

## `statementType` (type: `string`):

Choose Annual for DFP full-year figures, Quarterly for ITR quarters Q1 to Q3 plus Q4 derived from DFP minus 9 months (year-to-date values in 'ytd'), or Both.

## `basis` (type: `string`):

Keep Auto to get consolidated statements when the company files them, otherwise individual (parent-only); the 'basis' field says which was used. Pick Consolidated or Individual to force one (companies without it are skipped).

## `proxyConfiguration` (type: `object`):

Leave off normally. Turn on Apify Proxy with country Brazil (BR) only if CVM refuses connections from Apify's servers. Proxy traffic is billed by Apify separately.

## Actor input object example

```json
{
  "companies": [
    "PETR4",
    "VALE3",
    "ITUB4"
  ],
  "years": [
    2025
  ],
  "statementType": "annual",
  "basis": "auto",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset with all results

## `files` (type: `string`):

Key-value store with the files and the OUTPUT summary of the run

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "PETR4",
        "VALE3",
        "ITUB4"
    ],
    "years": [
        2025
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("br_data_hub/br-cvm-company-financials").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "companies": [
        "PETR4",
        "VALE3",
        "ITUB4",
    ],
    "years": [2025],
}

# Run the Actor and wait for it to finish
run = client.actor("br_data_hub/br-cvm-company-financials").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "PETR4",
    "VALE3",
    "ITUB4"
  ],
  "years": [
    2025
  ]
}' |
apify call br_data_hub/br-cvm-company-financials --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,br_data_hub/br-cvm-company-financials"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/7amirKx3m7NNjywZR/builds/yFazfMcLCr5Rmhmdx/openapi.json
