GET
/
orders
Get all orders
curl --request GET \
  --url https://api.exchange.coinbase.com/orders \
  --header 'cb-access-key: <api-key>' \
  --header 'cb-access-passphrase: <api-key>' \
  --header 'cb-access-sign: <api-key>' \
  --header 'cb-access-timestamp: <api-key>'
[
  {
    "id": "a9625b04-fc66-4999-a876-543c3684d702",
    "price": "10.00000000",
    "size": "1.00000000",
    "product_id": "BTC-USD",
    "profile_id": "8058d771-2d88-4f0f-ab6e-299c153d4308",
    "side": "buy",
    "type": "limit",
    "time_in_force": "GTC",
    "post_only": true,
    "max_floor": "4",
    "created_at": "2020-03-11T20:48:46.622Z",
    "fill_fees": "0.0000000000000000",
    "filled_size": "0.00000000",
    "executed_value": "0.0000000000000000",
    "status": "open",
    "settled": false
  }
]

Pending Orders

Orders with a “pending” status have fewer fields in the response.
  • Pending limit orders do not have stp, time_in_force, expire_time, and post_only.
  • Pending market orders have the same fields as a pending limit order minus price and size, and no market specific fields (funds, specified_funds).
  • Pending stop orders have the same fields as a pending limit order and no stop specific fields (stop, stop_price).
Order TypeDoes Not Have These Fields
Pending Limit Orderstp, time_in_force, expire_time, post_only
Pending Market Orderstp, time_in_force, expire_time, post_only, price, size, funds, specified_funds
Pending Stop Orderstp, time_in_force, expire_time, post_only, stop, stop_price

API Key Permissions

This endpoint requires either the “view” or “trade” permission.
To specify multiple statuses, use the status query argument multiple times: /orders?status=done&status=pending.

Order Status and Settlement

Orders which are no longer resting on the order book, are marked with the done status. There is a small window between an order being done and settled. An order is settled when all of the fills have settled and the remaining holds (if any) have been removed.

Polling

For high-volume trading it is strongly recommended that you maintain your own list of open orders and use one of the streaming market data feeds to keep it updated. You should poll the open orders endpoint once when you start trading to obtain the current state of any open orders. executed_value is the cumulative match size * price and is only present for orders placed after 2016-05-20.
Open orders can change state between the request and the response depending on market conditions.

Pagination

This request is paginated. See Pagination for more information.

Authorizations

cb-access-key
string
header
required
cb-access-passphrase
string
header
required
cb-access-sign
string
header
required
cb-access-timestamp
string
header
required

Query Parameters

profile_id
string

Filter results by a specific profile_id

product_id
string

Filter results by a specific product_id

sortedBy
enum<string>
default:created_at

Sort criteria for results.

Available options:
created_at,
price,
size,
order_id,
side,
type
sorting
enum<string>
default:desc

Ascending or descending order, by sortedBy

Available options:
desc,
asc
start_date
string<date-time>

Filter results by minimum posted date

end_date
string<date-time>

Filter results by maximum posted date

before
string

Used for pagination. Sets start cursor to before date.

after
string

Used for pagination. Sets end cursor to after date.

limit
integer
default:100
required

Limit on number of results to return.

status
enum<string>[]
required

Array with order statuses to filter by.

market_type
string
default:spot

Market type which the order was traded in.

Response

id
string
required

uuid

product_id
string
required

book the order was placed on

side
enum<string>
default:buy
required
Available options:
buy,
sell
type
enum<string>
default:limit
required
Available options:
limit,
market,
stop
post_only
boolean
required

if true, forces order to be maker only

created_at
string<date-time>
required

timestamp at which order was placed

fill_fees
string
required

fees paid on current filled amount

filled_size
string
required

amount (in base currency) of the order that has been filled

status
enum<string>
default:open
required
Available options:
open,
pending,
rejected,
done,
active,
received,
all
settled
boolean
required

true if funds have been exchanged and settled

price
string

price per unit of base currency

size
string

amount of base currency to buy/sell

profile_id
string

profile_id that placed the order

funds
string

amount of quote currency to spend (for market orders)

specified_funds
string

funds with fees

time_in_force
enum<string>
default:GTC
Available options:
GTC,
GTT,
IOC,
FOK
expire_time
string<date-time>

timestamp at which order expires

done_at
string<date-time>

timestamp at which order was done

done_reason
string

reason order was done (filled, rejected, or otherwise)

reject_reason
string

reason order was rejected by engine

executed_value
string
stop
enum<string>
default:loss
Available options:
loss,
entry
stop_price
string

price (in quote currency) at which to execute the order

funding_amount
string
client_oid
string

client order id

market_type
string

market type where order was traded

max_floor
string

maximum visible quantity for iceberg order

secondary_order_id
string

order id for the visible order for iceberg order

stop_limit_price
string

stop limit price for TPSL order