🇧🇷 B3 Brasil Stock Screener — Bovespa Quotes & Fundamentals avatar

🇧🇷 B3 Brasil Stock Screener — Bovespa Quotes & Fundamentals

Pricing

from $250.00 / 1,000 b3 stock records

Go to Apify Store
🇧🇷 B3 Brasil Stock Screener — Bovespa Quotes & Fundamentals

🇧🇷 B3 Brasil Stock Screener — Bovespa Quotes & Fundamentals

B3 / Bovespa Brazilian stock screener API — Ibovespa live quotes, market cap (BRL), P/E, P/B, dividend yield, ROE, sector. Petrobras, Vale, Itaú, Ambev universe. Bloomberg Terminal / FactSet / Refinitiv Eikon LATAM equity-data alternative for hedge funds & quants. Pay-per-result.

Pricing

from $250.00 / 1,000 b3 stock records

Rating

0.0

(0)

Developer

Stephan Corbeil

Stephan Corbeil

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

A Bloomberg Terminal alternative for Brazilian equities, packaged as a single Apify actor. Pull every stock listed on B3 (Brasil, Bolsa, Balcão) — Brazil's only stock exchange, formerly known as Bovespa — with prices in BRL, P/L (P/E), P/VP (P/B), dividend yield, ROE, ROIC, EV/EBITDA, net debt to equity, 5-year revenue growth, and 2-month average traded value (liquidity proxy). One run returns the entire B3 universe of roughly 700–900 papers (common stocks ON, preferred shares PN/PNA/PNB, units, BDRs) ready to drop into your value-screen, dividend-strategy, or quant pipeline.

Run a single API call. Get clean JSON. Push it into Snowflake, Databricks, BigQuery, your local Postgres, or a Google Sheet. No browser, no Selenium, no JavaScript rendering — just one HTTP fetch against a server-rendered page, parsed with BeautifulSoup, sorted by liquidity, and returned as a flat list of stock objects.


Why this actor exists

Brazilian retail investors and quant funds run into the same wall foreign-market screeners face: every commercial provider (Economática, ProfitChart, Status Invest Premium, TradingView Pro) charges R$ 50–500/month for what is, fundamentally, public data published by listed companies and aggregated by free Brazilian sites. If you need a programmatic feed — even just for a Sunday-night dividend report or a backtest of an Ibovespa value strategy — you are paying for human-friendly UIs you don't use.

This actor replaces that subscription with a per-record Apify charge of $0.02 per stock. A full 100-stock pull (the entire Ibovespa-tradeable universe sorted by liquidity) costs $2.005 — roughly R$ 10. A monthly auto-refresh of the same universe costs about $24/year. Compare to R$ 50/month × 12 = R$ 600 for any commercial Brazilian quote provider.


Quick start

Run from the Apify UI

  1. Click Try this actor.
  2. Leave the inputs at defaults (limit: 100) for the most-liquid 100 B3 stocks sorted by 2-month average traded value.
  3. Click Run. The actor returns in 5–10 seconds (one HTTP call to Fundamentus + parse + filter + push).
  4. Browse the dataset in the Storage tab, or export as CSV / JSON / Excel from the Output tab.

Run from the API (cURL)

curl -X POST "https://api.apify.com/v2/acts/nexgendata~b3-brasil-stock-screener/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"limit": 50, "min_dividend_yield": 6}'

Run from Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nexgendata/b3-brasil-stock-screener").call(run_input={
"limit": 200,
"min_liquidity_2m_brl": 1_000_000, # at least 1M BRL/day traded
"min_dividend_yield": 5, # at least 5% trailing yield
"max_pe_ratio": 15, # cheap on earnings
})
for stock in client.dataset(run["defaultDatasetId"]).iterate_items():
print(stock["symbol"], stock["company_name_pt"], stock["price_brl"], stock["dividend_yield_pct"])

Output schema

Every stock object includes the following fields (BRL = Brazilian Real, percentages are unit-less floats — 8.31 means 8.31%):

FieldTypeDescription
symbolstringB3 ticker, e.g. PETR4, VALE3, ITUB4, BBDC4.
yahoo_symbolstringYahoo Finance form: PETR4.SA.
company_name_ptstringFull Brazilian-Portuguese corporate name (e.g. PETROLEO BRASILEIRO S.A. - PETROBRAS).
root_tickerstringTicker with class digits stripped (e.g. PETR4PETR).
share_classstringON (Ordinária / common, voting), PN (Preferencial / preferred), PNA, PNB, UNT, etc., inferred from suffix digit.
marketstringAlways B3.
exchange_full_namestringBrasil, Bolsa, Balcão (Bovespa).
countrystringBrazil.
currencystringBRL.
price_brlnumberLast closing price in BRL.
pe_rationumberP/L (Preço/Lucro).
pvp_rationumberP/VP (Preço/Valor Patrimonial = P/B).
psrnumberPrice / Sales.
dividend_yield_pctnumberTrailing 12-month dividend yield, in percent.
p_ativonumberPrice / Total Assets.
p_cap_gironumberPrice / Working Capital.
p_ebitnumberPrice / EBIT.
p_ativ_circ_liqnumberPrice / Net Current Asset Value (Graham metric).
ev_ebitnumberEnterprise Value / EBIT.
ev_ebitdanumberEnterprise Value / EBITDA.
gross_margin_pctnumberGross margin, in percent.
ebit_margin_pctnumberEBIT margin, in percent.
net_margin_pctnumberNet (líquida) margin, in percent.
current_rationumberLiquidez Corrente.
roic_pctnumberReturn on Invested Capital, in percent.
roe_pctnumberReturn on Equity, in percent.
liquidity_2m_brlnumber2-month average daily traded value, in BRL.
book_equity_brlnumberPatrimônio Líquido (book equity), in BRL.
net_debt_to_equitynumberDívida Líquida / Patrimônio Líquido.
revenue_growth_5y_pctnumber5-year revenue CAGR, in percent.
fundamentus_urlstringDirect link to the Fundamentus detail page.
b3_urlstringDirect link to the official B3 listed-company page.
yahoo_finance_urlstringDirect link to Yahoo Finance quote page.
scraped_atstringISO-8601 UTC timestamp of the fetch.

