curl --request POST \
--url https://api.paperdrill.dev/v1/orders \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"symbol": "SOL_USD",
"side": "BUY",
"type": "LIMIT",
"price": "125.50",
"qty": "2.00"
}
'
{
"id": "order_123",
"userId": "user_123",
"symbol": "SOL_USD",
"side": "BUY",
"type": "LIMIT",
"status": "PARTIALLY_FILLED",
"price": "125.50",
"qty": "2.00",
"filledQty": "0.50",
"averagePrice": "125.25",
"createdAt": "2026-09-19T10:00:00.000Z"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "qty",
"message": "invalid decimal format"
}
]
},
"requestId": "f4c0baf4-b8d2-4c9a-a17b-c8656c4a7b0e"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "qty",
"message": "invalid decimal format"
}
]
},
"requestId": "f4c0baf4-b8d2-4c9a-a17b-c8656c4a7b0e"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "qty",
"message": "invalid decimal format"
}
]
},
"requestId": "f4c0baf4-b8d2-4c9a-a17b-c8656c4a7b0e"
}Orders
Create an order
Creates a limit or market order. The account’s email must be verified.
Requires the ORDER_CREATE scope.
POST
/
orders
curl --request POST \
--url https://api.paperdrill.dev/v1/orders \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"symbol": "SOL_USD",
"side": "BUY",
"type": "LIMIT",
"price": "125.50",
"qty": "2.00"
}
'
{
"id": "order_123",
"userId": "user_123",
"symbol": "SOL_USD",
"side": "BUY",
"type": "LIMIT",
"status": "PARTIALLY_FILLED",
"price": "125.50",
"qty": "2.00",
"filledQty": "0.50",
"averagePrice": "125.25",
"createdAt": "2026-09-19T10:00:00.000Z"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "qty",
"message": "invalid decimal format"
}
]
},
"requestId": "f4c0baf4-b8d2-4c9a-a17b-c8656c4a7b0e"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "qty",
"message": "invalid decimal format"
}
]
},
"requestId": "f4c0baf4-b8d2-4c9a-a17b-c8656c4a7b0e"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Request validation failed",
"details": [
{
"field": "qty",
"message": "invalid decimal format"
}
]
},
"requestId": "f4c0baf4-b8d2-4c9a-a17b-c8656c4a7b0e"
}Authorizations
A scoped API key created in the PaperDrill dashboard.
Body
application/json
- Option 1
- Option 2
Example:
"SOL_USD"
Available options:
BUY, SELL Allowed value:
"LIMIT"A non-negative decimal encoded as a string.
Pattern:
^\d+(\.\d+)?$Example:
"125.50"
A non-negative decimal encoded as a string.
Pattern:
^\d+(\.\d+)?$Example:
"125.50"
Response
Order accepted by the matching engine.
Available options:
BUY, SELL Available options:
LIMIT, MARKET Available options:
OPEN, PARTIALLY_FILLED, FILLED, CANCELLED A non-negative decimal encoded as a string.
Pattern:
^\d+(\.\d+)?$Example:
"125.50"
A non-negative decimal encoded as a string.
Pattern:
^\d+(\.\d+)?$Example:
"125.50"
Present for limit orders.
Pattern:
^\d+(\.\d+)?$Example:
"125.50"
Present after at least one fill.
Pattern:
^\d+(\.\d+)?$Example:
"125.50"