Close a position
Closes all or part of a position with a reduce-only market order, and returns that order exactly as placing an order does.
Send neither value nor percent to close the whole position at its exact size. A
partial close must be worth at least $10, unless it closes what remains.
Authorizations
An API key from the account page, sent as Authorization: Bearer tapi_….
Headers
wait=N: wait up to N seconds (0 to 15) for the order to finish. The default is wait=5.
"wait=5"
Path Parameters
A market symbol from GET /v1/markets, for example BTC or TSLA. Case-insensitive.
Body
Your ID for the order, 1 to 64 characters of letters, digits, ., _, : and -. Unique per account, forever.
^[A-Za-z0-9._:-]{1,64}$Close this much, in USD. Send at most one of value and percent.
^-?[0-9]+(\.[0-9]+)?$Close this percentage of the position, above 0 and up to 100.
^-?[0-9]+(\.[0-9]+)?$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 close. This is that order.
"order"Our ID for the order.
Your ID for the order, 1 to 64 characters of letters, digits, ., _, : and -. Unique per account, forever.
^[A-Za-z0-9._:-]{1,64}$buy, sell 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.
market, limit 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.
pending, filled, canceled, rejected Why an order is canceled or rejected. null otherwise.
The value you sent. null for a close by percent or of the whole position.
The percent of a close. null otherwise.
The size sent to the market, in the market's units. null until the order is sized.
Your limit price as used. null for market orders.
The worst price the order could fill at. For market orders, 0.5% from the price when it was placed.
Always ioc (immediate or cancel) for now.
ioc A decimal number as a string, for example "250.00". Requests also accept a JSON number.
^-?[0-9]+(\.[0-9]+)?$The USD value that filled.
Total fees paid, in USD, exact to 6 decimals. Can arrive shortly after the order finishes.
What the order did to your position. null when nothing filled.
open, increase, reduce, close, flip, null What happened, in plain English. For people and language models; branch on fields, not on this text.
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.
RFC 3339 in UTC with milliseconds, for example 2026-09-27T14:30:00.123Z.
RFC 3339 in UTC with milliseconds, for example 2026-09-27T14:30:00.123Z.
When the order reached a final status.
Present only with expand[]=timeline.