Get free API key
All APIsexpand_more

Market breadth

GET/stable/market-breadth1 tokens per call

Returns the number of advancing, declining and unchanged stocks, the advance/decline ratio, the number of new 52-week highs and lows, and total trading value for the latest trading day. The first row is the whole market (ALL); groupBy=sector adds one row per TSE 33-sector. Common stocks by default; you can filter by market segment.

What you can do with this API

  • check_circleCheck whether today's rally is broad or limited to a few stocks
  • check_circleUse the advance/decline ratio as a rough gauge of market heat
  • check_circleCompare the number of advancers across sectors

Example URL

https://api.zenithcode.net/stable/market-breadth?groupBy=sector

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

Parameters

ParameterRequiredDescriptionExample
groupBy
select
Optionalsector adds one row per TSE 33-sector; none (default) returns the whole market only
Allowed values: none, sector
sector
market
select
OptionalMarket segment (prime, standard or growth)
Allowed values: prime, standard, growth
includeEtf
string
Optionaltrue to include ETFs and REITs (default: common stocks only)

Try it

Run it with your own parameters and check the response as a table, JSON or CSV. Sign-in required; each run uses 1 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

sectorTSE 33-sector code. 'ALL' = whole marketstringTSE 33-sector code. 'ALL' = whole market
sectorJastring
sectorEnstring
dateLatest trading date (YYYY-MM-DD)stringLatest trading date (YYYY-MM-DD)
universeCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).integerCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
advancersCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).integerCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
declinersCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).integerCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
unchangedCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).integerCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
noComparisonCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).integerCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
splitExcludedCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).integerCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
advanceDeclineRatioCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).numberCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
pctAdvancingCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).numberCounts of advancing, declining and unchanged stocks, and advancers ÷ decliners (the advance/decline ratio for that day only).How it is calculated →
newHighsStocks whose 52-week high (or low) was set within the last `days` days. distanceFromHigh is how far the close is from the 52-week high.integerStocks whose 52-week high (or low) was set within the last `days` days. distanceFromHigh is how far the close is from the 52-week high.How it is calculated →
newLowsStocks whose 52-week high (or low) was set within the last `days` days. distanceFromHigh is how far the close is from the 52-week high.integerStocks whose 52-week high (or low) was set within the last `days` days. distanceFromHigh is how far the close is from the 52-week high.How it is calculated →
turnoverThe API computes these from the adjusted closes of the latest and previous trading days. Trading value is the unadjusted close × volume.numberThe API computes these from the adjusted closes of the latest and previous trading days. Trading value is the unadjusted close × volume.How it is calculated →
volumeThe API computes these from the adjusted closes of the latest and previous trading days. Trading value is the unadjusted close × volume.numberThe API computes these from the adjusted closes of the latest and previous trading days. Trading value is the unadjusted close × volume.How it is calculated →

Related APIs

FAQ

What does "no comparison" mean?expand_more

Stocks without a previous close or volume cannot be classified as up or down. Stocks with a split in the last 10 days are left out of direction and highs/lows counts.

How many tokens does one call use?expand_more

1 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.