Input filters

FieldTypeDefaultWhat it does
limitinteger100Maximum stocks returned, sorted by 2-month liquidity desc.
min_market_cap_brlinteger0Filter by patrimônio líquido (book equity, BRL) — proxy for size.
min_liquidity_2m_brlinteger0Filter by 2-month avg daily traded value (BRL). 1M+ = tradeable, 10M+ = institutional.
max_pe_rationumber0Cap on P/L (P/E). Set 15 for Graham-style value screen. 0 disables.
max_pvp_rationumber0Cap on P/VP (P/B). Set 1 for "below book" screen. 0 disables.
min_dividend_yieldnumber0Floor on trailing dividend yield, in %. Brazilian utilities/banks routinely yield 8–15%.
min_roe_pctnumber0Floor on Return on Equity, in %. Set 15 for quality screen.
sectorstring""Substring filter against ticker + company name. e.g. BANCO, PETR, VALE.
proxyConfigurationobjectApify Proxy ONDatacenter is fine for Fundamentus. RESIDENTIAL only if you hit a rate limit.

How B3 ticker conventions work

If you've never traded Brazilian equities, the suffix digits encode share class:

  • 3 — ON, ordinária: voting common stock (e.g. VALE3, PETR3, BBAS3).
  • 4 — PN, preferencial: preferred non-voting, usually higher dividend (e.g. PETR4, ITUB4, BBDC4).
  • 5 / 6 / 7 / 8 — Preferred classes A/B/C/D.
  • 11 — Unit (a basket of ON+PN trading as one paper, e.g. SANB11, TAEE11) or BDR (Brazilian Depositary Receipt of a foreign listing).

Petrobras has both PETR3 (voting) and PETR4 (preferred); most Brazilian dividend strategies favor PETR4 for the higher payout. The actor returns both.


Data source

The actor fetches a single server-rendered HTML page from Fundamentus.com.br, a long-running independent Brazilian fundamentals aggregator. Fundamentus pulls quarterly filings (DFP / ITR) directly from CVM (Brazil's SEC) and computes ratios on its servers — meaning the data is the same as what shows up in Economática and other commercial terminals, just a few hours later. Prices are end-of-day (last close, not real-time intraday).

For real-time intraday quotes you would need a paid B3 market-data feed; for fundamentals + close-of-day prices (the inputs to virtually every value, dividend, and quality strategy), Fundamentus is the canonical free source.


Common use cases

  • Brazilian dividend portfoliomin_dividend_yield: 8, min_liquidity_2m_brl: 5_000_000 returns the high-yield subset of tradeable B3 stocks.
  • Magic Formula Brasil — pull all stocks, sort offline by (roic_pct desc, ev_ebit asc) after filtering liquidity_2m_brl > 1_000_000.
  • Graham deep-value screenmax_pvp_ratio: 1, max_pe_ratio: 10, min_roe_pct: 5 — classic margin-of-safety filter.
  • Sector backtestsector: "BANCO" returns every Brazilian bank (Itaú, Bradesco, Santander Brasil, Banco do Brasil, Banrisul, ABC Brasil…).
  • Daily ETL job — schedule a 1× / day run with limit: 500 and stream the dataset into your warehouse for time-series tracking.

Cost

Pay-per-event pricing:

  • $0.005 per actor start.
  • $0.02 per stock returned.

A 10-stock smoke test = $0.205. A 100-stock daily refresh = $2.005 (~R$ 10 at current USD/BRL). 100 stocks × 30 days/month = $60.15/month, versus R$ 50–500/month for a commercial Brazilian terminal.


Sister actors in the NexGenData fleet

If you're screening Brazilian equities, you probably want global coverage too:


About NexGenData

NexGenData ships ~50 specialized data actors on Apify covering global equities, real estate, jobs, contact discovery, SEO, and SaaS-stack mapping. Every actor is built on the same playbook: find a public-but-painful-to-extract data source, wrap one HTTP call in clean JSON, charge per record. No subscriptions, no minimums, transparent pricing.

If you want to build with the same toolkit, Apify offers a generous free tier and our affiliate link gives you bonus credits → https://apify.com/nexgendata?fpr=2ayu9b