> For the complete documentation index, see [llms.txt](https://docs.infoway.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.infoway.io/en-docs/getting-started/symbol-convention.md).

# Symbol convention

Equity quote REST and WebSocket use exchange suffixes; crypto and other assets follow the forms below. Basic-info `type` values such as `STOCK_CN` only filter the list. They are **not** quote suffixes.

List instruments with [GET Symbol List](/en-docs/rest-api/get-basic-info/get-symbol-list.md). Quote URLs: [Endpoints](/en-docs/getting-started/endpoints.md). Unknown symbols: [REST API Error Codes](/en-docs/getting-started/error-codes/rest-api-error-codes.md) `508`.

### Equities and indices

| Market    | Suffix / form      | Correct              | Incorrect                           |
| --------- | ------------------ | -------------------- | ----------------------------------- |
| US        | `.US`              | `AAPL.US`, `.DJI.US` | `AAPL`                              |
| Hong Kong | `.HK`, 5-digit pad | `00700.HK`           | `700.HK`                            |
| Shanghai  | `.SH`              | `600519.SH`          | `600519.CN`                         |
| Shenzhen  | `.SZ`              | `000001.SZ`          | `000001.CN`                         |
| Japan     | `.JP`              | `7203.JP`            |                                     |
| Korea     | `.KS`              | `005930.KS`          | missing `.KS` (WS may return `520`) |
| India     | `.IN`              |                      |                                     |
| Taiwan    | `.TW`              | `2330.TW`            | missing `.TW` (WS may return `520`) |

`600519.CN` and `000001.CN` return `All product not exists` (REST `ret=508`; production may also surface `ret=500`).

### Other assets

| Market                    | Form                        | Example            |
| ------------------------- | --------------------------- | ------------------ |
| Crypto spot               | Pair                        | `BTCUSDT`          |
| Crypto perpetual          | Product code ending in `.P` | `BTCUSDT.P`        |
| FX                        | Pair                        | `USDJPY`, `EURUSD` |
| Metals / energy / futures | Product code                | `XAUUSD`           |

Use the exact `symbol` returned by the instrument list; do not insert underscores. Crypto uses HTTP `/crypto/...` and WebSocket `business=crypto`. Forex, commodities, futures and related indices use HTTP `/common/...` and WebSocket `business=common` (not `tv`).

Enable optional perpetual-contract fields on the `crypto` channel using `withMarkPrice`; see [HTTP trades](/en-docs/rest-api/market-data/get-latest-trade.md) and [WebSocket trade subscriptions](/en-docs/websocket/websocket-subscribe-method/latest-trade-subscription.md).

### Basic-info `type`

`/common/basic/symbols` requires a product type, not a market code such as `US`:

`STOCK_US` `STOCK_CN` `STOCK_HK` `STOCK_JP` `STOCK_KS` `STOCK_IN` `STOCK_TW`\
`CRYPTO` `FOREX` `FUTURES` `ENERGY` `METAL` `INDICES`

`type=US` or a missing `type` returns HTTP 400.
