Intraday Tickers
Futures and Options product list(Query base on condition)
intraday/tickers/
Parameters
| Name | Type | Description |
|---|---|---|
type* | string | Type,valid in FUTURE ; OPTION |
exchange | string | Exchange,valid in TAIFEX |
session | string | Trading Session,valid in REGULAR or AFTERHOURS |
product | string | Contract Code |
contractType | string | Contract Type,valid in I index;R rate;B bond;C commodity;S stock;E exchange rate |
isSpread | boolean | true returns the calendar spread contract list; default returns regular contracts |
Response
| Name | Type | Description |
|---|---|---|
date* | string | Date |
type* | string | Type |
exchange | string | Exchange |
session | string | Trading Session |
product | string | Product code (returned when product is given) |
contractType | string | Contract Type |
isSpread | boolean | Whether this is a spread-contract query (true when queried with isSpread=true) |
data | object[] | Data List |
>> type | string | Type |
>> symbol | string | Contract Code |
>> name | string | Contract Name |
>> isSpread | boolean | Whether this is a spread contract (true when queried with isSpread=true) |
>> referencePrice | number | Reference Price |
>> limitUpPrice | number | Limit-up price |
>> limitDownPrice | number | Limit-down price |
>> priceLimitLevels | object[] | Limit-up and limit-down prices of each level (tiered price limit products only) |
>> priceLimitLevels[].level | number | Level number; 1 is the base level |
>> priceLimitLevels[].limitUpPrice | number | Limit-up price of the level |
>> priceLimitLevels[].limitDownPrice | number | Limit-down price of the level |
>> limitUpLevel | number | Currently applied limit-up level (tiered price limit products only) |
>> limitDownLevel | number | Currently applied limit-down level (tiered price limit products only) |
>> contractType | string | Contract Type |
>> startDate | string | Start Trading Date |
>> endDate | string | Last Trading Date |
>> openDatetime | string | Trading session open time |
>> closeDatetime | string | Trading session close time |
>> flowGroup | number | Contract Flow Group |
>> settlementDate | string | Settlement Date |
>> isDynamicBanding | boolean | Dynamic Price Banding |
'*' Indicates mandatory disclosure fields.
Products with a single price limit, such as TAIEX futures and single stock futures, return only limitUpPrice and limitDownPrice. Futures and options on gold, crude oil, currencies, overseas indices and ETFs with foreign underlying constituents use tiered price limits: they additionally return the full ladder in priceLimitLevels and the currently applied levels in limitUpLevel / limitDownLevel, and limitUpPrice / limitDownPrice are the prices of the currently applied levels. When the price limit is widened during the session, the applied levels and prices are updated, and the limit-up and limit-down sides may sit at different levels.
Spread-contract queries are available since v2.2.9. When querying spread contracts with isSpread=true, the fields returned in data are reduced (symbol, type, name, isSpread). See "Spread Contracts" below.
Example
- Python
- Node.js
- C#
from fubon_neo.sdk import FubonSDK, Order
sdk = FubonSDK()
accounts = sdk.login("Your ID", "Your password" , "Your cert path", "Your cert password")
sdk.init_realtime()
restfut = sdk.marketdata.rest_client.futopt
# restfut.intraday.tickers(type='FUTURE', exchange='TAIFEX',session='REGULAR', contractType='E') # Version 2.2.3 and before
## Aftrer version 2.2.4 (use Exception for exception handling)
from fubon_neo.fugle_marketdata.rest.base_rest import FugleAPIError
try:
restfut.intraday.tickers(type='FUTURE', exchange='TAIFEX',session='REGULAR', contractType='E')
except FugleAPIError as e:
print(f"Error: {e}")
print("------------")
print(f"Status Code: {e.status_code}") # Ex: 429
print(f"Response Text: {e.response_text}") # Ex: {"statusCode":429,"message":"Rate limit exceeded"}
const { FubonSDK } = require('fubon-neo');
const sdk = new FubonSDK();
const accounts = sdk.login("Your ID", "Your Password", "Your Cert Path", "Your Cert Password");
sdk.initRealtime();
const client = sdk.marketdata.restClient
client.futopt.intraday.tickers({ type: 'FUTURE', exchange:'TAIFEX', session:'REGULAR', contractType:'E'})
.then(data => console.log(data));
using FubonNeo.Sdk;
using FugleMarketData.QueryModels.FuOpt;
using FugleMarketData.QueryModels.FuOpt.Intraday;
var sdk = new FubonSDK();
var result = sdk.Login("Your ID", "Your Password", "Your Cert Path", "Your Cert Password");
sdk.InitRealtime();
var rest = sdk.MarketData.RestClient.FutureOption;
var contracts = await rest.Intraday.Tickers(FutOptType.Future, new(){
Exchange=FutOptExchangeType.TaiFex,
Session=SessionType.AfterHours,
ContractType=ContractType.E
});
var contracts_cont = contracts.Content.ReadAsStringAsync().Result;
Console.WriteLine(contracts_cont);
Response Body:
{
"type": "FUTURE",
"exchange": "TAIFEX",
"session": "REGULAR",
"contractType": "E",
"data": [
{
"symbol": "XAFC7",
"type": "FUTURE",
"closeDatetime": "2026-09-09T16:15:00.000+08:00",
"contractType": "E",
"endDate": "2027-03-15",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "澳幣兌美元期貨037",
"openDatetime": "2026-09-09T08:45:00.000+08:00",
"referencePrice": 0.7189,
"settlementDate": "2027-03-15",
"startDate": "2026-03-19",
"limitDownLevel": 1,
"limitDownPrice": 0.6974,
"limitUpLevel": 1,
"limitUpPrice": 0.7404,
"priceLimitLevels": [
{
"level": 1,
"limitUpPrice": 0.7404,
"limitDownPrice": 0.6974
},
{
"level": 2,
"limitUpPrice": 0.7548,
"limitDownPrice": 0.683
},
{
"level": 3,
"limitUpPrice": 0.7692,
"limitDownPrice": 0.6686
}
]
},
{
"symbol": "XAFF7",
"type": "FUTURE",
"closeDatetime": "2026-09-09T16:15:00.000+08:00",
"contractType": "E",
"endDate": "2027-06-14",
"flowGroup": 5,
"isDynamicBanding": true,
"name": "澳幣兌美元期貨067",
"openDatetime": "2026-09-09T08:45:00.000+08:00",
"referencePrice": 0.7178,
"settlementDate": "2027-06-14",
"startDate": "2026-06-18",
"limitDownLevel": 1,
"limitDownPrice": 0.6963,
"limitUpLevel": 1,
"limitUpPrice": 0.7393,
"priceLimitLevels": [
{
"level": 1,
"limitUpPrice": 0.7393,
"limitDownPrice": 0.6963
},
{
"level": 2,
"limitUpPrice": 0.7536,
"limitDownPrice": 0.682
},
{
"level": 3,
"limitUpPrice": 0.768,
"limitDownPrice": 0.6676
}
]
},
......
]
}
Spread Contracts
Calendar spread contracts do not appear by default in the list; they are only returned when isSpread=true. Spread contracts have the following characteristics:
- Symbol format is
{near month}/{far month}: composed of a near-month and far-month leg, e.g.EXFG6/H6,TXFG6/F7; the contract name shows both months (e.g. "電子期貨076-086"). - Can be queried by a single symbol:
/intraday/ticker,/intraday/quote,/intraday/trades,/intraday/candlesand/intraday/volumesall accept spread-contract symbols; put the symbol, including its/, directly in the path (SDK example:restfut.intraday.quote(symbol='TXFJ6/K6')). Real-time data is also available via WebSocket subscription. - Quotes can be negative: since a spread price is the difference between the two legs, bid/ask quotes can be negative — this is expected.
- Python
- Node.js
restfut.intraday.tickers(type='FUTURE', exchange='TAIFEX', session='AFTERHOURS', isSpread=True)
client.futopt.intraday
.tickers({ type: 'FUTURE', exchange: 'TAIFEX', session: 'AFTERHOURS', isSpread: true })
.then((data) => console.log(data));