# 🇹🇷 BIST Turkey Stock Screener — BIST 30 Quotes (`nexgendata/bist-turkey-stock-screener`) Actor

BIST Borsa Istanbul Turkey stock screener API — BIST 100 / BIST 30 live quotes, market cap (TRY), P/E, P/B, dividend yield, ROE, sector. Turkish Airlines, Garanti BBVA, Akbank, Koç Holding universe. Bloomberg / FactSet / Refinitiv Eikon alternative for EMEA data. Pay-per-result.

- **URL**: https://apify.com/nexgendata/bist-turkey-stock-screener.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $250.00 / 1,000 bist stock records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## BIST Turkey Stock Screener — Borsa Istanbul Quotes & Fundamentals

Bloomberg Terminal alternative for **Borsa Istanbul (BIST)** — Turkey's national stock exchange. Pull every BIST 30 blue-chip constituent, the BIST 100 broader benchmark, or the entire ~500-name BIST main-board universe in one structured dataset: price, percent change, market cap (TRY and USD), revenue, P/E ratio, EPS, dividend yield, sector, industry, 52-week range, beta, RSI, and more — at a fraction of the cost of a Bloomberg, FactSet, LSEG Workspace, or Refinitiv Eikon seat.

### 📊 Sample Output

[![🇹🇷 BIST Turkey Stock Screener — BIST 30 Quotes sample output — 🇹🇷 BIST Turkey Stock Screener — BIST 30 Quotes, premium API, JSON output, NexGenData premium dataset for analysts, hedge funds, complianc](https://api.apify.com/v2/key-value-stores/8gLgXMBveEI1tTz1z/records/bist-turkey-stock-screener-output.png)](https://apify.com/nexgendata/bist-turkey-stock-screener)

Built for **emerging-markets hedge funds, Turkey-focused asset managers, frontier-EM quant desks, Istanbul-listed equity research teams, MENA family offices, EM ETF builders, CEE/Türkiye sector specialists, and Turkish-equity newsletter operators** who need clean, structured, programmatic access to the largest and most liquid stock market in the wider Middle-East–Caucasus–Central Asia region — without paying $24,000/year per Bloomberg seat.

---


### Why NexGenData BIST Turkey Screener Beats Bloomberg Terminal, Refinitiv Eikon, and FactSet

| Feature | NexGenData BIST Turkey Screener | Bloomberg Terminal | Refinitiv Eikon / LSEG Workspace | FactSet | Investing.com Turkey |
|---|---|---|---|---|---|
| Cost | $0.05/record pay-per-result | $$$$ ($24,000+/yr seat) | $$$$ ($22,000+/yr seat) | $$$$ ($12,000-$25,000/yr seat) | Free (rate-limited, ad-laden, no schema guarantees) |
| Coverage | Every BIST 100 / BIST 30 / BIST All-Shares constituent — TRY & USD price, market cap, P/E, EPS, div yield, sector, banking/conglomerate/holding tags, foreign-ownership-cap flag | Global incl. BIST but $24K/yr | Global incl. BIST | Global incl. BIST | Global incl. BIST but UI-only, schema unstable |
| Update frequency | Daily close + intraday refresh | Real-time tick | Real-time tick | Real-time tick | Delayed 15min |
| API access | Apify Actor — JSON/CSV/Excel/Parquet | Bloomberg API / BBG Anywhere | Refinitiv RDP API | FactSet API | Investing.com unofficial scrape (breaks often) |
| Auth required | Apify token (free tier available) | Bloomberg seat license | Refinitiv enterprise contract | FactSet enterprise contract | None, but throttled |

### Why Borsa Istanbul matters

Borsa Istanbul (BIST) is the largest and most liquid stock exchange in the wider EMEA emerging-markets region (after Saudi Tadawul). The Turkish equity market is unusual because the macro overlay is extreme — chronic high inflation (often 40–70% YoY in recent years), aggressive central bank policy swings, and a currency (TRY) that has depreciated dramatically against the USD — which produces some of the most extreme valuation dispersions in the EM universe (single-digit P/Es alongside triple-digit nominal annual returns). For value-oriented EM investors, BIST is one of the most-studied "asymmetric risk/reward" markets in the world.

BIST is home to many globally relevant Turkish names:

- **Akbank (AKBNK)** — one of Turkey's top private-sector banks (Sabancı-controlled).
- **Garanti BBVA (GARAN)** — Turkish banking subsidiary of Spain's BBVA.
- **Türkiye Iş Bankası (ISCTR)** — Turkey's largest and oldest commercial bank by assets.
- **Koç Holding (KCHOL)** — Turkey's largest diversified conglomerate (parent of Tüpraş, Tofaş, Ford Otosan, Arçelik).
- **Sabancı Holding (SAHOL)** — diversified conglomerate (Akbank, Enerjisa, Çimsa, Brisa, Carrefoursa).
- **Turkish Airlines (THYAO)** — the national flag carrier, one of the most profitable airlines in the world by route network.
- **Ereğli Demir ve Çelik (EREGL)** — Turkey's largest integrated steel producer.
- **BIM Birleşik Mağazalar (BIMAS)** — Turkish discount retailer, one of the cheapest grocery chains in Europe.
- **ASELSAN (ASELS)** — defense-electronics national champion.
- **Tüpraş (TUPRS)** — Turkey's largest oil refiner.
- **Petkim (PETKM)** — major petrochemical complex owned by SOCAR (Azerbaijan).

The **BIST 30** is the headline Turkish blue-chip benchmark, comparable to the FTSE 100 in the UK, DAX 40 in Germany, Saudi TASI, or Nikkei 225 in Japan. **BIST 100** is the broader 100-name index, while the **BIST main board** (BIST-all) covers around 500 listed equities. Turkish equities have been MSCI Emerging Markets-eligible for decades and are a non-trivial component of MSCI EM, FTSE EM, and frontier-tilt baskets.

---

### What you get per stock

Every record returned is a complete Turkish-equity snapshot pulled in real time from a server-rendered listing source. Listing pass (always included):

- `symbol` — BIST alphabetic ticker (e.g. `AKBNK` Akbank, `GARAN` Garanti, `THYAO` Turkish Airlines, `KCHOL` Koç Holding, `SAHOL` Sabancı Holding, `EREGL` Ereğli, `BIMAS` BIM, `ASELS` ASELSAN, `TUPRS` Tüpraş)
- `name` — full legal company name (e.g. "Türkiye Iş Bankası A.S.", "Koç Holding A.S.")
- `ticker_yahoo` — Yahoo Finance ticker with `.IS` suffix (e.g. `AKBNK.IS`) for cross-referencing with Yahoo, Google Finance, Investing.com, TradingView
- `price_try` — last traded price in Turkish Lira
- `price_usd` — same price translated to USD at the actor's FX assumption (overridable via env var)
- `pct_change` — intraday % change
- `market_cap_try` — absolute market capitalization in TRY
- `market_cap_billion_try` — same value in billions TRY
- `market_cap_billion_usd` — derived USD market cap (B USD)
- `revenue_ttm_try`, `revenue_ttm_billion_try`, `revenue_ttm_billion_usd` — trailing-12-month revenue figures in both currencies
- `is_bist30` — boolean, true for BIST 30 large-cap constituents
- `is_bist100` — boolean, true for BIST 100 broader benchmark constituents
- `is_native_turkish` — boolean, distinguishes 3-6 letter native BIST tickers from any cross-listed exotic codes
- `stockanalysis_url`, `yahoo_finance_url`, `borsa_istanbul_url`, `kap_url` — direct deep-links to the four most-used data sources for Turkish equities (KAP is the Turkish equivalent of SEC EDGAR — Public Disclosure Platform)
- `scraped_at`, `exchange`, `country`, `currency`, `fx_rate_try_per_usd` — provenance, units, and the FX rate used at run time

Fundamentals pass (when `enrich_fundamentals=true` — one extra HTTP request per stock):

- `pe_ratio`, `forward_pe`, `pb_ratio`, `eps_try`
- `net_income_try`, `shares_outstanding`
- `dividend_try`, `dividend_yield_pct`, `ex_dividend_date`
- `volume`, `avg_volume`, `previous_close_try`, `open_try`
- `week52_low_try`, `week52_high_try`, `day_low_try`, `day_high_try`
- `beta`, `rsi`, `earnings_date`
- `sector`, `industry` (required for sector keyword filtering)

---

### Inputs

| Input | Type | Default | What it does |
|---|---|---|---|
| `index` | enum | `BIST30` | Market scope: `BIST30` (Borsa Istanbul 30 blue-chips) or `BIST100` (broader 100-name benchmark) or `BIST-all` (entire ~500-name main-board universe). |
| `limit` | integer | `30` | Max stocks to return, sorted by market cap desc. 1–2000. |
| `min_market_cap_try_billion` | integer | `0` | Floor on market cap in billions of TRY. `0` = no filter. |
| `sector` | string | `""` | Case-insensitive substring filter on sector / industry / company name. Requires `enrich_fundamentals=true` for the sector/industry match path. |
| `enrich_fundamentals` | boolean | `false` | Hit each stock's detail page to extract P/E, EPS, dividend yield, sector, etc. Roughly doubles runtime. |
| `proxyConfiguration` | object | `{useApifyProxy: true}` | Standard Apify proxy block. Default datacenter proxy is fine. |

#### Recipe examples

**BIST 30 daily snapshot (lightweight, top 30 blue-chips):**
```json
{ "index": "BIST30", "limit": 30 }
````

Returns all BIST 30 constituents with price, market cap, % change — no enrichment overhead. Perfect for a daily Turkish portfolio dashboard or market-open digest.

**Turkish banks deep dive (Akbank, Garanti, Iş Bankası, Yapı Kredi, Halkbank, VakıfBank, QNB Türkiye):**

```json
{ "index": "BIST100", "sector": "bank", "enrich_fundamentals": true, "limit": 50 }
```

Returns all major Turkish banks with full fundamentals so you can compare P/E, P/B, dividend yields side-by-side. Turkish banks frequently trade at single-digit P/Es and surprisingly high book values — distorted by macro volatility but rich for value screens.

**Full Borsa Istanbul universe sweep:**

```json
{ "index": "BIST-all", "limit": 500 }
```

**Mega-caps only (200B+ TRY market cap):**

```json
{ "index": "BIST-all", "min_market_cap_try_billion": 200, "limit": 25 }
```

**Holding companies (Koç, Sabancı, Eczacıbaşı, Doğuş, AG Anadolu, Net Holding, Bera):**

```json
{ "index": "BIST100", "sector": "holding", "enrich_fundamentals": true }
```

**Turkish industrial / steel / cement (Ereğli, Kardemir, Çimsa, Akçansa, Tüpraş):**

```json
{ "index": "BIST100", "sector": "steel", "enrich_fundamentals": true }
```

**Turkish airlines & travel (THYAO Turkish Airlines, PGSUS Pegasus, TAVHL TAV airports):**

```json
{ "index": "BIST100", "sector": "airline", "enrich_fundamentals": true }
```

***

### How it works

The actor scrapes [stockanalysis.com/list/borsa-istanbul/](https://stockanalysis.com/list/borsa-istanbul/), a clean server-rendered universe page that aggregates every BIST-listed name sorted by market cap. The full ~500-stock universe fits on a single page, so no pagination is required — we get the entire Turkish market in one HTTP request. We then filter by index scope (BIST30 / BIST100 / BIST-all), market-cap floor, and (optionally) sector keyword.

When `enrich_fundamentals=true`, we additionally hit each stock's `/quote/ist/{symbol}/` detail page, parse the structured statistics tables, and add P/E, EPS, dividend, 52-week range, beta, sector, and industry to each record. Enrichment runs at concurrency 5 to be a polite scraper. Typical runtime: 10 stocks ≈ 5 seconds without enrichment, ~15 seconds with.

**BIST 30 / BIST 100 membership** — The actor ships with the BIST 30 and BIST 100 constituent lists embedded for instant `is_bist30` / `is_bist100` flagging and `index=BIST30` / `index=BIST100` filtering. We also apply fallback large-cap rules so any constituent missing from the embedded list (recent reshuffles, IPOs) is still included when its market cap clears the relevant band.

**Currency notation** — Borsa Istanbul prices and market caps are quoted in **Turkish Lira (TRY)**. The TRY has been highly volatile — Turkish inflation routinely hits 40–70% YoY and the lira has depreciated sharply against the dollar over multiple cycles. We expose both `price_try` / `market_cap_billion_try` and `price_usd` / `market_cap_billion_usd`. The USD translation uses a configurable assumption (default: 38 TRY per USD; override with env var `FX_TRY_PER_USD` for daily-precise conversion) — we record `fx_rate_try_per_usd` on every row for transparency and auditability.

**Native ticker filter** — Turkish BIST tickers are uniformly 3–6 letter alphabetic codes (e.g. `AKBNK`, `GARAN`, `THYAO`). We filter to that pattern by default to keep the universe clean and skip any aberrant or non-equity rows.

***

### Pricing — Pay Per Event

This actor uses Apify's Pay-Per-Event pricing — you only pay for what you actually pull, no monthly fees, no commitments, no annual contracts. Compare that to Bloomberg Terminal at ~$2,000/month per seat, LSEG Workspace at ~$1,800/month, or FactSet at ~$1,500/month: even pulling the full Borsa Istanbul universe every trading day, you'd recover the cost in well under a week of analyst time saved.

| Event | Price | When charged |
|---|---|---|
| Actor start | $0.01 | Once when the run begins |
| BIST stock record | $0.25 | Per Turkish-listed stock record returned with price, market cap, P/E, P/B, dividend yield, sector, fundamentals |

**Worked examples (USD):**

- 10-stock smoke test: $0.01 + 10 × $0.25 = **$2.51**
- BIST 30 daily sweep: $0.01 + 30 × $0.25 = **$7.51**
- BIST 100 with fundamentals: $0.01 + 100 × $0.25 = **$25.01**
- Full BIST universe (~500 names): $0.01 + 500 × $0.25 = **$125.01**

For comparison, a single Bloomberg Terminal seat is ~$24,000/year. This actor delivers the equivalent Turkish-equity coverage at well under 1% of that, with no contract, no minimum, and no negotiation.

***

### Use cases

- **EM hedge fund Turkey coverage** — refresh BIST equity universes hourly, intraday, or daily; drop directly into your DuckDB / Snowflake / BigQuery warehouse for portfolio attribution and risk monitoring.
- **Frontier-tilt EM portfolios** — track BIST 30 flows, dividend cycles, ex-dividend dates, and the relationship between TRY depreciation and exporter equity performance (THYAO, ARCLK, FROTO, EREGL).
- **Quant signal research on extreme-macro markets** — backtest BIST signals (momentum, value, dividend, low-volatility, FX-hedged total return) on consistent point-in-time snapshots. Turkish equity is one of the cleanest natural experiments in inflation-versus-equity research.
- **EM ETF construction** — build a custom Turkey-tilt ETF basket weighted by your own factor model; check tracking vs. iShares MSCI Turkey ETF (TUR).
- **Equity research desks** — feed a Turkish sector dashboard (banks, holdings, steel, retail, airlines, defense, energy) without paying for a market-data terminal.
- **Fintech apps & robo-advisors** — power a Turkish or EMEA stock-screener feature inside an investing app, neobank, or newsletter.
- **Cross-border M\&A / strategy research** — Turkish corporates are major regional acquirers (food, retail, infrastructure, energy); maintain a watchlist by sector.
- **Compliance, treasury & FX** — verify holdings, monitor index inclusion changes, track corporate actions on BIST constituents.
- **News / media / family office** — generate "BIST winners and losers" tables programmatically every market close (Mon–Fri 10:00–18:00 TRT).

***

### Output schema (sample record)

```json
{
  "symbol": "AKBNK",
  "name": "Akbank T.A.S.",
  "ticker_yahoo": "AKBNK.IS",
  "price_try": 75.25,
  "price_usd": 1.9803,
  "pct_change": 0.07,
  "market_cap_try": 391300000000,
  "market_cap_billion_try": 391.30,
  "market_cap_billion_usd": 10.297,
  "market_cap_display": "391.30B",
  "revenue_ttm_try": 209650000000,
  "revenue_ttm_billion_try": 209.65,
  "revenue_ttm_billion_usd": 5.517,
  "is_bist30": true,
  "is_bist100": true,
  "is_native_turkish": true,
  "stockanalysis_url": "https://stockanalysis.com/quote/ist/AKBNK/",
  "yahoo_finance_url": "https://finance.yahoo.com/quote/AKBNK.IS",
  "borsa_istanbul_url": "https://www.borsaistanbul.com/en/sayfa/2174/akbnk",
  "kap_url": "https://www.kap.org.tr/en/sirket-bilgileri/ozet/AKBNK",
  "pe_ratio": 6.24,
  "forward_pe": 3.88,
  "eps_try": 12.05,
  "dividend_try": 2.20,
  "dividend_yield_pct": 2.93,
  "ex_dividend_date": "Mar 26, 2026",
  "beta": 0.80,
  "rsi": 49.71,
  "week52_low_try": 48.70,
  "week52_high_try": 93.50,
  "sector": "Financials",
  "industry": "Banks Regional",
  "exchange": "BIST",
  "exchange_full": "Borsa Istanbul (BIST)",
  "country": "Turkey",
  "currency": "TRY",
  "currency_full": "Turkish Lira",
  "fx_rate_try_per_usd": 38.0,
  "scraped_at": "2026-05-10T12:00:00Z"
}
```

### FAQ

**What are BIST market hours?** Borsa Istanbul trades Monday through Friday, 10:00 to 18:00 Turkey Time (TRT = UTC+3), with a mid-session break around 13:00–14:00. Run this actor anytime; quotes are last-close on weekends.

**Why TRY and USD both?** Borsa Istanbul natively quotes in Turkish Lira, but the TRY has been highly volatile — Turkish inflation regularly runs 40–70% YoY and the lira has depreciated sharply against the dollar across multiple macro cycles. We surface both so you can plug into either workflow: TRY-native books or USD-translated EM portfolios. For daily-precise FX conversion, override the actor's FX assumption with the `FX_TRY_PER_USD` env var.

**Why are P/E ratios so low on BIST?** Turkish equities frequently trade at single-digit P/Es, which surprises investors used to developed-market multiples. This reflects the high inflation environment, TRY depreciation risk, and Turkey's higher cost of equity capital. For long-horizon value investors who can hedge or accept TRY risk, this is part of the BIST opportunity set.

**Is Akbank or Garanti BBVA Sharia-compliant?** Neither Akbank nor Garanti BBVA are Islamic banks — they're conventional commercial banks. Turkish participation banks (Islamic banks) include Albaraka Türk (ALBRK), Kuveyt Türk, and Türkiye Finans, some of which appear on BIST.

**What about Turkish ADRs?** Some Turkish names are also available as ADRs in the US (e.g. Turkcell as TKC on NYSE). This actor focuses on native BIST tickers; for ADR coverage use a US-listed screener and cross-reference by Yahoo's `.IS` ticker.

**Rate limits / blocking?** We use Apify's datacenter proxy by default. Stockanalysis.com is generally cooperative. If you hit any limit, switch to RESIDENTIAL group in proxy config.

**Can I run this on a schedule?** Yes — every Apify actor supports cron scheduling. Run it at 18:30 TRT daily (15:30 UTC) for a BIST market-close snapshot.

***

### Affiliate signup

Building a fleet of regional stock screeners across BIST, Tadawul, JSE, LSE, TSE, KOSPI, HKEX, TWSE, Eastmoney, NSE, B3 and more? Sign up to Apify through this affiliate link to support our work: **[apify.com/nexgendata?fpr=2ayu9b](https://apify.com/nexgendata?fpr=2ayu9b)**

***

*Built by NexGenData. Questions, bugs, or feature requests — reach out via the Apify Store contact form.*

***

### Explore the NexGenData Equity Data Suite

This actor is part of NexGenData's global equity data fleet. Whether you cover a single region or a multi-asset macro book, we have a screener for every major market:

#### Regional sisters

- 🔗 **[JSE South Africa Stock Screener](https://apify.com/nexgendata/jse-southafrica-stock-screener)** — Johannesburg Stock Exchange (Top 40 / All Share) fundamentals, market cap (ZAR), P/E, dividend yield, sector.
- 🔗 **[Tadawul Saudi Stock Screener](https://apify.com/nexgendata/tadawul-saudi-stock-screener)** — Tadawul / TASI fundamentals, market cap (SAR), P/E, dividend yield, sector — Saudi & GCC equity data.
- 🔗 **[LSE UK Stock Screener](https://apify.com/nexgendata/lse-uk-stock-screener)** — London Stock Exchange (FTSE 100 / 250) fundamentals, market cap (GBP), P/E, dividend yield, sector — UK equity data.

#### Cross-region peers

- 🔗 **[Eastmoney China A-Share Screener](https://apify.com/nexgendata/eastmoney-china-stock-screener)** — Shanghai + Shenzhen + STAR + ChiNext full A-share universe — the broadest Chinese equity screener.
- 🔗 **[NSE India Stock Screener](https://apify.com/nexgendata/nse-india-stock-screener)** — Nifty 50 / NSE / BSE live quotes, market cap (INR crore), P/E, P/B, dividend yield, sector — full Indian equity universe.

#### Multi-asset / specialty

- 🔗 **[Finance MCP Server](https://apify.com/nexgendata/finance-mcp-server)** — Unified Model Context Protocol server exposing the full NexGenData equity fleet to Claude, Cursor & MCP-aware LLMs.

#### Browse the full NexGenData catalog

**[→ See all 220+ NexGenData actors at apify.com/nexgendata](https://apify.com/nexgendata?fpr=2ayu9b)** — equity screeners across 25+ markets, lead generation, SEC filings, B2B intelligence, MCP servers, and more.

***

### Why NexGenData vs. paid alternatives

| Tool | Annual cost | API access | Coverage |
|------|-------------|------------|----------|
| Bloomberg Terminal | ~$24,000/seat | Limited | Global |
| FactSet | ~$15,000/seat | Paid add-on | Global |
| Refinitiv Eikon | ~$22,000/seat | Paid add-on | Global |
| S\&P Capital IQ | ~$20,000/seat | Paid add-on | Global |
| **NexGenData Turkey Screener** | **Pay-per-result** | **Native** | **Turkey**          |

Run this actor once per day for a typical institutional-scale workflow (~200 records/day) and your annual cost is approximately **$1,800–2,000** — a 90-95% discount vs. the major paid alternatives, with no seat licensing, no minimum commitment, and full programmatic access.

### Related NexGenData Actors — EM Stock Intelligence

| Use case | Actor |
|---|---|
| South Africa JSE Top 40 | [JSE South Africa Stock Screener](https://apify.com/nexgendata/jse-southafrica-stock-screener) |
| Indonesia IDX (LQ45 + IDX30) | [IDX Indonesia Stock Screener](https://apify.com/nexgendata/idx-indonesia-stock-screener) |
| Malaysia Bursa (KLCI) | [Bursa Malaysia Stock Screener](https://apify.com/nexgendata/bursa-malaysia-stock-screener) |
| Thailand SET / SET50 | [SET Thailand Stock Screener](https://apify.com/nexgendata/set-thailand-stock-screener) |
| Philippines PSE / PSEi | [PSE Philippines Stock Screener](https://apify.com/nexgendata/pse-philippines-stock-screener) |
| Saudi Tadawul (TASI) | [Tadawul Saudi Stock Screener](https://apify.com/nexgendata/tadawul-saudi-stock-screener) |
| Singapore SGX (STI + S-REITs) | [SGX Singapore Stock Screener](https://apify.com/nexgendata/sgx-singapore-stock-screener) |

# Actor input Schema

## `index` (type: `string`):

Which Borsa Istanbul (BIST) market scope to screen. BIST30 = the Turkish blue-chip benchmark of the 30 largest, most-liquid Istanbul-listed equities (Akbank AKBNK, Garanti BBVA GARAN, Türkiye Iş Bankası ISCTR, Koç Holding KCHOL, Sabancı Holding SAHOL, Turkish Airlines THYAO, Ereğli Demir Çelik EREGL, BIM Birleşik Mağazalar BIMAS, ASELSAN, Tüpraş TUPRS, etc.). BIST100 = broader 100-name benchmark covering the largest BIST main-board equities. BIST-all = entire Borsa Istanbul universe (~500 listed names) sorted by market cap descending. BIST30 is the headline Turkish benchmark (similar to Saudi TASI, FTSE 100 in the UK, or DAX 40 in Germany).

## `limit` (type: `integer`):

Maximum number of Turkish-listed stocks to return. Stocks are returned in descending market-cap order. Use 10 for a quick smoke test, 30 for the BIST30 blue-chips, 100 for BIST100 coverage, 500+ to sweep the entire Borsa Istanbul universe. Borsa Istanbul has roughly 500 listed companies on the main board.

## `min_market_cap_try_billion` (type: `integer`):

Filter to stocks with market cap above this threshold, in BILLIONS of Turkish Lira (TRY). Examples: 50 = 50B TRY (mid-cap floor), 200 = 200B TRY (BIST30 mega-caps), 500 = 500B TRY (top 10 Turkish blue-chips like ASELSAN, QNB, Enka, Garanti, Koç, BIM, Turkish Airlines). Leave at 0 for no filter. Note: TRY is highly volatile due to Turkish inflation — 1 USD ≈ 35-40 TRY as of 2026, so a 100B TRY market cap is roughly $2.5-3B USD.

## `sector` (type: `string`):

Optional case-insensitive substring filter applied to sector, industry, and company name. Examples: 'bank' (Akbank, Garanti, Iş Bankası, Yapı Kredi, Halkbank, Vakıfbank, QNB Türkiye), 'holding' (Koç, Sabancı, Eczacıbaşı, Doğuş), 'airline' (Turkish Airlines / THYAO, Pegasus / PGSUS), 'steel' or 'iron' (Ereğli / EREGL, Kardemir), 'retail' (BIM / BIMAS, Migros / MGROS, Şok / SOKM), 'cement', 'energy', 'petrochemical' (Tüpraş / TUPRS, Petkim / PETKM), 'defense' (ASELSAN). Leave blank for no filter. Note: sector matching requires enrich\_fundamentals=true.

## `enrich_fundamentals` (type: `boolean`):

If true, fetch each stock's detail page on stockanalysis.com to extract P/E ratio, forward P/E, EPS, dividend yield, shares outstanding, beta, RSI, 52-week range, sector and industry classification, and earnings dates. Adds ~1 HTTP request per stock and roughly doubles runtime. Required if you want to filter by sector. Turkish equities trade at unusually low P/E multiples (often single-digit) due to high domestic inflation and TRY currency volatility — useful signal for value screens.

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

Apify proxy configuration. Defaults to Apify datacenter proxy for reliable global access to stockanalysis.com. Switch to RESIDENTIAL group only if you hit rate limits — the BIST listing page is lightweight and rarely throttles.

## Actor input object example

```json
{
  "index": "BIST30",
  "limit": 30,
  "min_market_cap_try_billion": 0,
  "enrich_fundamentals": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "index": "BIST30",
    "limit": 30,
    "min_market_cap_try_billion": 0,
    "sector": "",
    "enrich_fundamentals": false,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/bist-turkey-stock-screener").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 = {
    "index": "BIST30",
    "limit": 30,
    "min_market_cap_try_billion": 0,
    "sector": "",
    "enrich_fundamentals": False,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/bist-turkey-stock-screener").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "index": "BIST30",
  "limit": 30,
  "min_market_cap_try_billion": 0,
  "sector": "",
  "enrich_fundamentals": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call nexgendata/bist-turkey-stock-screener --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/bist-turkey-stock-screener",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🇹🇷 BIST Turkey Stock Screener — BIST 30 Quotes",
        "description": "BIST Borsa Istanbul Turkey stock screener API — BIST 100 / BIST 30 live quotes, market cap (TRY), P/E, P/B, dividend yield, ROE, sector. Turkish Airlines, Garanti BBVA, Akbank, Koç Holding universe. Bloomberg / FactSet / Refinitiv Eikon alternative for EMEA data. Pay-per-result.",
        "version": "0.0",
        "x-build-id": "c6NoulmecArwGB8TS"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~bist-turkey-stock-screener/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-bist-turkey-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~bist-turkey-stock-screener/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-bist-turkey-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~bist-turkey-stock-screener/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-bist-turkey-stock-screener",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "index": {
                        "title": "Index / Market",
                        "enum": [
                            "BIST30",
                            "BIST100",
                            "BIST-all"
                        ],
                        "type": "string",
                        "description": "Which Borsa Istanbul (BIST) market scope to screen. BIST30 = the Turkish blue-chip benchmark of the 30 largest, most-liquid Istanbul-listed equities (Akbank AKBNK, Garanti BBVA GARAN, Türkiye Iş Bankası ISCTR, Koç Holding KCHOL, Sabancı Holding SAHOL, Turkish Airlines THYAO, Ereğli Demir Çelik EREGL, BIM Birleşik Mağazalar BIMAS, ASELSAN, Tüpraş TUPRS, etc.). BIST100 = broader 100-name benchmark covering the largest BIST main-board equities. BIST-all = entire Borsa Istanbul universe (~500 listed names) sorted by market cap descending. BIST30 is the headline Turkish benchmark (similar to Saudi TASI, FTSE 100 in the UK, or DAX 40 in Germany).",
                        "default": "BIST30"
                    },
                    "limit": {
                        "title": "Limit (stocks returned)",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Maximum number of Turkish-listed stocks to return. Stocks are returned in descending market-cap order. Use 10 for a quick smoke test, 30 for the BIST30 blue-chips, 100 for BIST100 coverage, 500+ to sweep the entire Borsa Istanbul universe. Borsa Istanbul has roughly 500 listed companies on the main board.",
                        "default": 30
                    },
                    "min_market_cap_try_billion": {
                        "title": "Min market cap (billion TRY)",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Filter to stocks with market cap above this threshold, in BILLIONS of Turkish Lira (TRY). Examples: 50 = 50B TRY (mid-cap floor), 200 = 200B TRY (BIST30 mega-caps), 500 = 500B TRY (top 10 Turkish blue-chips like ASELSAN, QNB, Enka, Garanti, Koç, BIM, Turkish Airlines). Leave at 0 for no filter. Note: TRY is highly volatile due to Turkish inflation — 1 USD ≈ 35-40 TRY as of 2026, so a 100B TRY market cap is roughly $2.5-3B USD.",
                        "default": 0
                    },
                    "sector": {
                        "title": "Sector / industry / name keyword",
                        "type": "string",
                        "description": "Optional case-insensitive substring filter applied to sector, industry, and company name. Examples: 'bank' (Akbank, Garanti, Iş Bankası, Yapı Kredi, Halkbank, Vakıfbank, QNB Türkiye), 'holding' (Koç, Sabancı, Eczacıbaşı, Doğuş), 'airline' (Turkish Airlines / THYAO, Pegasus / PGSUS), 'steel' or 'iron' (Ereğli / EREGL, Kardemir), 'retail' (BIM / BIMAS, Migros / MGROS, Şok / SOKM), 'cement', 'energy', 'petrochemical' (Tüpraş / TUPRS, Petkim / PETKM), 'defense' (ASELSAN). Leave blank for no filter. Note: sector matching requires enrich_fundamentals=true."
                    },
                    "enrich_fundamentals": {
                        "title": "Enrich with fundamentals (slower)",
                        "type": "boolean",
                        "description": "If true, fetch each stock's detail page on stockanalysis.com to extract P/E ratio, forward P/E, EPS, dividend yield, shares outstanding, beta, RSI, 52-week range, sector and industry classification, and earnings dates. Adds ~1 HTTP request per stock and roughly doubles runtime. Required if you want to filter by sector. Turkish equities trade at unusually low P/E multiples (often single-digit) due to high domestic inflation and TRY currency volatility — useful signal for value screens.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy configuration. Defaults to Apify datacenter proxy for reliable global access to stockanalysis.com. Switch to RESIDENTIAL group only if you hit rate limits — the BIST listing page is lightweight and rarely throttles.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
