B3 Brazil Stock Tickers & Listed Company Scraper
Pricing
from $11.54 / 1,000 results
B3 Brazil Stock Tickers & Listed Company Scraper
Extract the B3 Brazil stock exchange listed-company registry. Get company name, trading name, ticker codes with ISIN, CVM code, CNPJ, listing segment (Novo Mercado), industry classification and website. Export to JSON, CSV or Excel.
Pricing
from $11.54 / 1,000 results
Rating
5.0
(1)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
21 hours ago
Last modified
Categories
Share
B3 Brazil Stock Tickers & Listed Company Scraper
Here is one real result, with every field the actor returns (the cashDividends array is shown with two of its entries):
{"companyName": "PETROLEO BRASILEIRO S.A. PETROBRAS","tradingName": "PETROBRAS","issuingCompany": "PETR","codeCVM": "9512","cnpj": "33000167000101","status": "active","segment": "Exploração. Refino e Distribuição","market": "BOVESPA NIVEL 2","typeBDR": null,"listingDate": "27/08/1968","website": "https://www.petrobras.com.br","industryClassification": "Petróleo. Gás e Biocombustíveis / Petróleo. Gás e Biocombustíveis / Exploração. Refino e Distribuição","activity": "Pesquisa. lavra. refinação. processamento. comércio e transporte de petróleo. de seus derivados. de gás natural e de outros hidrocarbonetos fluidos. além das atividades vinculadas à energia.","hasQuotation": true,"hasBDR": false,"hasEmissions": false,"lastUpdate": "13/08/2026 23:41:24","tickers": ["PETR3", "PETR4", "PETR-DEB62"],"otherCodes": [{ "code": "PETR3", "isin": "BRPETRACNOR9" },{ "code": "PETR4", "isin": "BRPETRACNPR6" },{ "code": "PETR-DEB62", "isin": "BRPETRDBS092" }],"isinCodes": ["BRPETRACNOR9", "BRPETRACNPR6", "BRPETRDBS092"],"registrarCommon": "BRADESCO","registrarPreferred": "BRADESCO","stockCapital": 205431960490.52,"numberCommonShares": 7442231382,"numberPreferredShares": 5446501379,"totalNumberShares": 12888732761,"roundLot": 100,"quotedSince": "23/06/2000","cashDividends": [{"label": "JRS CAP PROPRIO","rate": "0,35048636000","relatedTo": "Anual/2026","approvedOn": "11/05/2026","lastDatePrior": "01/06/2026","paymentDate": "20/08/2026","isinCode": "BRPETRACNOR9"},{"label": "DIVIDENDO","rate": "0,29642144000","relatedTo": "Anual/2025","approvedOn": "11/12/2025","lastDatePrior": "22/12/2025","paymentDate": "20/03/2026","isinCode": "BRPETRACNOR9"}],"dividendCount": 24,"hasDividends": true,"tickerCount": 3,"instrumentType": "Equity","url": "https://www.b3.com.br/en_us/products-and-services/trading/equities/listed-companies/listed-companies.htm","observedAt": "2026-08-15T02:53:24.588Z","aiSummary": "Petroleo Brasileiro S.A. (Petrobras) is a leading Brazilian company engaged in the exploration, refining, and distribution of oil, natural gas, and biofuels. It is listed on the B3 under the ticker symbols PETR3, PETR4, and PETR-DEB62, and operates in the BOVESPA Nivel 2 segment. The company has a substantial share capital of over BRL 205 billion and has a history of distributing cash dividends, with 24 recent dividend events.","error": null}
The most complete B3 listed-company scraper available. It returns every field the B3 registry exposes for each company, including CNPJ, industry classification, all ticker codes with ISIN, share capital, and full cash-dividend history, plus derived counts, and gives you five filters to target exactly the companies you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor reads the B3 (Brasil, Bolsa, Balcão) listed-companies registry and writes one normalized record per company. It lists the whole registry or filters by company name, segment, market, and active status. With withDetails on (the default) it fetches each company's detail record to add industry classification, activity, website, every ticker code with its ISIN, share capital, share counts, registrars, and the full cash-dividend history. Derived fields (tickerCount, dividendCount, hasDividends, instrumentType) are computed on top of the raw B3 data. Missing source values are returned as null.
An optional AI add-on (paid Apify plans only, off by default) writes a plain-English investor snapshot of each company from its own B3 detail record. It is billed only when a summary is produced.
Quickstart
Open the actor, paste this into the input, and press Run. It returns the first 10 listed companies with full detail.
{"maxCompanies": 10,"withDetails": true}
Use search to filter by name (for example petrobras, banco, energia). Leave all filters empty to scrape every company on B3. Set withDetails to false for a fast registry-only sweep.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
maxCompanies | integer | no | 10 | Maximum number of companies to collect (1 to 1000000). |
withDetails | boolean | no | true | Fetch each company's detail record (industry, activity, website, all tickers with ISIN, capital, dividends). One extra request per company. |
withAiSummary | boolean | no | false | Paid add-on. Adds an AI investor snapshot built from the B3 detail record. Requires withDetails. Requires a paid Apify plan. Billed only when a summary is produced. |
search | string | no | (empty) | Filter companies by name (server-side, partial match), for example banco, energia, petro. Empty lists the entire registry. |
segment | string | no | (empty) | Only return companies whose listing segment contains this text (case-insensitive), for example Novo Mercado, Nivel 2. |
market | string | no | (empty) | Only return companies whose market contains this text (case-insensitive), for example BOLSA, BALCAO. |
activeOnly | boolean | no | false | Only return companies with active listing status. |
language | enum | no | pt-br | Language for segment labels returned by B3: pt-br or en-us. |
Filters combine with logical AND.
Output reference
One dataset item per company. Types: string, integer, number, boolean, string[], object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
companyName | string | Full legal company name. |
tradingName | string | B3 trading name. |
issuingCompany | string | Four-letter issuer code, for example PETR. |
codeCVM | string | CVM registration code. |
cnpj | string | Brazilian company tax ID (CNPJ), or null. |
status | string | Listing status, for example active. |
segment | string | Listing segment. |
market | string | Market, for example BOVESPA NIVEL 2, BOLSA. |
typeBDR | string | BDR type when applicable, else null. |
listingDate | string | Date first listed (DD/MM/YYYY). |
website | string | Company website (detail only), or null. |
industryClassification | string | B3 industry classification path (detail only). |
activity | string | Business activity description (detail only), or null. |
hasQuotation | boolean | Whether the company has quoted instruments. |
hasBDR | boolean | Whether the company has BDRs. |
hasEmissions | boolean | Whether the company has emissions. |
lastUpdate | string | B3 last-update timestamp (detail only). |
tickers | string[] | All ticker codes for the company. |
otherCodes | object[] | Ticker code plus ISIN pairs (detail only). |
isinCodes | string[] | All ISIN codes (detail only). |
registrarCommon | string | Registrar for common shares (detail only), or null. |
registrarPreferred | string | Registrar for preferred shares (detail only), or null. |
stockCapital | number | Share capital in BRL (detail only). |
numberCommonShares | integer | Number of common shares (detail only). |
numberPreferredShares | integer | Number of preferred shares (detail only). |
totalNumberShares | integer | Total shares (detail only). |
roundLot | integer | Standard trading lot size (detail only). |
quotedSince | string | Date first quoted (detail only). |
cashDividends | object[] | Cash-dividend history (label, rate, related period, approval, dates, ISIN), or null. |
dividendCount | integer | Number of cash-dividend events found. |
hasDividends | boolean | Whether any dividends were found. |
tickerCount | integer | Number of ticker codes. |
instrumentType | string | Instrument type, for example Equity, BDR. |
url | string | B3 listed-companies source URL. |
observedAt | string | ISO 8601 timestamp of collection. |
aiSummary | string | Plain-English investor snapshot. Populated only when the AI summary add-on is on, else null. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"maxCompanies":10,"withDetails":true}), showing how nulls are returned for a company with no detail data:
{"companyName": "21SHARES CARDANO ETP","tradingName": "21SH CARDANO","issuingCompany": "AADA","codeCVM": "50104","cnpj": null,"status": "active","segment": "Não Classificados","market": "BOLSA","typeBDR": "DRE","listingDate": "17/07/2025","website": null,"industryClassification": "Não Classificados / Não Classificado / Não Classificados","activity": null,"hasQuotation": true,"hasBDR": false,"hasEmissions": false,"lastUpdate": "07/08/2026 23:06:47","tickers": ["AADA39"],"otherCodes": [{ "code": "AADA39", "isin": "BRAADABDR003" }],"isinCodes": ["BRAADABDR003"],"registrarCommon": null,"registrarPreferred": "BANCO B3 S.A.","stockCapital": 0,"numberCommonShares": 0,"numberPreferredShares": 5125000,"totalNumberShares": 5125000,"roundLot": 1,"quotedSince": "30/07/2025","cashDividends": null,"dividendCount": 0,"hasDividends": false,"tickerCount": 1,"instrumentType": "BDR","url": "https://www.b3.com.br/en_us/products-and-services/trading/equities/listed-companies/listed-companies.htm","observedAt": "2026-08-10T14:40:42.149Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~b3-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"search":"banco","withDetails":true,"maxCompanies":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~b3-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"segment":"Novo Mercado","activeOnly":true,"maxCompanies":100}'
Apify CLI:
apify call scrapers_lat/b3-scraper \--input '{"search":"petrobras","withDetails":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per company record returned (
resultevent). See the pricing tab for the current per-result price. - Add-ons billed separately. Detail fetching (
details) and the AI summary (ai_summary) are billed only for the work they do; the AI summary is charged only when a summary is produced, on paid plans. - No charge on failure. If a run errors, the actor writes a single item with an
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run and cannot use the AI add-on. Upgrade for higher
maxCompaniesand enrichment.
FAQ and troubleshooting
A run returned 0 records. Why? The name, segment, or market filter matched nothing. Loosen the filters or clear them to list the whole registry. Zero-result runs are not charged.
Why are website, activity, cashDividends, or the share counts null?
Those come from the company detail record, which is only fetched when withDetails is on. With it off, only the registry-level fields are returned.
Why is cnpj null on some companies?
ETPs, BDRs, and some foreign instruments have no Brazilian CNPJ, so the field is null. Missing source values are returned as null, never invented.
Why is the AI summary null?
The AI add-on is off by default and requires a paid Apify plan plus withDetails. Turn on withAiSummary on a paid plan to populate it.
Can I get the full dividend history?
Yes. With withDetails on, cashDividends carries every cash-dividend event B3 lists for the company, and dividendCount reports how many.
Is this an official B3 tool? No. This actor is independent and has no affiliation with B3. It reads only data that is publicly available on the B3 listed-companies registry. Use it in accordance with the source terms of use.
Related scrapers
- Argentina Companies Scraper: Argentine company registry records.
- SEC EDGAR Company Filings Scraper: US SEC filings by ticker or CIK.
- BCRA Deudores Scraper: Argentine central-bank debtor records.
- BaFin Germany Financial Institutions Scraper: German financial institutions supervised by BaFin.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with B3. Accesses only publicly available B3 listed-companies data. Use in accordance with the source terms of use.
