> 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/api-limitation/free-plan.md).

# Free Plan Limitation

The Free plan is intended for product evaluation and integration testing. Paid plans are intended for production market data services. We are narrowing the symbols available on the Free plan so that e

Effective **17 October 2026 (UTC)**, market data queries and subscriptions on the Free plan will be limited to a defined set of symbols. Access for paid plans remains unchanged.

### What Is Changing

Until the effective date, Free plan accounts can query and subscribe to all symbols across markets. After the change, Free accounts can access only the following symbols, which are provided for product evaluation:

| Market           | Symbols              |
| ---------------- | -------------------- |
| US stocks        | AAPL.US, SPY.US      |
| Hong Kong stocks | 00700.HK, 02800.HK   |
| China A-shares   | 600519.SH, 000001.SH |
| Japan            | 7203.JP              |
| Korea            | 005930.KS            |
| India            | RELIANCE.IN          |
| Taiwan           | 2330.TW              |
| Forex            | EURUSD               |
| Crypto           | BTCUSDT, BTCUSDT.P   |
| Futures          | XAUUSD, CU, ES, HSI  |
| Indices          | US500, NAS100, HSII  |

This change applies to:

* HTTP market data queries, including candlesticks, trades, and order book depth
* WebSocket market data subscriptions

Requests for symbols outside this list are rejected. Query APIs return a permission error, and subscription requests fail. The response includes the affected symbol codes. When more than one symbol is rejected, the codes are separated by commas and sorted in lexicographical order.

**All paid plans are not affected and will continue to provide full query and subscription access under their existing entitlements.**

### Response Examples

The examples below use a request for `TSLA.US`.

HTTP response body:

```
{
  "ret": 514,
  "msg": "No permission：TSLA.US",
  "traceId": "b09b6d00-004f-49b1-9356-836dabf49300",
  "data": null
}
```

WebSocket response:

```
Subscribe fail: {"traceId":"b09b6d00-004f-49b1-9356-836dabf49300","code":521,"msg":"No permission：TSLA.US"}
```

When several symbols in the same request are not allowed, `msg` takes the form `No permission：MSFT.US,TSLA.US`.
