HTX USDT-M Futures Skill
USDT-M Futures trading on HTX using authenticated and public API endpoints. Return the result in JSON format.
Base URLs
-
Mainnet: https://api.hbdm.com
-
Mainnet (AWS): https://api.hbdm.vn
Quick Reference
Reference Data (Public & Private)
Endpoint Method Auth Description
/linear-swap-api/v3/swap_unified_account_type
GET Yes Account type query
/linear-swap-api/v3/swap_switch_account_type
POST Yes Account type change
/linear-swap-api/v1/swap_funding_rate
GET No Query funding rate
/linear-swap-api/v1/swap_batch_funding_rate
GET No Query a batch of funding rate
/linear-swap-api/v1/swap_historical_funding_rate
GET No Query historical funding rate
/linear-swap-api/v3/swap_liquidation_orders
GET No Query liquidation orders
/linear-swap-api/v1/swap_settlement_records
GET No Query historical settlement records
/linear-swap-api/v1/swap_elite_account_ratio
GET No Query top trader sentiment index (account)
/linear-swap-api/v1/swap_elite_position_ratio
GET No Query top trader sentiment index (position)
/linear-swap-api/v1/swap_api_state
GET No Query information on system status
/linear-swap-api/v1/swap_cross_ladder_margin
GET No Query information on tiered margin (cross)
/linear-swap-api/v1/swap_ladder_margin
GET No Query information on tiered margin (isolated)
/linear-swap-api/v1/swap_estimated_settlement_price
GET No Get the estimated settlement price
/linear-swap-api/v1/swap_adjustfactor
GET No Query information on tiered adjustment factor (isolated)
/linear-swap-api/v1/swap_cross_adjustfactor
GET No Query information on tiered adjustment factor (cross)
/v1/insurance_fund_info
GET No Query risk reserve balance information
/v1/insurance_fund_history
GET No Query historical risk reserves
/linear-swap-api/v1/swap_price_limit
GET No Query swap price limitation
/linear-swap-api/v1/swap_open_interest
GET No Get swap open interest information
/linear-swap-api/v1/swap_contract_info
GET No Query contract info
/linear-swap-api/v1/swap_index
GET No Query swap index price information
/linear-swap-api/market/swap_contract_constituents
GET No Get index components
/linear-swap-api/v1/swap_query_elements
GET No Contract elements
https://api.hbdm.com/api/v1/timestamp
GET No Get current system timestamp
https://api.hbdm.com/heartbeat/
GET No Query whether the system is available
https://api.hbdm.com/heartbeat
GET Yes Maintenance with service suspended
Market Data (Public)
Endpoint Method Auth Description
/linear-swap-ex/market/depth
GET No Get market depth
/linear-swap-ex/market/bbo
GET No Get market BBO data
/linear-swap-ex/market/history/kline
GET No Get KLine data
/index/market/history/linear_swap_mark_price_kline
GET No Get kline data of mark price
/linear-swap-ex/market/detail/merged
GET No Get market data overview
/v2/linear-swap-ex/market/detail/batch_merged
GET No Get a batch of market data overview (V2)
/linear-swap-ex/market/trade
GET No Query the last trade of a contract
/linear-swap-ex/market/history/trade
GET No Query a batch of trade records
/linear-swap-api/v1/swap_his_open_interest
GET No Query information on open interest
/index/market/history/linear_swap_premium_index_kline
GET No Query premium index kline data
/index/market/history/linear_swap_estimated_rate_kline
GET No Query estimated funding rate kline data
/index/market/history/linear_swap_basis
GET No Query basis data
Account Interface (Private)
Endpoint Method Auth Description
/linear-swap-api/v1/swap_balance_valuation
POST Yes Query asset valuation
/linear-swap-api/v1/swap_account_info
POST Yes Query user's account information (isolated)
/linear-swap-api/v1/swap_cross_account_info
POST Yes Query user's account information (cross)
/linear-swap-api/v1/swap_position_info
POST Yes Query user's position information (isolated)
/linear-swap-api/v1/swap_cross_position_info
POST Yes Query user's position information (cross)
/linear-swap-api/v1/swap_account_position_info
POST Yes Query assets and positions (isolated)
/linear-swap-api/v1/swap_cross_account_position_info
POST Yes Query assets and positions (cross)
/linear-swap-api/v1/swap_sub_auth
POST Yes Set a batch of sub-account trading permissions
/linear-swap-api/v1/swap_sub_auth_list
GET Yes Query sub-account transaction permissions
/linear-swap-api/v1/swap_sub_account_list
POST Yes Query assets information of all sub-accounts (isolated)
/linear-swap-api/v1/swap_cross_sub_account_list
POST Yes Query assets information of all sub-accounts (cross)
/linear-swap-api/v1/swap_sub_account_info_list
POST Yes Query a batch of sub-account's assets information (isolated)
/linear-swap-api/v1/swap_cross_sub_account_info_list
POST Yes Query a batch of sub-account's assets information (cross)
/linear-swap-api/v1/swap_sub_account_info
POST Yes Query a single sub-account's assets information
/linear-swap-api/v1/swap_cross_sub_account_info
POST Yes Query a sub-account's assets information (cross)
/linear-swap-api/v1/swap_sub_position_info
POST Yes Query a single sub-account's position information (isolated)
/linear-swap-api/v1/swap_cross_sub_position_info
POST Yes Query a sub-account's position information (cross)
/linear-swap-api/v3/swap_financial_record
POST Yes Query account financial records
/linear-swap-api/v3/swap_financial_record_exact
POST Yes Query account financial records via multiple fields
/linear-swap-api/v1/swap_available_level_rate
POST Yes Query user's available leverage (isolated)
/linear-swap-api/v1/swap_cross_available_level_rate
POST Yes Query user's available leverage (cross)
/linear-swap-api/v1/swap_order_limit
POST Yes Query swap information on order limit
/linear-swap-api/v1/swap_fee
POST Yes Query information on swap trading fee
/linear-swap-api/v1/swap_transfer_limit
POST Yes Query information on transfer limit (isolated)
/linear-swap-api/v1/swap_cross_transfer_limit
POST Yes Query information on transfer limit (cross)
/linear-swap-api/v1/swap_position_limit
POST Yes Query information on position limit (isolated)
/linear-swap-api/v1/swap_cross_position_limit
POST Yes Query information on position limit (cross)
/linear-swap-api/v1/swap_lever_position_limit
POST Yes Query users' position limit for all leverages (isolated)
/linear-swap-api/v1/swap_cross_lever_position_limit
POST Yes Query users' position limit for all leverages (cross)
/linear-swap-api/v1/swap_master_sub_transfer
POST Yes Transfer between master and sub account
/linear-swap-api/v1/swap_master_sub_transfer_record
POST Yes Query transfer records between master and sub account
/linear-swap-api/v1/swap_transfer_inner
POST Yes Transfer between different margin accounts
/linear-swap-api/v1/swap_api_trading_status
GET Yes Query user's API indicator disable information
Trade Interface (Private)
Endpoint Method Auth Description
/linear-swap-api/v1/swap_cross_trade_state
GET No Query information on trade state (cross)
/linear-swap-api/v1/swap_switch_position_mode
POST Yes Switch position mode (isolated)
/linear-swap-api/v1/swap_cross_switch_position_mode
POST Yes Switch position mode (cross)
/linear-swap-api/v1/swap_order
POST Yes Place an order (isolated)
/linear-swap-api/v1/swap_cross_order
POST Yes Place an order (cross)
/linear-swap-api/v1/swap_batchorder
POST Yes Place a batch of orders (isolated)
/linear-swap-api/v1/swap_cross_batchorder
POST Yes Place a batch of orders (cross)
/linear-swap-api/v1/swap_cancel
POST Yes Cancel an order (isolated)
/linear-swap-api/v1/swap_cross_cancel
POST Yes Cancel an order (cross)
/linear-swap-api/v1/swap_cancelall
POST Yes Cancel all orders (isolated)
/linear-swap-api/v1/swap_cross_cancelall
POST Yes Cancel all orders (cross)
/linear-swap-api/v1/swap_switch_lever_rate
POST Yes Switch leverage (isolated)
/linear-swap-api/v1/swap_cross_switch_lever_rate
POST Yes Switch leverage (cross)
/linear-swap-api/v1/swap_order_info
POST Yes Get information of an order (isolated)
/linear-swap-api/v1/swap_cross_order_info
POST Yes Get information of an order (cross)
/linear-swap-api/v1/swap_order_detail
POST Yes Order details acquisition (isolated)
/linear-swap-api/v1/swap_cross_order_detail
POST Yes Get detail information of order (cross)
/linear-swap-api/v1/swap_openorders
POST Yes Current unfilled order acquisition (isolated)
/linear-swap-api/v1/swap_cross_openorders
POST Yes Current unfilled order acquisition (cross)
/linear-swap-api/v3/swap_hisorders
POST Yes Get history orders (isolated)
/linear-swap-api/v3/swap_cross_hisorders
POST Yes Get history orders (cross)
/linear-swap-api/v3/swap_hisorders_exact
POST Yes Get history orders via multiple fields (isolated)
/linear-swap-api/v3/swap_cross_hisorders_exact
POST Yes Get history orders via multiple fields (cross)
/linear-swap-api/v3/swap_matchresults
POST Yes Acquire history match results (isolated)
/linear-swap-api/v3/swap_cross_matchresults
POST Yes Get history match results (cross)
/linear-swap-api/v3/swap_matchresults_exact
POST Yes Get history match results via multiple fields (isolated)
/linear-swap-api/v3/swap_cross_matchresults_exact
POST Yes Get history match results via multiple fields (cross)
/linear-swap-api/v1/swap_lightning_close_position
POST Yes Place lightning close order (isolated)
/linear-swap-api/v1/swap_cross_lightning_close_position
POST Yes Place lightning close position (cross)
/linear-swap-api/v1/swap_position_side
GET Yes Query position mode (isolated)
/linear-swap-api/v1/swap_cross_position_side
GET Yes Query position mode (cross)
Strategy Order Interface (Private)
Endpoint Method Auth Description
/linear-swap-api/v1/swap_trigger_order
POST Yes Place trigger order (isolated)
/linear-swap-api/v1/swap_cross_trigger_order
POST Yes Place trigger order (cross)
/linear-swap-api/v1/swap_trigger_cancel
POST Yes Cancel trigger order (isolated)
/linear-swap-api/v1/swap_cross_trigger_cancel
POST Yes Cancel trigger order (cross)
/linear-swap-api/v1/swap_trigger_cancelall
POST Yes Cancel all trigger orders (isolated)
/linear-swap-api/v1/swap_cross_trigger_cancelall
POST Yes Cancel all trigger orders (cross)
/linear-swap-api/v1/swap_trigger_openorders
POST Yes Query trigger order open orders (isolated)
/linear-swap-api/v1/swap_cross_trigger_openorders
POST Yes Query trigger order open orders (cross)
/linear-swap-api/v1/swap_trigger_hisorders
POST Yes Query trigger order history (isolated)
/linear-swap-api/v1/swap_cross_trigger_hisorders
POST Yes Query trigger order history (cross)
/linear-swap-api/v1/swap_tpsl_order
POST Yes Set a take-profit and stop-loss order (isolated)
/linear-swap-api/v1/swap_cross_tpsl_order
POST Yes Set a take-profit and stop-loss order (cross)
/linear-swap-api/v1/swap_tpsl_cancel
POST Yes Cancel a take-profit and stop-loss order (isolated)
/linear-swap-api/v1/swap_cross_tpsl_cancel
POST Yes Cancel a take-profit and stop-loss order (cross)
/linear-swap-api/v1/swap_tpsl_cancelall
POST Yes Cancel all take-profit and stop-loss orders (isolated)
/linear-swap-api/v1/swap_cross_tpsl_cancelall
POST Yes Cancel all take-profit and stop-loss orders (cross)
/linear-swap-api/v1/swap_tpsl_openorders
POST Yes Query open take-profit and stop-loss orders (isolated)
/linear-swap-api/v1/swap_cross_tpsl_openorders
POST Yes Query open take-profit and stop-loss orders (cross)
/linear-swap-api/v1/swap_tpsl_hisorders
POST Yes Query take-profit and stop-loss history orders (isolated)
/linear-swap-api/v1/swap_cross_tpsl_hisorders
POST Yes Query take-profit and stop-loss history orders (cross)
/linear-swap-api/v1/swap_relation_tpsl_order
POST Yes Query info of take-profit and stop-loss order (isolated)
/linear-swap-api/v1/swap_cross_relation_tpsl_order
POST Yes Query info of take-profit and stop-loss order (cross)
/linear-swap-api/v1/swap_track_order
POST Yes Place a trailing order (isolated)
/linear-swap-api/v1/swap_cross_track_order
POST Yes Place a trailing order (cross)
/linear-swap-api/v1/swap_track_cancel
POST Yes Cancel a trailing order (isolated)
/linear-swap-api/v1/swap_cross_track_cancel
POST Yes Cancel a trailing order (cross)
/linear-swap-api/v1/swap_track_cancelall
POST Yes Cancel all trailing orders (isolated)
/linear-swap-api/v1/swap_cross_track_cancelall
POST Yes Cancel all trailing orders (cross)
/linear-swap-api/v1/swap_track_openorders
POST Yes Current unfilled trailing order acquisition (isolated)
/linear-swap-api/v1/swap_cross_track_openorders
POST Yes Current unfilled trailing order acquisition (cross)
/linear-swap-api/v1/swap_track_hisorders
POST Yes Get history trailing orders (isolated)
/linear-swap-api/v1/swap_cross_track_hisorders
POST Yes Get history trailing orders (cross)
Transferring Interface
Endpoint Method Auth Description
/linear-swap-api/v1/swap_cross_transfer_state
GET No Query information on transfer state
/v2/account/transfer
POST Yes Transfer margin between Spot account and USDT Margined Contracts account
Parameters
Common Parameters
Contract & Symbol
-
contract_code: Contract code (e.g., BTC-USDT, ETH-USDT)
-
symbol: Symbol name
-
pair: Trading pair (e.g., BTC-USDT)
-
contract_type: Contract type (swap, this_week, next_week, quarter, next_quarter)
-
business_type: Business type (futures, swap, all)
Account & Margin
-
margin_account: Margin account identifier
-
margin_mode: Margin mode (cross, isolated)
-
margin_asset: Margin asset (e.g., USDT)
-
account_type: Account type
Order Parameters
-
order_id: Order ID (can be comma-separated for multiple orders)
-
client_order_id: Client-defined order ID
-
order_source: Order source
-
order_type: Order type
-
order_price_type: Order price type (limit, optimal_5, optimal_10, optimal_20, post_only, fok, ioc, etc.)
-
direction: Transaction direction (buy, sell)
-
offset: Offset direction (open, close, both)
-
volume: Order volume (quantity in contracts)
-
price: Order price
-
lever_rate: Leverage rate
-
reduce_only: Reduce only flag (0: no, 1: yes)
Trigger Order Parameters
-
trigger_type: Trigger type (ge: greater than or equal, le: less than or equal)
-
trigger_price: Trigger price
-
triggered_price: The price when trigger order was executed
Take-Profit & Stop-Loss Parameters
-
tp_trigger_price: Trigger price of take-profit order
-
tp_order_price: Order price of take-profit order
-
tp_order_price_type: Order type of take-profit order
-
sl_trigger_price: Trigger price of stop-loss order
-
sl_order_price: Order price of stop-loss order
-
sl_order_price_type: Order type of stop-loss order
-
price_protect: Price protection (boolean)
Trailing Order Parameters
-
callback_rate: Callback rate for trailing orders
-
active_price: Active price for trailing orders
-
is_active: Whether the active price is activated
Query Parameters
-
page_index: Page number (default: 1)
-
page_size: Page size (default: 20, max: 50)
-
start_time: Start time (Unix timestamp in milliseconds)
-
end_time: End time (Unix timestamp in milliseconds)
-
create_date: Number of days
-
direct: Search direction (NEXT: ascending, PREV: descending)
-
from_id: Starting ID for pagination
-
sort_by: Sort field (descending order)
Sub-account Parameters
-
sub_uid: Sub-account UID
-
sub_auth: Sub-account authorization (0: disable, 1: enable)
Transfer Parameters
-
from: Source account (e.g., spot, linear-swap)
-
to: Destination account (e.g., spot, linear-swap)
-
currency: Currency to transfer
-
amount: Transfer amount
-
from_margin_account: Source margin account
-
to_margin_account: Destination margin account
Market Data Parameters
-
period: K-line period (1min, 5min, 15min, 30min, 60min, 4hour, 1day, 1mon, 1week, 1year)
-
type: Depth type (step0-step19)
-
size: Number of records to return
Other Parameters
-
trade_type: Trade type (0: all, 1: open long, 2: open short, 3: close short, 4: close long)
-
status: Order status (multiple statuses can be comma-separated)
-
self_match_prevent: Self-match prevention flag
-
self_match_prevent_new: Prevent self-trading
Enums
Order Types
- order_price_type: limit, optimal_5, optimal_10, optimal_20, post_only, fok, ioc, opponent, lightning, optimal_5_fok, optimal_5_ioc, optimal_10_fok, optimal_10_ioc, optimal_20_fok, optimal_20_ioc, opponent_ioc, opponent_fok
Order States
- status: submitted (3), partial-filled (4), partial-canceled (5), filled (6), canceled (7), ready to submit (1), accepted (2)
Direction & Offset
-
direction: buy, sell
-
offset: open, close, both
Margin Mode
- margin_mode: isolated, cross
Contract Type
- contract_type: swap (perpetual), this_week, next_week, quarter (current quarter), next_quarter
Position Mode
- position_mode: dual_side (hedge mode), single_side (one-way mode)
Authentication
For endpoints that require authentication, you will need to provide HTX API credentials.
Required credentials:
-
apiKey: Your HTX API key
-
secretKey: Your HTX API secret (for signing)
All authenticated endpoints require HMAC SHA256 signature:
Create the pre-sign string in the following order:
-
HTTP method (GET/POST) + "\n"
-
API host (e.g., api.hbdm.com) + "\n"
-
API path (e.g., /linear-swap-api/v1/swap_order) + "\n"
-
Sorted query string parameters
Append required parameters to all authenticated requests:
-
AccessKeyId: Your API key
-
SignatureMethod: HmacSHA256
-
SignatureVersion: 2
-
Timestamp: UTC timestamp in format yyyy-MM-ddTHH:mm:ss
Sign the pre-sign string with secretKey using HMAC SHA256
Append signature to query string as Signature parameter
For POST requests, also include signature in the URL query string
Example pre-sign string:
POST\n api.hbdm.com\n /linear-swap-api/v1/swap_order\n AccessKeyId=xxx&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2017-05-11T15:19:30
Security
Share Credentials
Users can provide HTX API credentials by sending a file where the content is in the following format:
fe45419a...xyz secretabc...key
Never Display Full Secrets
When showing credentials to users:
-
API Key: Show first 5 + last 4 characters: fe45419a...xyz
-
Secret Key: Always mask, show only last 5: ***...key1
Example response when asked for credentials:
Account: main API Key: fe45419a...xyz Secret: ***...key1 Environment: Mainnet
Listing Accounts
When listing accounts, show names and environment only — never keys:
HTX Accounts:
- main (Mainnet)
- trading (Mainnet - AWS)
Transactions in Mainnet
When performing transactions in mainnet, always confirm with the user before proceeding by asking them to write "CONFIRM" to proceed.
HTX Accounts
main
-
API Key: your_mainnet_api_key
-
Secret: your_mainnet_secret
-
Environment: https://api.hbdm.com
-
Description: Primary USDT-M Futures trading account
trading
-
API Key: your_aws_api_key
-
Secret: your_aws_secret
-
Environment: https://api.hbdm.vn
-
Description: AWS optimized USDT-M Futures trading
TOOLS.md Structure
HTX Accounts
main
- API Key: fe45419a...xyz
- Secret: secretabc...key
- Environment: https://api.hbdm.com
- Description: Primary USDT-M Futures trading account
trading
- API Key: test456...abc
- Secret: testsecret...xyz
- Environment: https://api.hbdm.vn
- Description: AWS optimized USDT-M Futures trading
Agent Behavior
-
Credentials requested: Mask secrets (show last 5 chars only)
-
Listing accounts: Show names and environment, never keys
-
Account selection: Ask if ambiguous, default to main
-
When doing a transaction in mainnet, confirm with user before by asking to write "CONFIRM" to proceed
-
New credentials: Prompt for name, environment
Adding New Accounts
When user provides new credentials:
-
Ask for account name
-
Ask: Which environment (Mainnet or Mainnet-AWS)
-
Store in TOOLS.md with masked display confirmation
User Agent Header
Include User-Agent header with the following string: htx-usdt-m-futures/1.0.0 (Skill)
Important Notes
-
All timestamps are in Unix milliseconds unless specified otherwise
-
Contract codes should use uppercase (e.g., BTC-USDT, not btc-usdt)
-
For market buy orders, the volume parameter represents the number of contracts
-
Account ID must be obtained from appropriate endpoints before trading
-
Rate limits apply - see HTX API documentation for details
-
Signature must be calculated for every authenticated request
-
Timestamp in signature must be within 1 minute of server time
-
Both isolated margin and cross margin modes are supported
-
Position modes: single_side (one-way) and dual_side (hedge)
-
Always use the correct margin mode and margin account for operations
-
For cross margin operations, use endpoints with "cross" in their path
-
For isolated margin operations, use endpoints without "cross" in their path