API features
Active Hong Kong-listed symbols
Browse a maintained directory of active securities identified by their five-digit market symbols.
English and Chinese name search
Search by symbol, exchange English short name, or Chinese display name from one endpoint.
Stable symbol-ordered pagination
Build predictable directories and selectors with ordered pages and a total matching record count.
Symbol validation
Check user-supplied Hong Kong symbols before using them in portfolios, research, or market-data workflows.
Security selector enrichment
Display recognizable English and Chinese names alongside five-digit symbols in finance applications.
Reference-data workflows
Support watchlists, onboarding, portfolio tools, security masters, and research interfaces without quote data.
API Document
HTTP Protocol:HTTPS
HTTP Method:GET
HTTP Endpoint:https://api.gugudata.io/v1/stock/hk/symbols
Response Type:application/json; charset=utf-8
DEMO Endpoint:https://api.gugudata.io/v1/stock/hk/symbols/demo
Live Demo:Try Interactive Demo
Postman Collection:Run in Postman
API Request Parameters
| Name | Type | Is Required | Default Value | Remark |
|---|---|---|---|---|
| appkey | string | true | YOUR_APPKEY | API key used to authenticate the request. |
| query | string | false | Optional case-insensitive substring matched against the five-digit symbol, English short name, and Chinese display name. Unicode NFKC normalization and surrounding whitespace trimming apply; maximum 100 Unicode characters. | |
| pageIndex | integer | false | 1 | One-based page index. Values below 1 return HTTP and business status 400. |
| pageSize | integer | false | 20 | Records per page. Omitted or zero uses 20, values from 1 to 20 are preserved, values above 20 are reduced to 20, and negative values return HTTP and business status 400. |
API Response Parameters
| Name | Type | Remark |
|---|---|---|
| dataStatus | object | Response metadata for the directory lookup. |
| dataStatus.requestParameter | string | Privacy-safe summary of the normalized request. |
| dataStatus.statusCode | integer | Application-level status code. |
| dataStatus.statusDescription | string | Human-readable application status message. |
| dataStatus.responseDateTime | string | Time at which the response was generated. |
| dataStatus.dataTotalCount | integer | Number of matching or returned records for this request. |
| data | array<object> | Symbol-ordered result page. The array is empty when no records match. |
| data[].symbol | string | Five-digit Hong Kong-listed security symbol. |
| data[].stockName | string | Exchange English short name. |
| data[].stockChineseName | string | Chinese display name. |
API Response Status Codes
| Status Code | Explanation of Status Code | Remarks |
|---|---|---|
| 200 | Request processed successfully. | Some endpoints expose a separate application-level status field in the response body, such as `dataStatus.statusCode`. |
| 400 | Invalid request parameters or request format. | Check required fields, data types, and request body format. |
| 401 | Missing or unknown application key. | Provide a valid `appkey` with the request. |
| 403 | The application key is recognized but access is not allowed. | The key may be expired, inactive, or not permitted for the requested API. |
| 429 | Request rate or trial usage limit exceeded. | Reduce request frequency and retry with backoff. If a trial allowance is exhausted, check Trial Keys for remaining requests and subscribe to continue. |
| 500 | Internal service error. | Retry later or contact support if the error persists. |
| 503 | The symbol directory is temporarily unavailable. | Retry later or contact support if the error persists. |
Remote MCP
Use this API through GuGuData Remote MCP
Connect your AI client once, authorize in the browser, and the client can use the GuGuData API tools available to your account. You do not need to paste an appkey into the MCP client.
https://mcp.gugudata.io/mcp{
"mcpServers": {
"gugudata": {
"url": "https://mcp.gugudata.io/mcp",
"transportType": "streamable-http"
}
}
}Code Snippets
Frequently asked questions
Common questions about request limits, trials, renewal, and cancellation.
What does the 5 requests per second limit mean?
It is a request-rate limit, not a concurrency allowance. Keep your request rate at or below 5 per second. If the service returns a rate-limit response, reduce the frequency and retry with backoff.
Is total paid usage limited?
There is no total request cap during an active paid subscription and no usage-based overage charge.
How does the free trial work?
Each account can receive a limited trial key. Requests are shared across APIs in the same category. Check Trial Keys for the exact allowance and remaining requests.
How do renewal and cancellation work?
The plan renews annually until canceled. Manage or cancel the renewal from Dashboard → Orders & Billing. Access continues through the paid period after cancellation. See the Terms of Service for the current refund policy. If the billing portal is unavailable, contact support.
Service terms
Read our service terms and privacy policy before subscribing.




