One Trading Trading API
Account order and trade endpoints (Bearer token, TRADE/READ scope)
Account order and trade endpoints (Bearer token, TRADE/READ scope)
openapi: 3.0.3
info:
title: One Fast Funding Trading API
version: '1.0'
description: 'REST API for the One Trading exchange ("Fast API"). Public market-data endpoints (currencies, instruments, order book, candlesticks, market ticker, fees, funding rates, server time) require no authentication. Account, trading and futures endpoints require a Bearer API token with the appropriate permission scope (Read / Trade / Withdraw / SUBACCOUNT_TRANSFER).
Provenance: this specification was reconstructed by API Evangelist from the provider''s public documentation index (https://docs.onetrading.com/llms.txt) and from live responses of the public endpoints. Request/response schemas for public endpoints reflect real observed payloads; authenticated operations are modeled from the documented operation catalog. It is not the provider''s official machine-readable contract.'
x-provenance:
generated: '2026-07-20'
method: generated
source:
- https://docs.onetrading.com/llms.txt
- https://api.onetrading.com/fast/v1/currencies
- https://api.onetrading.com/fast/v1/instruments
- https://api.onetrading.com/fast/v1/market-ticker
- https://api.onetrading.com/fast/v1/order-book/BTC_USDC
- https://api.onetrading.com/fast/v1/fees
- https://api.onetrading.com/fast/v1/funding-rate
- https://docs.onetrading.com/rest/trading/create-order.md
servers:
- url: https://api.onetrading.com/fast
description: Production
security:
- BearerToken: []
tags:
- name: Trading
description: Account order and trade endpoints (Bearer token, TRADE/READ scope)
paths:
/v1/account/balances:
get:
tags:
- Trading
operationId: getBalances
summary: Balances
description: Returns the balance details for an account. Requires READ scope.
responses:
'200':
description: Account balances
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/account/fees:
get:
tags:
- Trading
operationId: getAccountFees
summary: Account Fees
description: Current fees for account, calculated and combined across all subaccounts. Requires READ scope.
responses:
'200':
description: Account fees
'403':
description: Forbidden
/v1/account/orders:
get:
tags:
- Trading
operationId: getOrders
summary: Get Orders
description: Returns a paginated list of orders. Requires READ scope.
parameters:
- name: instrument_code
in: query
required: false
schema:
type: string
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
- name: max_page_size
in: query
required: false
schema:
type: integer
- name: cursor
in: query
required: false
schema:
type: string
responses:
'200':
description: Paginated orders
'403':
description: Forbidden
post:
tags:
- Trading
operationId: createOrder
summary: Create Order
description: Create a new order. Requires TRADE scope.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrderRequest'
responses:
'200':
description: Created order
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
tags:
- Trading
operationId: cancelAllOrders
summary: Cancel All Orders
description: Submits a cancel request for all open orders of an account. Requires TRADE scope.
responses:
'200':
description: Cancelled
'403':
description: Forbidden
/v1/account/orders/{order_id}:
get:
tags:
- Trading
operationId: getOrderByOrderId
summary: Get Order by Order ID
description: Get information about an existing order using the exchange generated order_id.
parameters:
- name: order_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Order
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
tags:
- Trading
operationId: cancelOrderByOrderId
summary: Cancel Order by Order ID
description: Submits a request to close an open order by providing a valid order_id. Requires TRADE scope.
parameters:
- name: order_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Cancelled
'404':
description: Not Found
/v1/account/orders/client/{client_id}:
get:
tags:
- Trading
operationId: getOrderByClientId
summary: Get Order by Client ID
description: Get information about an existing order using the user or exchange generated client_id.
parameters:
- name: client_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Order
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
'404':
description: Not Found
delete:
tags:
- Trading
operationId: cancelOrderByClientId
summary: Cancel Order by Client ID
description: Submits a request to cancel an open order by providing a valid client_id. Requires TRADE scope.
parameters:
- name: client_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Cancelled
'404':
description: Not Found
/v1/account/orders/{order_id}/trades:
get:
tags:
- Trading
operationId: getTradesForOrder
summary: Get Trades for Order
description: Get list of trades for a specific order.
parameters:
- name: order_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Trades for order
/v1/account/trades:
get:
tags:
- Trading
operationId: getTrades
summary: Get Trades
description: Retrieves trades executed within the specified date range, sorted by timestamp descending.
parameters:
- name: from
in: query
required: false
schema:
type: string
format: date-time
- name: to
in: query
required: false
schema:
type: string
format: date-time
- name: max_page_size
in: query
required: false
schema:
type: integer
- name: cursor
in: query
required: false
schema:
type: string
responses:
'200':
description: Paginated trades
/v1/account/trade/{trade_id}:
get:
tags:
- Trading
operationId: getTradeByTradeId
summary: Get Trade by Trade ID
description: Get information about an executed trade using the exchange generated trade_id.
parameters:
- name: trade_id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Trade
'404':
description: Not Found
components:
schemas:
CreateOrderRequest:
type: object
required:
- instrument_code
- type
- side
- amount
- price
properties:
instrument_code:
type: string
description: Market ID from the instruments endpoint
type:
type: string
enum:
- LIMIT
side:
type: string
enum:
- BUY
- SELL
amount:
type: string
description: Currency amount for the order
price:
type: string
description: Execution price
client_id:
type: string
format: uuid
description: User-provided unique identifier used to de-duplicate and look up the order.
time_in_force:
type: string
enum:
- GOOD_TILL_CANCELLED
- IMMEDIATE_OR_CANCELLED
- FILL_OR_KILL
- POST_ONLY
default: GOOD_TILL_CANCELLED
reserve_price:
type: string
description: Maximum price for MOVE orders
Order:
type: object
properties:
order_id:
type: string
format: uuid
client_id:
type: string
format: uuid
account_id:
type: string
format: uuid
instrument_code:
type: string
time:
type: string
format: date-time
side:
type: string
enum:
- BUY
- SELL
price:
type: string
amount:
type: string
type:
type: string
enum:
- LIMIT
time_in_force:
type: string
status:
type: string
Error:
type: object
description: One Trading error envelope. Errors carry a single machine-readable code string.
properties:
error:
type: string
example: INVALID_INSTRUMENT_CODE
securitySchemes:
BearerToken:
type: http
scheme: bearer
bearerFormat: JWT
description: 'API token generated in the One Trading UI, sent as ''Authorization: Bearer <token>''. Tokens carry one or more permission scopes: Read, Trade, Withdraw, SUBACCOUNT_TRANSFER.'