Start here when something breaks
Error codes
Most problems you can solve yourself. If not, send us the endpoint + code + time.
401Invalid API keyLikely 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
403This 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
429Rate 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:falseUpstream 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
422Parameter format errorLikely 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
1Look at the status code first — match it against this page
2Then check the parameters — against the endpoint reference (market prefix on code? date format right?)
3Verify your key path with a free endpoint — /v1/quote?code=sh600667
4Only then contact us — include the full request URL (key masked), the response and the time