All APIsexpand_more
Valuation history (PER, PBR, dividend yield)
/stable/valuation-history10 tokens per callNewReturns daily PER, PBR and dividend yield of one stock, computed from the split-adjusted close and the EPS, BPS and dividend per share of the latest fiscal period disclosed by that day. basis=fy (default) uses annual figures; basis=ttm uses trailing-12-month EPS and the latest quarter's BPS. PER is null when the company has a loss. A single request covers at most 10 years, and prices start on 4 January 2010 (or the listing date for stocks listed later).
What you can do with this API
- check_circleChart whether PER or PBR is cheap or expensive versus its own history
- check_circleUse dividend yield history as a guide for entry points
- check_circleSee how valuation changed around earnings releases
Example URL
https://api.zenithcode.net/stable/valuation-history?symbol=7203&from=2025-10-01&to=2026-10-01&interval=monthly&basis=fyShown without percent-encoding for readability. Non-ASCII values are encoded automatically when sent.
Parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
symbolstring | Required | Securities code (4 characters, e.g. 7203 = Toyota Motor; alphanumeric codes such as 130A also work) | 7203 |
fromstring | Optional | Start date (YYYY-MM-DD). Defaults to one year before the end date | 2025-10-01 |
tostring | Optional | End date (YYYY-MM-DD). Defaults to today | 2026-10-01 |
intervalselect | Optional | daily (default), weekly (last trading day of each week) or monthly (last trading day of each month) Allowed values: daily, weekly, monthly | monthly |
basisselect | Optional | Basis: fy = annual EPS/BPS (default), ttm = trailing-12-month EPS and latest-quarter BPS Allowed values: fy, ttm | fy |
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 ViewerResponse example (real data)
Response fields
symbol | string | |
date | string | |
closeSplit-adjusted close (JPY) | number | Split-adjusted close (JPY) |
epsThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | number | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
bpsThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | number | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
dividendPerShareThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | number | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
perThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | number | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
pbrThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | number | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
dividendYieldThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | number | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
epsPeriodThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | string | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
bpsPeriodThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | string | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
dividendPeriodThe API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early. | string | The API computes these from each day’s adjusted close and the latest EPS, BPS and dividend published by that day. Later results are never used early.How it is calculated → |
Related APIs
FAQ
Why is PER null on some days?expand_more
The latest disclosed results at that time showed a loss (EPS of 0 or below).
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.

