usdt-m-futures
Original:🇺🇸 English
Translated
HTX USDT-M Futures trading using the HTX API. Authentication requires API key and secret key for certain endpoints. Supports mainnet.
2installs
Added on
NPX Install
npx skill4agent add htx-exchange/htx-skills-hub usdt-m-futuresTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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
Complete API endpoints for HTX USDT-M Futures. All endpoints use base URL (or for AWS).
https://api.hbdm.comhttps://api.hbdm.vnReference Data
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
GET | Account type query | None | None | Yes |
POST | Account Type Change | account_type | None | Yes |
GET | Query funding rate | contract_code | None | No |
GET | Query a Batch of Funding Rate | contract_code | None | No |
GET | Query historical funding rate | contract_code | page_index, page_size | No |
GET | Query Liquidation Orders | contract_code | trade_type, create_date, page_index, page_size | No |
GET | Query historical settlement records | contract_code | page_index, page_size | No |
GET | Query Top Trader Sentiment Index (Account) | contract_code | period | No |
GET | Query Top Trader Sentiment Index (Position) | contract_code | period | No |
GET | Query information on system status (Isolated) | contract_code | None | No |
POST | Query information on Tiered Margin (Cross) | None | None | Yes |
POST | Query information on Tiered Margin (Isolated) | contract_code | None | Yes |
GET | Get the estimated settlement price | contract_code | None | No |
POST | Query Tiered Adjustment Factor (Isolated) | contract_code | None | Yes |
POST | Query Tiered Adjustment Factor (Cross) | None | None | Yes |
GET | Query risk reserve balance information | contract_code | None | No |
GET | Query historical risk reserves | contract_code | page_index, page_size | No |
GET | Query Swap Price Limitation | contract_code | None | No |
GET | Get Swap Open Interest Information | contract_code | None | No |
GET | Query Contract Info | contract_code | None | No |
GET | Query Swap Index Price Information | contract_code | None | No |
GET | Get index components | index_code | None | No |
GET | Contract Elements | contract_code | None | No |
GET | Get current system timestamp | None | None | No |
GET | Query whether the system is available | None | None | No |
Market Data
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
GET | Get Market Depth | contract_code | type | No |
GET | Get Market BBO Data | contract_code | None | No |
GET | Get KLine Data | contract_code, period | size, from, to | No |
GET | Get Kline Data of Mark Price | contract_code, period | size, from, to | No |
GET | Get Market Data Overview | contract_code | None | No |
GET | Get a Batch of Market Data Overview | contract_code | None | No |
GET | Query The Last Trade of a Contract | contract_code | None | No |
GET | Query a Batch of Trade Records | contract_code | size | No |
GET | Query information on open interest | contract_code | None | No |
GET | Query Premium Index Kline Data | contract_code, period | size, from, to | No |
GET | Query Estimated Funding Rate Kline | contract_code, period | size, from, to | No |
GET | Query Basis Data | contract_code, period | size, from, to, basis_price_type | No |
Account Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST | Query Asset Valuation | None | valuation_asset | Yes |
POST | Query Account Information (Isolated) | contract_code | None | Yes |
POST | Query Account Information (Cross) | None | valuation_asset | Yes |
POST | Query Position Information (Isolated) | contract_code | None | Yes |
POST | Query Position Information (Cross) | None | contract_code | Yes |
POST | Query Assets And Positions (Isolated) | contract_code | None | Yes |
POST | Query Assets And Positions (Cross) | None | valuation_asset | Yes |
POST | Set Sub-Account Trading Permissions | sub_uid | trades | Yes |
POST | Query sub-account permissions | sub_uid | None | Yes |
POST | Query all sub-accounts (Isolated) | None | None | Yes |
POST | Query all sub-accounts (Cross) | None | valuation_asset | Yes |
POST | Query batch sub-accounts (Isolated) | sub_uid | None | Yes |
POST | Query batch sub-accounts (Cross) | sub_uid | valuation_asset | Yes |
POST | Query single sub-account (Isolated) | contract_code, sub_uid | None | Yes |
POST | Query sub-account (Cross) | sub_uid | valuation_asset | Yes |
POST | Query sub-account position (Isolated) | contract_code, sub_uid | None | Yes |
POST | Query sub-account position (Cross) | sub_uid | contract_code | Yes |
POST | Query account financial records | None | contract_code, type, start_time, end_time, page_index, page_size, direct | Yes |
POST | Query financial records via fields | None | contract_code, type, start_time, end_time, page_index, page_size, direct | Yes |
POST | Query available leverage (Isolated) | contract_code | None | Yes |
POST | Query available leverage (Cross) | None | None | Yes |
POST | Query order limit | None | contract_code, order_price_type | Yes |
POST | Query swap trading fee | None | contract_code | Yes |
POST | Query transfer limit (Isolated) | contract_code | None | Yes |
POST | Query transfer limit (Cross) | None | None | Yes |
POST | Query position limit (Isolated) | contract_code | None | Yes |
POST | Query position limit (Cross) | None | None | Yes |
POST | Query position limit all leverages (Isolated) | contract_code | None | Yes |
POST | Query position limit all leverages (Cross) | None | None | Yes |
POST | Transfer between master and sub | sub_uid, asset, amount, type | client_order_id | Yes |
POST | Query transfer records | None | sub_uid, transfer_type, page_index, page_size, direct, sort_by | Yes |
POST | Transfer between margin accounts | asset, amount, from_margin_account, to_margin_account | client_order_id | Yes |
GET | Query API indicator disable info | None | None | Yes |
POST | Automatic Order Cancellation | timeout | contract_code | Yes |
Trade Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST | Query Trade State (Cross) | None | None | Yes |
POST | Switch Position Mode (Isolated) | contract_code, mode | None | Yes |
POST | Switch Position Mode (Cross) | mode | contract_code | Yes |
POST | Place an Order (Isolated) | contract_code, client_order_id, price, volume, direction, offset, lever_rate, order_price_type | tp_trigger_price, tp_order_price, tp_order_price_type, sl_trigger_price, sl_order_price, sl_order_price_type, reduce_only, hf_order_type | Yes |
POST | Place An Order (Cross) | contract_code, client_order_id, price, volume, direction, offset, lever_rate, order_price_type | tp_trigger_price, tp_order_price, tp_order_price_type, sl_trigger_price, sl_order_price, sl_order_price_type, reduce_only, hf_order_type | Yes |
POST | Place a Batch of Orders (Isolated) | orders_data | None | Yes |
POST | Place A Batch Of Orders (Cross) | orders_data | None | Yes |
POST | Cancel an Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST | Cancel An Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST | Cancel All Orders (Isolated) | contract_code | direction, offset | Yes |
POST | Cancel All Orders (Cross) | None | contract_code, direction, offset | Yes |
POST | Switch Leverage (Isolated) | contract_code, lever_rate | None | Yes |
POST | Switch Leverage (Cross) | lever_rate | contract_code | Yes |
POST | Get Information of an Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST | Get Information of order (Cross) | order_id | contract_code, client_order_id | Yes |
POST | Order details acquisition (Isolated) | contract_code, order_id | created_at, page_index, page_size, client_order_id | Yes |
POST | Get Detail Information (Cross) | order_id | contract_code, created_at, page_index, page_size, client_order_id | Yes |
POST | Current unfilled orders (Isolated) | contract_code | page_index, page_size | Yes |
POST | Current unfilled orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST | Get History Orders (Isolated) | contract_code, trade_type | type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST | Get History Orders (Cross) | trade_type | contract_code, type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST | History Orders via Fields (Isolated) | contract_code, trade_type | type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST | History Orders via Fields (Cross) | trade_type | contract_code, type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST | History Match Results (Isolated) | contract_code, trade_type | start_time, end_time, page_index, page_size, direct | Yes |
POST | History Match Results (Cross) | trade_type | contract_code, start_time, end_time, page_index, page_size, direct | Yes |
POST | Match Results via Fields (Isolated) | contract_code, trade_type | start_time, end_time, page_index, page_size, direct | Yes |
POST | Match Results via Fields (Cross) | trade_type | contract_code, start_time, end_time, page_index, page_size, direct | Yes |
POST | Lightning Close Order (Isolated) | contract_code, volume, direction | client_order_id, order_price_type | Yes |
POST | Lightning Close Position (Cross) | contract_code, volume, direction | client_order_id, order_price_type | Yes |
GET | Query position mode (Isolated) | contract_code | None | Yes |
GET | Query position mode (Cross) | None | contract_code | Yes |
Strategy Order Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST | Place Trigger Order (Isolated) | contract_code, trigger_type, trigger_price, order_price, volume, direction, offset, lever_rate, order_price_type | client_order_id | Yes |
POST | Place Trigger Order (Cross) | contract_code, trigger_type, trigger_price, order_price, volume, direction, offset, lever_rate, order_price_type | client_order_id | Yes |
POST | Cancel Trigger Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST | Cancel Trigger Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST | Cancel All Trigger Orders (Isolated) | contract_code | direction, offset | Yes |
POST | Cancel All Trigger Orders (Cross) | None | contract_code, direction, offset | Yes |
POST | Query Trigger Order Open Orders (Isolated) | contract_code | page_index, page_size | Yes |
POST | Query Trigger Order Open Orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST | Query Trigger Order History (Isolated) | contract_code | trigger_type, status, page_index, page_size, sort_by, direct | Yes |
POST | Query Trigger Order History (Cross) | None | contract_code, trigger_type, status, page_index, page_size, sort_by, direct | Yes |
POST | Set TP/SL Order (Isolated) | contract_code, volume, tp_trigger_price, tp_order_price, sl_trigger_price, sl_order_price, direction | tp_order_price_type, sl_order_price_type, client_order_id | Yes |
POST | Set TP/SL Order (Cross) | contract_code, volume, tp_trigger_price, tp_order_price, sl_trigger_price, sl_order_price, direction | tp_order_price_type, sl_order_price_type, client_order_id | Yes |
POST | Cancel TP/SL Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST | Cancel TP/SL Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST | Cancel all TP/SL Orders (Isolated) | contract_code | None | Yes |
POST | Cancel all TP/SL Orders (Cross) | None | contract_code | Yes |
POST | Query Open TP/SL Orders (Isolated) | contract_code | page_index, page_size | Yes |
POST | Query Open TP/SL Orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST | Query TP/SL History Orders (Isolated) | contract_code | status, page_index, page_size, sort_by, direct | Yes |
POST | Query TP/SL History Orders (Cross) | None | contract_code, status, page_index, page_size, sort_by, direct | Yes |
POST | Query TP/SL Order Info (Isolated) | contract_code, order_id | client_order_id | Yes |
POST | Query TP/SL Order Info (Cross) | order_id | contract_code, client_order_id | Yes |
POST | Place Trailing Order (Isolated) | contract_code, volume, direction, offset, lever_rate, trailing_amount, trailing_percent, order_price_type | client_order_id | Yes |
POST | Place Trailing Order (Cross) | contract_code, volume, direction, offset, lever_rate, trailing_amount, trailing_percent, order_price_type | client_order_id | Yes |
POST | Cancel Trailing Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST | Cancel Trailing Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST | Cancel All Trailing Orders (Isolated) | contract_code | direction, offset | Yes |
POST | Cancel All Trailing Orders (Cross) | None | contract_code, direction, offset | Yes |
POST | Unfilled trailing orders (Isolated) | contract_code | page_index, page_size | Yes |
POST | Unfilled trailing orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST | History Trailing Orders (Isolated) | contract_code | status, page_index, page_size, sort_by, direct | Yes |
POST | History Trailing Orders (Cross) | None | contract_code, status, page_index, page_size, sort_by, direct | Yes |
Transferring Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST | Query Transfer State (Cross) | None | None | Yes |
POST | Transfer between Spot and Futures | asset, amount, type | client_order_id | Yes |
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:30Security
Share Credentials
Users can provide HTX API credentials by sending a file where the content is in the following format:
bash
fe45419a...xyz
secretabc...keyNever 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: MainnetListing 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
bash
## 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 tradingAgent 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 with masked display confirmation
TOOLS.md
User Agent Header
Include header with the following string:
User-Agenthtx-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 parameter represents the number of contracts
volume - 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
- All request endpoints must match the endpoints specified in the documentation.