General

GetMarketState

Purpose

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

Signature

func (c *QuoteClient) GetMarketState(market string) ([]model.MarketState, error)

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

Parameters

ParameterTypeRequiredSDK defaultConstraints
marketstringYesNoneMarket code; SDK enum values are ALL/US/HK/CN/SG

Returns

([]model.MarketState, error). Key fields from model.MarketState:

FieldTypeJSON field
Marketstringmarket
MarketStatusstringmarketStatus
Statusstringstatus
OpenTimestringopenTime

Invocation example

result, err := qc.GetMarketState("US")
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "market": "US",
    "marketStatus": "Pre-Mkt",
    "status": "PRE_HOUR_TRADING",
    "openTime": "08-03 09:30:00 EDT"
  }
]

Rate limit

The base rate limit is 10 requests/min.


GetTradingCalendar

Purpose

Retrieves trading calendar data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetTradingCalendar(req model.TradingCalendarRequest) ([]model.TradingCalendarItem, error)

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

Parameters

model.TradingCalendarRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
MarketstringNoOmitted if emptyAllowed values: ALL, US, HK, CN, SG
BeginDatestringNoOmitted if emptyNone; yyyy-MM-dd
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US
EndDatestringNoOmitted when emptyEnd date

Returns

([]model.TradingCalendarItem, error). Key fields from model.TradingCalendarItem:

FieldTypeJSON field
Marketstringmarket
Datestringdate
IsTradingboolisTrading
SessionTypestringsessionType

Invocation example

result, err := qc.GetTradingCalendar(model.TradingCalendarRequest{
	Market: "US",
	BeginDate: "2025-01-01",
	EndDate: "2025-01-31",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "market": "US",
    "date": "2025-07-28",
    "isTrading": true,
    "sessionType": "TRADING"
  },
  {
    "market": "US",
    "date": "2025-07-29",
    "isTrading": true,
    "sessionType": "TRADING"
  }
]

GrabQuotePermission

Purpose

Claims market data device access for this client device and returns the account's existing market data permission entries. This operation does not purchase or grant new market data access.

Signature

func (c *QuoteClient) GrabQuotePermission() ([]model.QuotePermission, error)

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

Parameters

No parameters.

Returns

([]model.QuotePermission, error). Key fields from model.QuotePermission:

FieldTypeJSON field
Namestringname
ExpireAtint64expireAt

Invocation example

result, err := qc.GrabQuotePermission()
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "name": "usStockQuote",
    "expireAt": 1824291899000
  },
  {
    "name": "hkStockQuoteLv2",
    "expireAt": -1
  },
  {
    "name": "usOptionQuoteLv2",
    "expireAt": 1794121342000
  }
]

Rate limit

The base rate limit is 10 requests/min.


GetQuotePermission

Purpose

Retrieves market data permission entries and decodes them into the published Go return model.

Signature

func (c *QuoteClient) GetQuotePermission(req model.QuotePermissionRequest) ([]model.QuotePermission, error)

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

Parameters

model.QuotePermissionRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US
BeginDatestringNoOmitted when emptyStart date
EndDatestringNoOmitted when emptyEnd date

Returns

([]model.QuotePermission, error). Key fields from model.QuotePermission:

FieldTypeJSON field
Namestringname
ExpireAtint64expireAt

Invocation example

result, err := qc.GetQuotePermission(model.QuotePermissionRequest{
	BeginDate: "2025-01-01",
	EndDate: "2025-01-31",
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "name": "usStockQuote",
    "expireAt": 1824291899000
  },
  {
    "name": "hkStockQuoteLv2",
    "expireAt": -1
  },
  {
    "name": "usOptionQuoteLv2",
    "expireAt": 1794121342000
  }
]

Rate limit

The base rate limit is 10 requests/min.


GetKlineQuota

Purpose

Retrieves candlestick bar (K-line data) quota and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetKlineQuota(req model.KlineQuotaRequest) ([]model.KlineQuota, error)

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

Parameters

model.KlineQuotaRequest

SDK fieldTypeRequiredSerializationSDK default and constraints
WithDetailsboolNoOmitted when falseWhether to request per-symbol quota details
LangstringNoOmitted if emptyAllowed values: zh_CN, zh_TW, en_US

Returns

([]model.KlineQuota, error). Key fields from model.KlineQuota:

FieldTypeJSON field
Methodstringmethod
Usedintused
Quotaintquota
Detail[]KlineQuotaDetaildetail
KlineQuotaDetail fieldTypeJSON field
Symbolstringsymbol
Marketstringmarket
UsedBarsintusedBars
QuotaBarsintquotaBars
LastAccessint64lastAccess

The current API response may not populate Quota, Detail, or KlineQuotaDetail fields, in which case they remain unavailable or zero-valued. Method and Used are populated when present. The method returns only the typed result above and does not expose raw response fields.

Invocation example

result, err := qc.GetKlineQuota(model.KlineQuotaRequest{
	Lang: "en_US",
})
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
[
  {
    "method": "kline",
    "used": 120
  }
]

Rate limit

The base rate limit is 10 requests/min.


GetAddonEntitlement

Purpose

Retrieves addon entitlement data and decodes it into the published Go return model.

Signature

func (c *QuoteClient) GetAddonEntitlement() (*model.AddonEntitlement, error)

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

Parameters

No parameters.

Returns

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

FieldTypeJSON field
UserLevelFlexStringuserLevel
ActivePlan*AddonActivePlanactivePlan
Addons[]AddonInfoaddons
EffectiveEntitlement*AddonEntitlementDetaileffectiveEntitlement
AddonActivePlan fieldTypeJSON field
PlanTypestringplanType
ExpireTimeint64expireTime
AddonInfo fieldTypeJSON field
PlanTypestringplanType
Activeboolactive
StartTimeint64startTime
ExpireTimeint64expireTime
AddonEntitlementDetail fieldTypeJSON field
HistoryStockLimitinthistoryStockLimit
HistoryStockRemaininginthistoryStockRemaining
HistoryFutureLimitinthistoryFutureLimit
HistoryFutureRemaininginthistoryFutureRemaining
HistoryOptionLimitinthistoryOptionLimit
HistoryOptionRemaininginthistoryOptionRemaining
SubscribeLimitintsubscribeLimit
SubscribeRemainingintsubscribeRemaining
SubscribeDepthLimitintsubscribeDepthLimit
SubscribeDepthRemainingintsubscribeDepthRemaining
HighFreqLimitinthighFreqLimit
MidFreqLimitintmidFreqLimit
LowFreqLimitintlowFreqLimit
RateMultipleintrateMultiple

Invocation example

result, err := qc.GetAddonEntitlement()
if err != nil {
	log.Fatal(err)
}
fmt.Printf("%#v\n", result)
{
  "userLevel": "1",
  "activePlan": null,
  "addons": [],
  "effectiveEntitlement": null
}


Did this page help you?