About usdt-m-futures
A trading skill for HTX USDT-M Futures users, documenting public and authenticated APIs for market, account, position, and funding-rate data, along with some trading and account operations.
Key features
- 01Query futures market data
- 02View account and position details
- 03Retrieve funding rates and settlement records
- 04Check leverage, limits, and system status
Use cases
- 01Inspect contract depth and K-lines
- 02Query account assets and positions
- 03Review historical funding rates and liquidation data
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ htx-exchange/ htx-skills-hub --skill usdt-m-futuresAfter installing, type/usdt-m-futuresin Claude Code to confirm it loaded.
Bundled filesLICENSE.mdreferences/authentication.md
Details
From the project READMEHTX 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 https://api.hbdm.com (or https://api.hbdm.vn for AWS).
Reference Data
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
GET /linear-swap-api/v3/swap_unified_account_type | Account type query | None | None | Yes |
POST /linear-swap-api/v3/swap_switch_account_type | Account Type Change | account_type | None | Yes |
GET /linear-swap-api/v1/swap_funding_rate | Query funding rate | contract_code | None | No |
GET /linear-swap-api/v1/swap_batch_funding_rate | Query a Batch of Funding Rate | contract_code | None | No |
GET /linear-swap-api/v1/swap_historical_funding_rate | Query historical funding rate | contract_code | page_index, page_size | No |
GET /linear-swap-api/v1/swap_liquidation_orders | Query Liquidation Orders | contract_code | trade_type, create_date, page_index, page_size | No |
GET /linear-swap-api/v1/swap_settlement_records | Query historical settlement records | contract_code | page_index, page_size | No |
GET /linear-swap-api/v1/swap_elite_account_ratio | Query Top Trader Sentiment Index (Account) | contract_code | period | No |
GET /linear-swap-api/v1/swap_elite_position_ratio | Query Top Trader Sentiment Index (Position) | contract_code | period | No |
GET /linear-swap-api/v1/swap_system_status | Query information on system status (Isolated) | contract_code | None | No |
POST /linear-swap-api/v1/swap_cross_tiered_margin_info | Query information on Tiered Margin (Cross) | None | None | Yes |
POST /linear-swap-api/v1/swap_tiered_margin_info | Query information on Tiered Margin (Isolated) | contract_code | None | Yes |
GET /linear-swap-api/v1/swap_estimated_settlement_price | Get the estimated settlement price | contract_code | None | No |
POST /linear-swap-api/v1/swap_adjustment_factor | Query Tiered Adjustment Factor (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_adjustment_factor | Query Tiered Adjustment Factor (Cross) | None | None | Yes |
GET /v1/insurance_fund_info | Query risk reserve balance information | contract_code | None | No |
GET /v1/insurance_fund_history | Query historical risk reserves | contract_code | page_index, page_size | No |
GET /linear-swap-api/v1/swap_price_limit | Query Swap Price Limitation | contract_code | None | No |
GET /linear-swap-api/v1/swap_open_interest | Get Swap Open Interest Information | contract_code | None | No |
GET /linear-swap-api/v1/swap_contract_info | Query Contract Info | contract_code | None | No |
GET /linear-swap-api/v1/swap_index | Query Swap Index Price Information | contract_code | None | No |
GET /linear-swap-api/market/swap_contract_constituents | Get index components | index_code | None | No |
GET /linear-swap-api/v1/swap_query_elements | Contract Elements | contract_code | None | No |
GET /linear-swap-api/v1/swap_timestamp | Get current system timestamp | None | None | No |
GET https://api.hbdm.com/heartbeat/ | Query whether the system is available | None | None | No |
Market Data
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
GET /linear-swap-ex/market/depth | Get Market Depth | contract_code | type | No |
GET /linear-swap-ex/market/bbo | Get Market BBO Data | contract_code | None | No |
GET /linear-swap-ex/market/kline | Get KLine Data | contract_code, period | size, from, to | No |
GET /linear-swap-ex/market/mark_price_kline | Get Kline Data of Mark Price | contract_code, period | size, from, to | No |
GET /linear-swap-ex/market/overview | Get Market Data Overview | contract_code | None | No |
GET /linear-swap-ex/market/batch_overview | Get a Batch of Market Data Overview | contract_code | None | No |
GET /linear-swap-ex/market/trade | Query The Last Trade of a Contract | contract_code | None | No |
GET /linear-swap-ex/market/trades | Query a Batch of Trade Records | contract_code | size | No |
GET /linear-swap-ex/market/open_interest | Query information on open interest | contract_code | None | No |
GET /linear-swap-ex/market/premium_index_kline | Query Premium Index Kline Data | contract_code, period | size, from, to | No |
GET /linear-swap-ex/market/estimated_funding_rate_kline | Query Estimated Funding Rate Kline | contract_code, period | size, from, to | No |
Account Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST /linear-swap-api/v1/swap_account_info | Query Asset Valuation | None | valuation_asset | Yes |
POST /linear-swap-api/v1/swap_account_info | Query Account Information (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_account_info | Query Account Information (Cross) | None | valuation_asset | Yes |
POST /linear-swap-api/v1/swap_position_info | Query Position Information (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_position_info | Query Position Information (Cross) | None | contract_code | Yes |
POST /linear-swap-api/v1/swap_account_position_info | Query Assets And Positions (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_account_position_info | Query Assets And Positions (Cross) | None | valuation_asset | Yes |
POST /linear-swap-api/v1/swap_sub_account_list | Set Sub-Account Trading Permissions | sub_uid | trades | Yes |
POST /linear-swap-api/v1/swap_account_info_list | Query all sub-accounts (Isolated) | None | None | Yes |
POST /linear-swap-api/v1/swap_cross_account_info_list | Query all sub-accounts (Cross) | None | valuation_asset | Yes |
POST /linear-swap-api/v1/swap_account_info_sub | Query single sub-account (Isolated) | contract_code, sub_uid | None | Yes |
POST /linear-swap-api/v1/swap_cross_account_info_sub | Query sub-account (Cross) | sub_uid | valuation_asset | Yes |
POST /linear-swap-api/v1/swap_position_info_sub | Query sub-account position (Isolated) | contract_code, sub_uid | None | Yes |
POST /linear-swap-api/v1/swap_cross_position_info_sub | Query sub-account position (Cross) | sub_uid | contract_code | Yes |
POST /linear-swap-api/v3/swap_financial_record | Query account financial records | None | contract_code, type, start_time, end_time, page_index, page_size, direct | Yes |
POST /linear-swap-api/v3/swap_financial_record_exact | Query financial records via fields | None | contract_code, type, start_time, end_time, page_index, page_size, direct | Yes |
POST /linear-swap-api/v1/swap_available_level_rate | Query available leverage (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_available_level_rate | Query available leverage (Cross) | None | None | Yes |
POST /linear-swap-api/v1/swap_order_limit | Query order limit | None | contract_code, order_price_type | Yes |
POST /linear-swap-api/v1/swap_fee | Query swap trading fee | None | contract_code | Yes |
POST /linear-swap-api/v1/swap_transfer_limit | Query transfer limit (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_transfer_limit | Query transfer limit (Cross) | None | None | Yes |
POST /linear-swap-api/v1/swap_position_limit | Query position limit (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_position_limit | Query position limit (Cross) | None | None | Yes |
POST /linear-swap-api/v1/swap_lever_position_limit | Query position limit all leverages (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_lever_position_limit | Query position limit all leverages (Cross) | None | None | Yes |
POST /linear-swap-api/v1/swap_master_sub_transfer | Transfer between master and sub | sub_uid, asset, amount, type | client_order_id | Yes |
POST /linear-swap-api/v1/swap_master_sub_transfer_record | Query transfer records | None | sub_uid, transfer_type, page_index, page_size, direct, sort_by | Yes |
POST /linear-swap-api/v1/swap_transfer_inner | Transfer between margin accounts | asset, amount, from_margin_account, to_margin_account | client_order_id | Yes |
GET /linear-swap-api/v1/swap_api_trading_status | Query API indicator disable info | None | None | Yes |
POST /linear-swap-api/v1/linear-cancel-after | Automatic Order Cancellation | timeout | contract_code | Yes |
Trade Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST /linear-swap-api/v1/swap_cross_query_trade_state | Query Trade State (Cross) | None | None | Yes |
POST /linear-swap-api/v1/swap_switch_position_mode | Switch Position Mode (Isolated) | contract_code, mode | None | Yes |
POST /linear-swap-api/v1/swap_cross_switch_position_mode | Switch Position Mode (Cross) | mode | contract_code | Yes |
POST /linear-swap-api/v1/swap_order | 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 /linear-swap-api/v1/swap_cross_order | 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 /linear-swap-api/v1/swap_cross_batch_orders | Place A Batch Of Orders (Cross) | orders_data | None | Yes |
POST /linear-swap-api/v1/swap_cancel | Cancel an Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST /linear-swap-api/v1/swap_cross_cancel | Cancel An Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST /linear-swap-api/v1/swap_cancelall | Cancel All Orders (Isolated) | contract_code | direction, offset | Yes |
POST /linear-swap-api/v1/swap_cross_cancelall | Cancel All Orders (Cross) | None | contract_code, direction, offset | Yes |
POST /linear-swap-api/v1/swap_switch_lever_rate | Switch Leverage (Isolated) | contract_code, lever_rate | None | Yes |
POST /linear-swap-api/v1/swap_cross_switch_lever_rate | Switch Leverage (Cross) | lever_rate | contract_code | Yes |
POST /linear-swap-api/v1/swap_order_info | Get Information of an Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST /linear-swap-api/v1/swap_cross_order_info | Get Information of order (Cross) | order_id | contract_code, client_order_id | Yes |
POST /linear-swap-api/v1/swap_order_detail | Order details acquisition (Isolated) | contract_code, order_id | created_at, page_index, page_size, client_order_id | Yes |
POST /linear-swap-api/v1/swap_cross_order_detail | Get Detail Information (Cross) | order_id | contract_code, created_at, page_index, page_size, client_order_id | Yes |
POST /linear-swap-api/v1/swap_openorders | Current unfilled orders (Isolated) | contract_code | page_index, page_size | Yes |
POST /linear-swap-api/v1/swap_cross_openorders | Current unfilled orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST /linear-swap-api/v3/swap_hisorders | Get History Orders (Isolated) | contract_code, trade_type | type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST /linear-swap-api/v3/swap_cross_hisorders | Get History Orders (Cross) | trade_type | contract_code, type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST /linear-swap-api/v3/swap_hisorders_exact | History Orders via Fields (Isolated) | contract_code, trade_type | type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST /linear-swap-api/v3/swap_cross_hisorders_exact | History Orders via Fields (Cross) | trade_type | contract_code, type, start_time, end_time, direct, page_index, page_size, sort_by | Yes |
POST /linear-swap-api/v3/swap_matchresults | History Match Results (Isolated) | contract_code, trade_type | start_time, end_time, page_index, page_size, direct | Yes |
POST /linear-swap-api/v3/swap_cross_matchresults | History Match Results (Cross) | trade_type | contract_code, start_time, end_time, page_index, page_size, direct | Yes |
POST /linear-swap-api/v3/swap_matchresults_exact | Match Results via Fields (Isolated) | contract_code, trade_type | start_time, end_time, page_index, page_size, direct | Yes |
POST /linear-swap-api/v3/swap_cross_matchresults_exact | Match Results via Fields (Cross) | trade_type | contract_code, start_time, end_time, page_index, page_size, direct | Yes |
POST /linear-swap-api/v1/swap_lightning_close_position | Lightning Close Order (Isolated) | contract_code, volume, direction | client_order_id, order_price_type | Yes |
POST /linear-swap-api/v1/swap_cross_lightning_close_position | Lightning Close Position (Cross) | contract_code, volume, direction | client_order_id, order_price_type | Yes |
GET /linear-swap-api/v1/swap_position_side | Query position mode (Isolated) | contract_code | None | Yes |
GET /linear-swap-api/v1/swap_cross_position_side | Query position mode (Cross) | None | contract_code | Yes |
Strategy Order Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST /linear-swap-api/v1/swap_trigger_order | 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 /linear-swap-api/v1/swap_cross_trigger_order | 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 /linear-swap-api/v1/swap_trigger_cancel | Cancel Trigger Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST /linear-swap-api/v1/swap_cross_trigger_cancel | Cancel Trigger Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST /linear-swap-api/v1/swap_trigger_cancelall | Cancel All Trigger Orders (Isolated) | contract_code | direction, offset | Yes |
POST /linear-swap-api/v1/swap_cross_trigger_cancelall | Cancel All Trigger Orders (Cross) | None | contract_code, direction, offset | Yes |
POST /linear-swap-api/v1/swap_trigger_openorders | Query Trigger Order Open Orders (Isolated) | contract_code | page_index, page_size | Yes |
POST /linear-swap-api/v1/swap_cross_trigger_openorders | Query Trigger Order Open Orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST /linear-swap-api/v1/swap_trigger_hisorders | Query Trigger Order History (Isolated) | contract_code | trigger_type, status, page_index, page_size, sort_by, direct | Yes |
POST /linear-swap-api/v1/swap_cross_trigger_hisorders | Query Trigger Order History (Cross) | None | contract_code, trigger_type, status, page_index, page_size, sort_by, direct | Yes |
POST /linear-swap-api/v1/swap_tpsl_order | 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 /linear-swap-api/v1/swap_cross_tpsl_order | 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 /linear-swap-api/v1/swap_tpsl_cancel | Cancel TP/SL Order (Isolated) | contract_code, order_id | client_order_id | Yes |
POST /linear-swap-api/v1/swap_cross_tpsl_cancel | Cancel TP/SL Order (Cross) | order_id | contract_code, client_order_id | Yes |
POST /linear-swap-api/v1/swap_tpsl_cancelall | Cancel all TP/SL Orders (Isolated) | contract_code | None | Yes |
POST /linear-swap-api/v1/swap_cross_tpsl_cancelall | Cancel all TP/SL Orders (Cross) | None | contract_code | Yes |
POST /linear-swap-api/v1/swap_tpsl_openorders | Query Open TP/SL Orders (Isolated) | contract_code | page_index, page_size | Yes |
POST /linear-swap-api/v1/swap_cross_tpsl_openorders | Query Open TP/SL Orders (Cross) | None | contract_code, page_index, page_size | Yes |
POST /linear-swap-api/v1/swap_tpsl_hisorders | Query TP/SL History Orders (Isolated) | contract_code | status, page_index, page_size, sort_by, direct | Yes |
POST /linear-swap-api/v1/swap_cross_tpsl_hisorders | Query TP/SL History Orders (Cross) | None | contract_code, status, page_index, page_size, sort_by, direct | Yes |
Transferring Interface
| Endpoint | Description | Required | Optional | Authentication |
|---|---|---|---|---|
POST /linear-swap-api/v1/swap_cross_transfer_state | Query Transfer State (Cross) | None | None | 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: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.mdwith 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
volumeparameter 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
- All request endpoints must match the endpoints specified in the documentation.