Get free API key
All APIsexpand_more
search
appsAll APIs
functionHow metrics are calculated

Stock screener

GET/stable/screener10 tokens per callPopular

Filters Japanese stocks by combining conditions such as market cap, PER, PBR, ROE and dividend yield. All conditions are optional; stocks meeting every condition you set are returned, ordered by the metric you choose. Ratios (ROE, ROA, dividend yield) are 0–1 decimals (0.1 = 10%).

What you can do with this API

  • check_circleFind candidates with a high dividend yield and a low PBR
  • check_circleLook for high-ROE stocks within a sector
  • check_circleList small and mid caps within a market-cap range

Example URL

https://api.zenithcode.net/stable/screener?marketCapMoreThan=100000000000&marketCapLowerThan=1000000000000&perMoreThan=5&perLowerThan=15&pbrLowerThan=1&roeMoreThan=0.1&roaMoreThan=0.05&dividendYieldMoreThan=0.03&dividendYieldLowerThan=0.08&evToEbitdaLowerThan=10&isEtf=false&sortBy=dividendYield&order=desc&limit=50

Shown without percent-encoding for readability. Non-ASCII values are encoded automatically when sent.

Parameters

ParameterRequiredDescriptionExample
marketCapMoreThan
string
OptionalMinimum market cap (JPY)100000000000
marketCapLowerThan
string
OptionalMaximum market cap (JPY)1000000000000
perMoreThan
string
OptionalMinimum PER (times)5
perLowerThan
string
OptionalMaximum PER (times)15
pbrMoreThan
string
OptionalMinimum PBR (times)
pbrLowerThan
string
OptionalMaximum PBR (times)1
roeMoreThan
string
OptionalMinimum ROE (0–1 decimal; 0.1 = 10%)0.1
roaMoreThan
string
OptionalMinimum ROA (0–1 decimal; 0.05 = 5%)0.05
dividendYieldMoreThan
string
OptionalMinimum dividend yield (0–1 decimal; 0.03 = 3%)0.03
dividendYieldLowerThan
string
OptionalMaximum dividend yield (0–1 decimal; 0.08 = 8%)0.08
evToEbitdaLowerThan
string
OptionalMaximum EV/EBITDA (times)10
sector
string
OptionalTSE 33-sector code (e.g. 3700 = Transportation Equipment). See /stable/available-sectors
isEtf
string
Optionaltrue = ETFs/REITs only, false = exclude ETFs/REITsfalse
sortBy
select
OptionalMetric to sort by. Defaults to marketCap. Allowed values (marketCap, per, pbr, psr, roe, roa, dividendYield, evToEbitda, changePct1d, changePct1w, changePct1m, changePctYtd, dividendCagr3y, dividendCagr5y, revenueCagr3y, revenueCagr5y, epsCagr3y, epsCagr5y, progressiveDividendYears)
Allowed values: marketCap, per, pbr, psr, roe, roa, dividendYield, evToEbitda, changePct1d, changePct1w, changePct1m, changePctYtd, dividendCagr3y, dividendCagr5y, revenueCagr3y, revenueCagr5y, epsCagr3y, epsCagr5y, progressiveDividendYears
dividendYield
order
select
OptionalSort order: desc = largest first (default), asc = smallest first
Allowed values: asc, desc
desc
limit
number
OptionalMaximum number of rows to return (default 50, max 100)50

Try it

Run it with your own parameters and check the response as a table, JSON or CSV. Sign-in required; each run uses 10 tokens.

travel_exploreTry in the API Viewer

Response example (real data)

lock
Live response examples are shown to signed-in users only (they include exchange data such as stock prices). Sign in to view

Response fields

symbol証券コード(4 桁。英字を含むコードもある)string証券コード(4 桁。英字を含むコードもある)
nameJa会社名(日本語)string会社名(日本語)
nameEn会社名(英語)。無ければ nullstring会社名(英語)。無ければ null
sector東証 33 業種コード(4 桁。例: 3700)string東証 33 業種コード(4 桁。例: 3700)
priceThe close on the latest trading day (split-adjusted). This is exchange data and is shown only to signed-in users.numberThe close on the latest trading day (split-adjusted). This is exchange data and is shown only to signed-in users.How it is calculated →
marketCapThe close multiplied by shares outstanding excluding treasury shares (both split-adjusted).numberThe close multiplied by shares outstanding excluding treasury shares (both split-adjusted).How it is calculated →
perPrice divided by earnings per share (split-adjusted EPS). key-metrics-latest and similar endpoints use the latest close and the latest full-year EPS; key-metrics uses the price at each period end and that period’s EPS.numberPrice divided by earnings per share (split-adjusted EPS). key-metrics-latest and similar endpoints use the latest close and the latest full-year EPS; key-metrics uses the price at each period end and that period’s EPS.How it is calculated →
pbrPrice divided by book value per share (split-adjusted BPS).numberPrice divided by book value per share (split-adjusted BPS).How it is calculated →
roeNet income attributable to owners of the parent divided by average equity (opening and closing). For example, 0.098 in the API is 9.8% on screen.numberNet income attributable to owners of the parent divided by average equity (opening and closing). For example, 0.098 in the API is 9.8% on screen.How it is calculated →
dividendYieldThe annual dividend divided by the price: 0.0323 in the API is 3.23% on screen.numberThe annual dividend divided by the price: 0.0323 in the API is 3.23% on screen.How it is calculated →
changePctYtdThe change of the latest adjusted close from the adjusted close on the base date. The base date is the last trading day on or before the calendar look-back date.numberThe change of the latest adjusted close from the adjusted close on the base date. The base date is the last trading day on or before the calendar look-back date.How it is calculated →
assetType銘柄の種類(EQUITY = 株式 / ETF / REIT)string銘柄の種類(EQUITY = 株式 / ETF / REIT)

Related APIs

FAQ

What happens if I set no conditions?expand_more

No filtering is applied; the top rows by the sort metric (market cap by default) are returned.

How many tokens does one call use?expand_more

10 tokens per call, regardless of how many rows come back. Your monthly allowance depends on your plan.

Do I need an account to try it?expand_more

Use the API Viewer to run it with your own parameters. Sign up for free and sign in (no credit card). Each run uses this API's tokens.

Can I get CSV instead of JSON?expand_more

Add format=csv to the URL to get CSV, ready for spreadsheets or pandas.

Can I get labels in English?expand_more

With neither lang nor Accept-Language, labels such as sector names are returned in English; add lang=ja or send Accept-Language: ja for Japanese. Company and sector names are always returned in both languages as nameJa / nameEn and sectorJa / sectorEn. Field names are the same in both languages.