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:
dateis today andlastis the latest price as of your request (usable as the current price). - After the close / while closed:
dateis the last trading day andlastis 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
lastas a live tick — it is the latest daily bar; for second-level depth use/v1/orderbook. - Using
market-overview?type=updownfor 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.