Stock Screener

MarketScanner

Purpose

Screens instruments with base, accumulated, financial, tag, and sort filters.

Signature

func (c *QuoteClient) MarketScanner(req model.MarketScannerRequest) (*model.ScannerResult, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.MarketScannerRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
MarketstringYesAlways serializedAllowed values: ALL, US, HK, CN, SG
PageintNoOmitted if zeroPage number
PageSizeintNoOmitted if zeroNumber of items per page
CursorIDstringNoOmitted if emptyCursor returned by the previous page
BaseFilterList[]map[string]interface{}NoOmitted if emptyBase-indicator filters
AccumulateFilterList[]map[string]interface{}NoOmitted if emptyAccumulated-indicator filters
FinancialFilterList[]map[string]interface{}NoOmitted if emptyFinancial-indicator filters
MultiTagsFilterList[]map[string]interface{}NoOmitted if emptyMulti-tag filters
SortFieldDatamap[string]interface{}NoOmitted if emptySort configuration
MultiTagsFields[]stringNoOmitted if emptyMulti-tag fields to return

Returns

(*model.ScannerResult, error). Key fields from model.ScannerResult:

FieldTypeJSON fieldDescription
PageintpageCurrent result page number.
TotalPageinttotalPageTotal number of result pages.
TotalCountinttotalCountTotal matched instruments.
PageSizeintpageSizeNumber of items per page.
CursorIDstringcursorIdCursor for paging results.
Items[]ScannerResultItemitemsMatched instrument results.
ScannerResultItem fieldTypeJSON field
Symbolstringsymbol
Marketstringmarket
BaseDataList[]ScannerDataRowbaseDataList
AccumulateDataList[]ScannerDataRowaccumulateDataList
FinancialDataList[]ScannerDataRowfinancialDataList
MultiTagDataList[]ScannerDataRowmultiTagDataList
ScannerDataRow fieldTypeJSON field
Indexintindex
Namestringname
Valuestringvalue
Datafloat64data

Invocation example

result, err := qc.MarketScanner(model.MarketScannerRequest{
	Market: "US",
	Page: 1,
	PageSize: 20,
	MultiTagsFields: []string{"MultiTagField_Industry"},
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{"page":0,"totalPage":1,"totalCount":1,"pageSize":20,"cursorId":"next-cursor","items":[{"symbol":"NVDA","market":"US","baseDataList":[{"index":1,"name":"latestPrice","value":"132.15","data":132.15}],"accumulateDataList":[],"financialDataList":[],"multiTagDataList":[]}]}

Rate limit

The base rate limit is 10 requests/min.


GetMarketScannerTags

Purpose

Retrieves market scanner tags data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetMarketScannerTags(req model.MarketScannerTagsRequest) ([]model.MarketScannerTagGroup, error)

Availability depends on market, instrument, and enabled data access.

Parameters

model.MarketScannerTagsRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
MarketstringNoOmitted if emptyAllowed values: ALL, US, HK, CN, SG
MultiTagsFields[]stringYesOmitted if emptyMulti-tag fields to query; serialized as multi_tag_field_list
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.MarketScannerTagGroup, error). Each array item represents one market and multi-tag field:

FieldTypeJSON fieldDescription
MarketstringmarketMarket code.
MultiTagFieldstringmultiTagFieldMulti-tag field identifier.
TagList[]MarketScannerTagtagListAvailable tags for the field.
MarketScannerTag fieldTypeJSON field
Fieldstringfield
Namestringname
Values[]stringvalues

The current API response may not populate MarketScannerTag fields, in which case they remain zero-valued. The method does not expose the raw tag items.

Invocation example

result, err := qc.GetMarketScannerTags(model.MarketScannerTagsRequest{
	Market: "US",
	MultiTagsFields: []string{"MultiTagField_Industry"},
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)

Rate limit

The base rate limit is 10 requests/min.



Did this page help you?