> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onera.app/llms.txt
> Use this file to discover all available pages before exploring further.

# China API

> Daily A-share prices, exchange-qualified identifiers, and the suspension and adjustment semantics that govern them.

China endpoints live under `/china` and require the `china:read` scope. They cover Shanghai and
Shenzhen A-share daily prices.

| Identifier              | Example                   | Use                                   |
| ----------------------- | ------------------------- | ------------------------------------- |
| Exchange-qualified code | `sh.600519`               | The only accepted instrument key      |
| Exchange                | `SSE`, `SZSE`             | Listing venue                         |
| Board                   | `main`, `star`, `chinext` | Determines the daily price-limit band |

<Warning>
  A bare six-digit code is **not** a valid identifier and is rejected with `422`. Codes are reused
  across the mainland exchanges: `000001` is both Ping An Bank on Shenzhen and the SSE Composite
  Index on Shanghai. Always send the exchange qualifier. This differs from US CIK and Indian ISIN,
  which are unique on their own.
</Warning>

## Prices are unadjusted

China bars are returned **unadjusted** (不复权) and every response states
`"adjustment": "unadjusted"`.

Chinese market data conventionally defaults to 前复权 (forward adjustment), which rebases history
to the current price — every new corporate action retroactively restates every earlier bar. Corpus
does not store prices that way, because it would make a point-in-time read impossible. Adjustment
factors are held separately and a re-adjustment is recorded as a new knowledge-time revision, not
a rewrite. See [Point-in-time data](/guides/point-in-time-data/).

If you need a total-return series, apply corporate-action adjustment yourself. Note that rights
issues (配股) are common in China and are not a simple split factor.

## Suspensions are rows, not gaps

A-share trading halts are frequent and can last from days to months, and are often voluntary ahead
of an announcement. Corpus records a halted session explicitly rather than omitting it:

* `trading_status` is `trading` or `suspended`.
* On a `suspended` session **every price field is null** and `volume` is `0`.
* Suspended sessions are **excluded by default**. Pass `include_suspended=true` to retrieve them.

The upstream feed forward-fills the last traded price on halted days. Corpus discards those
prices, because a halt is not a flat trading day: carrying them would let a backtest compute a 0%
return across a multi-month suspension. Never interpolate across a suspended session.

## Price limits are board-specific

Daily limits differ by board: ±10% on the Shanghai and Shenzhen main boards (including ST and
`*ST` names since the 2025 widening from ±5%) and ±20% on the STAR Market and ChiNext. STAR
listings have no limit for their first five sessions.

A move of exactly ±10.00% on a main-board name is a legitimate limit hit, not an outlier. Calibrate
any outlier detection per board — the `board` field is returned on every security for this reason.

## Delisted instruments are included

`GET /china/securities` returns delisted names by default, each with its `delisting_date`, so the
universe is not restricted to currently-listed companies. Pass `listed_only=true` to restrict to
names still listed at `as_of`. Identity is point-in-time: a delisted instrument resolves for dates
inside its listed window.

Delisted retention reflects what the upstream source retains (337 names) and is not asserted to be
a complete historical record of every A-share delisting. See [Coverage](/coverage).

## Rights and redistribution

China price data is acquired from a third-party redistributor without a redistribution licence from
the exchanges. Under the Corpus rights taxonomy it is classified `scraped_prohibited`, which makes
it **internal-only**: it is excluded from every resale surface, and `china:read` is a distinct
grant that a US or India key does not inherit.

Access to this dataset does not grant redistribution rights. The authoritative feeds are licensed
to non-Mainland entities through China Investment Information Services for Shanghai and Shenzhen
Securities Information Co. for Shenzhen. See [Data Provenance](/data-provenance).
