Reference

Data freshness

To judge how fresh the data is, read the date field in the response, not your system clock. Each market has its own latest trading day, and endpoints refresh at different cadences — from about 10 seconds to once per trading day after the close.

The short version

Read the date inside the response, not your system clock. Each market has its own latest trading day, and each endpoint refreshes at its own cadence.

The data date is in date

Quote-style endpoints (/v1/quote, /v1/kline) carry a date on every row — that is the data date, not your request date.

On 2026-10-05 (A-shares closed for National Day), a single round of requests produced three different dates:

Code data[0].date Why
sh600519 2026-09-30 A-shares closed ⇒ last trading day
hk00700 2026-10-05 Hong Kong trading that day
usAAPL 2026-10-02 last US trading day

⇒ To decide whether something is up to date, compare data[0].date against your trading calendar, not against the wall clock.

last is “latest price”, not a tick

data[0] from /v1/quote is the latest daily bar:

  • During the session: date is today and last is the latest price as of your request (usable as the current price).
  • After the close / while closed: date is the last trading day and last is that day’s close.

That is why the field is called last rather than close — one name covers both meanings. When rendering, check whether date is today first, so you do not show yesterday’s close as the current price.

Refresh cadence by endpoint

Endpoint How fresh
/v1/orderbook Refreshes about every 10 seconds; only meaningful during the session — after the close it is the day’s last snapshot
/v1/quote · /v1/kline Latest daily bar. Not tick-level: the same instrument with the same parameters returns the same payload for a few minutes
/v1/market-overview States its own data date in the response (below)
/v1/changedist Current (same-session) figures
Dragon-Tiger list / main capital flow / financials Updated after the close of each trading day; during the session you get the previous trading day
Sector endpoints (/v1/sector and friends) Slower still; fetch when you need it

⚠️ market-overview prints its data date in the response. Measured verbatim:

数据日期 2026-09-30(请求日期 2026-10-05,后端实际数据日期)

Breadth figures: use the right endpoint

You want Use Convention
Current advancers / decliners, limit-up count, market breadth /v1/changedist current
The overall market picture (including an up/down distribution) /v1/market-overview?type=updown T-1, may lag by one trading day

The two give different numbers — not an inconsistency, but a different convention. For current figures use /v1/changedist.

Common misuses

  • Treating your clock as the data date — on a market holiday you will think “the data stopped updating”; it is simply the last trading day.
  • Treating last as a live tick — it is the latest daily bar; for second-level depth use /v1/orderbook.
  • Using market-overview?type=updown for current breadth — that is the T-1 convention.
  • Fetching the Dragon-Tiger list or capital flow during the session — these are published after the close, so you still get the previous trading day.

Last updated: 2026-10-05

Per-market data dates and refresh cadence measured live on 2026-10-05; endpoint cadences taken from the endpoint descriptions and the data-layer implementation.