Skip to main content
API Update
Initial invitation qualification now uses lifetime personal trading volume.Endpoints: POST /user/invitation-codes/job, GET /user/referrals/notional-volume.Creators receive their initial five invitations after reaching $100,000 of all-time personal trading volume, including subaccounts, rather than volume in the last 14 days. The qualification responses add self_lifetime_notional_volume; existing self_notional_volume remains the 14-day value. Referred volume does not count toward initial qualification. Existing grants and recurring invitation rules are unchanged.
Docs Update
REST API release notes now follow production deployments.Public REST API changes now appear in the REST API changelog after the corresponding API revision is available in production. The reference is rebuilt from the production OpenAPI document with each tracked release.
Breaking Change
Builder Web3 signed messages now link to the QFEX Client Agreement.Endpoints: GET /builder/web3/message, POST /builder/web3/api-key.The legal consent statement includes https://docs.qfex.com/legal/client-agreement beside the Client Agreement. Key issuance requires the updated statement, including this link.Migration: Request and sign a fresh message from GET /builder/web3/message. Submit that string unchanged to POST /builder/web3/api-key; messages without the agreement link are rejected.
Breaking Change
Builder Web3 registration now includes legal consent and an Arbitrum withdrawal address.Endpoints: GET /builder/web3/message, POST /builder/web3/api-key.The signed message now authorizes a trading API key and includes acceptance of the QFEX Client Agreement, Privacy Policy, and Cookie Policy. Messages without this consent are rejected. Successful key issuance records the acceptance date and registers the verified wallet address on ARBITRUM_ONE without duplicating an existing address.Migration: Request a fresh message from GET /builder/web3/message and sign the returned string unchanged before submitting it to POST /builder/web3/api-key. Clients that construct messages themselves must include the updated consent statement.
Market Data Update
market_stats wildcard subscriptions (symbols: ["*"]) now receive all-symbol snapshots every 10 seconds. Named-symbol subscriptions continue to update once per second. An initial snapshot is sent on subscription when data is available.The Market Stats reference and MDS Playground schema now document funding rates, rolling 24-hour traded quantity, and rolling 24-hour USD notional volume.
Breaking Change
modify_order now requires the reduce_only field. It must match the order being modified, as a modify cannot change reduce-only.Requests that omit it are rejected with InvalidJSONFormat, and a value that does not match the resting order is rejected with CANNOT_MODIFY_NO_SUCH_ORDER.See here for further details
Docs Update
Added builder codes: create and view a code over REST, then attach it on the Trade WebSocket auth message as params.builder_code. Public balances expose credited share as builder_rewards.See here and here for further details
Docs Update
Added default_max_leverage field to refdata response.See here for further details
Docs Update
Added funding scaling documentation. The final funding rate is now documented as scaled by 1/100, and the funding stream reflects the post-scaling value.See here, here, and here for further details
Docs Update
Added the fills channel and fill response payload documentation.See here for further details
Docs Update
Updated trades response to include execution_type.See here for further details
Docs Update
Updated order response to include trade_id. This is used for order responses with a status of FILLED, it provides the unique trade id of that fill.See here for further details
Docs Update
Updated get_user_trades endpoint to support more filtering.See here for further details
Docs Update
Updated stop order response type. Type is now STOP_LOSS and TAKE_PROFIT. Stop orders are shown in the orders key in get_orders_responseSee here and here for further details
Docs Update
Added documentation for stop orders.See here, here and here for further details
Docs Update
Added Close Position request.See here for further detailsThis is only intended for use in the frontend as a quick way to close a position.
Docs Update
Added HMAC-SHA256 authentication requirements for the trade WebSocket, including refreshed client samples.See here for further detailsDocumented the new cancel-on-disconnect channel with end-to-end examples for Python, Node.js, Go, and Java.See here for further details
v0.0.10
You must now include order type in a modify orderSee here for further details.
v0.0.10
You must now subscribe to order responses.See here for further details.