Skip to main content
POST

Authorizations

Authorization
string
header
required

An API key from the account page, sent as Authorization: Bearer tapi_….

Headers

Prefer
string

wait=N: wait up to N seconds (0 to 15) for the order to finish. The default is wait=5.

Example:

"wait=5"

Body

application/json
client_order_id
string
required

Your ID for the order, 1 to 64 characters of letters, digits, ., _, : and -. Unique per account, forever.

Pattern: ^[A-Za-z0-9._:-]{1,64}$
market
string
required

A market symbol from GET /v1/markets. Case-insensitive, and must match exactly.

Example:

"BTC"

side
enum<string>
required
Available options:
buy,
sell
type
enum<string>
required

market fills now at the best available prices, within 0.5% of the current price. limit fills now at your price or better; whatever cannot fill at once is canceled.

Available options:
market,
limit
value
string
required

How much to buy or sell, in USD, with at most 2 decimals. The size is this value divided by the order's price limit, rounded down to the market's size step, so the order never costs more than this.

Pattern: ^-?[0-9]+(\.[0-9]+)?$
Example:

"250.00"

price
string

Required for limit orders, refused for market. The worst price you accept. Rounded in your favour to the market's price precision.

Pattern: ^-?[0-9]+(\.[0-9]+)?$
reduce_only
boolean
default:false

When true, the order can only reduce your position. It never opens one or flips a long into a short.

metadata
object

Up to 20 keys of your own, returned with the order and never interpreted. Keys up to 40 characters of letters, digits, _, . and -; string values up to 500 characters.

Response

The client_order_id already names an identical order. This is that order; nothing new was placed.

object
string
required
Allowed value: "order"
id
string
required

Our ID for the order.

client_order_id
string
required

Your ID for the order, 1 to 64 characters of letters, digits, ., _, : and -. Unique per account, forever.

Pattern: ^[A-Za-z0-9._:-]{1,64}$
market
string
required
side
enum<string>
required
Available options:
buy,
sell
type
enum<string>
required

market fills now at the best available prices, within 0.5% of the current price. limit fills now at your price or better; whatever cannot fill at once is canceled.

Available options:
market,
limit
status
enum<string>
required

pending: recorded, and possibly sent; the outcome is not known yet. filled: the whole size filled. canceled: filled partly or not at all; the rest found no price within the limit. rejected: refused; nothing filled. More statuses will be added. Treat a status you don't recognise as not finished.

Available options:
pending,
filled,
canceled,
rejected
status_reason
object | null
required

Why an order is canceled or rejected. null otherwise.

requested_value
string | null
required

The value you sent. null for a close by percent or of the whole position.

requested_percent
string | null
required

The percent of a close. null otherwise.

reduce_only
boolean
required
size
string | null
required

The size sent to the market, in the market's units. null until the order is sized.

price
string | null
required

Your limit price as used. null for market orders.

price_limit
string | null
required

The worst price the order could fill at. For market orders, 0.5% from the price when it was placed.

time_in_force
enum<string>
required

Always ioc (immediate or cancel) for now.

Available options:
ioc
filled_size
string
required

A decimal number as a string, for example "250.00". Requests also accept a JSON number.

Pattern: ^-?[0-9]+(\.[0-9]+)?$
average_fill_price
string | null
required
filled_value
string | null
required

The USD value that filled.

fee
string | null
required

Total fees paid, in USD, exact to 6 decimals. Can arrive shortly after the order finishes.

position_effect
enum<string> | null
required

What the order did to your position. null when nothing filled.

Available options:
open,
increase,
reduce,
close,
flip,
null
summary
string
required

What happened, in plain English. For people and language models; branch on fields, not on this text.

notes
object[]
required
metadata
object
required

Up to 20 keys of your own, returned with the order and never interpreted. Keys up to 40 characters of letters, digits, _, . and -; string values up to 500 characters.

created_at
string<date-time>
required

RFC 3339 in UTC with milliseconds, for example 2026-09-27T14:30:00.123Z.

updated_at
string<date-time>
required

RFC 3339 in UTC with milliseconds, for example 2026-09-27T14:30:00.123Z.

completed_at
string<date-time> | null
required

When the order reached a final status.

timeline
object[]

Present only with expand[]=timeline.