ETF Screener
POST/api/v1.0/quote/etf-screenETF-only screener. Filter, sort and page by ETF FieldIDs (fees, leverage, style box, holdings, tracking error). Use this endpoint to screen ETFs. items[].values[] keep integers scaled according to each indicator.
Request
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
market | string | body | yes | ETF market: US, HK, JP, AU, SG, CA, MY, or CN. |
screen_groups | object[] | body | no | Filter groups. Each item is {field_id, intervals?, choices?, sub_groups?}; multiple groups are combined with AND. |
sorts | object[] | body | no | Sort rules. Each item is {sort_field_id, sort_flag}; 0 ascending and 1 descending. Defaults to AUM descending. |
need_fields | object[] | body | no | Factors to return, each {field_id}. Defaults to code (2), price (5), and AUM (10). |
offset | int | body | no | Start offset, default 0, minimum 0. |
limit | int | body | no | Page size, default 20, maximum 500. |
Example
bash
curl -X POST 'https://webapi.futunn.com/api/v1.0/quote/etf-screen' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <AccessToken>' \
-d '{"market":"US","sorts":[{"sort_field_id":10,"sort_flag":1}],"need_fields":[{"field_id":2},{"field_id":5},{"field_id":10}],"offset":0,"limit":20}' | jqResponse
| Field | Type | Description |
|---|---|---|
data.items | object[] | Matching ETF list |
data.total | integer | Total matching ETFs |
data.items[].code | string | ETF symbol |
data.items[].name | string | ETF name |
data.items[].values | object[] | Requested factor values; ival is the integer scaled according to the indicator |
data.items[].values[].field_id | integer | Factor FieldID |
data.items[].values[].ival | integer | Numeric value scaled according to the indicator |
data.items[].values[].text | string | Text value |
data.items[].values[].content_type | integer | Content type: 1=percent 2=number 3=plain 4=text 5=holding list |
pagination.completed | boolean | True when this is the last page |
Errors
| ret_code | error.code | Description |
|---|---|---|
| 0 | — | Success |
| -3 | invalid_parameter | Missing or invalid parameter |
| -7 | invalid_symbol | Unknown symbol |
| -8 | unsupported | Market or product is not supported |
| -9 | permission_denied | Missing permission |
| -10 | no_data | No data |
| -11 | rate_limited | Too many requests |
Sample
json
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"total": 1,
"items": [
{
"code": "US.SPY",
"name": "SPDR S&P 500 ETF",
"values": [
{"field_id": 2, "text": "US.SPY"},
{"field_id": 5, "ival": 500000000},
{"field_id": 10, "ival": 500000000000}
]
}
]
},
"pagination": {
"completed": true
}
}