GET
/
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

Filter results by minimum posted date

end_date
string

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

200
application/json

The response is of type object[].