> Source: https://ashareapi.com/en/docs/errors/  ·  Markdown version for LLMs / AI agents

Start here when something breaks

# Error codes
 Most problems you can solve yourself. If not, send us the endpoint + code + time.

 `401` Invalid API key
 Likely causes

- · Key typed wrong (mind the case — format is ct-xxxxxxxx)

- · Key disabled (resale detection / manual stop)

- · Called a paid endpoint without a key

- · Key used incorrectly: with a URL parameter, missing ?key= / &key=; with a header, missing the Bearer prefix

 What to do
 Check the key. Free endpoints (quote / kline / hot / market-overview / changedist / health) need no key

 `403` This key already used N different IPs today (over the limit)
 Likely causes

- · One key shared by several people (resale)

- · Normal use after a network change (travel / hotspot / dynamic IP / proxy)

- · Same-LAN egress IP changed (rare)

 What to do
 If normal use tripped it, contact us to reset. If you are sharing, please buy separately

 `429` Rate limit exceeded (calls per minute)
 Likely causes

- · Too much concurrency in a short window

- · No delay inside a loop

 What to do
 Add a sleep or lower concurrency. Trial 30 · Standard 120 · Pro 300 · Unlimited 600 /min

 `200 + ok:false` Upstream fetch failed (empty data)
 Likely causes

- · Upstream source temporarily unavailable

- · A stock code that does not exist

- · Upstream interface changed

 What to do
 Sources switch automatically. **These calls are not counted.** If it keeps failing, send us endpoint + code + time

 `422` Parameter format error
 Likely causes

- · code without a market prefix (sh600667, not 600667)

- · Wrong date format (should be YYYY-MM-DD)

- · A required parameter is missing

 What to do
 Check the parameter table in the endpoint reference

## Parameter conventions

| | code carries a market prefix | sh600667 (SH) · sz000001 (SZ) · hk00700 (HK) · usAAPL (US) · sh113052 (SH bond) · sz123138 (SZ bond)

| | Date format | YYYY-MM-DD (e.g. 2026-09-16); leave blank for the latest trading day

| | Booleans | true / false (lowercase)

| | Response envelope | Always { ok, endpoint, tier, elapsed_ms, source, data }

## Self-check order
 1 Look at the status code first — match it against this page

 2 Then check the parameters — against the endpoint reference (market prefix on code? date format right?)

 3 Verify your key path with a free endpoint — /v1/quote?code=sh600667

 4 Only then contact us — include the full request URL (key masked), the response and the time
