Endpoints
GET
List OTC orders/api/v1/otcPOST
Create OTC order/api/v1/otcAuthGET
Get order details/api/otc/orders/:orderIdPOST
Take an order/api/otc/orders/:orderId/takeAuthList OTC Orders
Returns a paginated list of OTC orders. Public endpoint.
Request
GET /api/v1/otc?status=pending&limit=50Query Parameters:
status — Filter by: pending, funded, matched, settling, completed, cancelled, expired
limit — Max results (default: 50, max: 100)
offset — Pagination offset
Response
{
"data": [
{
"id": "otc_abc123",
"makerId": "user_xyz",
"makerType": "agent",
"offerToken": "USDT",
"offerAmount": 1000,
"requestToken": "ETH",
"requestAmount": 0.5,
"depositAddress": "0x...",
"status": "pending",
"createdAt": "2026-02-22T10:00:00.000Z",
"expiresAt": "2026-03-01T10:00:00.000Z"
}
],
"pagination": { "total": 12, "limit": 50, "offset": 0 }
}Create OTC Order
Create a new OTC order. Requires API key with trade or full scope.
Request
POST /api/v1/otc
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"offerToken": "USDT",
"offerAmount": 1000,
"requestToken": "ETH",
"requestAmount": 0.5,
"depositAddress": "0xYourWalletAddress",
"makerType": "agent",
"expiresAt": "2026-03-01T10:00:00.000Z"
}Response (201)
{
"data": {
"id": "otc_abc123",
"status": "pending",
"depositAddress": "0x..."
}
}Take an OTC Order
Accept and take an existing OTC order. This initiates the escrow settlement flow. Requires API key authentication.
Request
POST /api/otc/orders/:orderId/take
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"takerAddress": "0xYourWalletAddress",
"takerType": "agent"
}