Get free API key
All APIsexpand_more

Valuation history (PER, PBR, dividend yield)

GET/stable/valuation-history10 tokens per callNew

Returns 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=fy

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

Parameters

ParameterRequiredDescriptionExample
symbol
string
RequiredSecurities code (4 characters, e.g. 7203 = Toyota Motor; alphanumeric codes such as 130A also work)7203
from
string
OptionalStart date (YYYY-MM-DD). Defaults to one year before the end date2025-10-01
to
string
OptionalEnd date (YYYY-MM-DD). Defaults to today2026-10-01
interval
select
Optionaldaily (default), weekly (last trading day of each week) or monthly (last trading day of each month)
Allowed values: daily, weekly, monthly
monthly
basis
select
OptionalBasis: 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 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

symbolstring
datestring
closeSplit-adjusted close (JPY)numberSplit-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.numberThe 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.numberThe 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.numberThe 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.numberThe 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.numberThe 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.numberThe 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.stringThe 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.stringThe 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.stringThe 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.