List OTC Offers Grouped by Token
Lists a node's OTC offers grouped by token: one row per token with the number of offers, the total quantity offered and the price range. The node must be inside your API key's node subtree. Offers still waiting for their on-chain creation to confirm are left out; offers in every other status (open, accepted, cancelled, rejected) are counted.
The node is a query filter and the call is a GET; it used to be a POST with the node in the path and the paging in a JSON body. A node with no offers answers an empty page.
Required permission: otc:view
Request
GET /v2/admin/otcs?node_id={node_id}&page={page}&per_page={per_page}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
node_id | string | query | Required. Node whose offers are listed (24-character hex) |
page | integer | query | Required. Page number, starting at 1 |
per_page | integer | query | Required. Items per page, 1–100 |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/admin/otcs?node_id=6810a8e5b45680e7d2f95bad&page=1&per_page=10' \
--header 'Authorization: Bearer <access_token>'
Response
{
"data": [
{
"token_id": "68ae06cfcccf4e8fc19362d1",
"total_count": 3,
"token_address": "0x78fccec69e21dc0b331b59f283d4d5b41ff36654",
"token_price_symbol": "USDT",
"token_image": "https://fra1.digitaloceanspaces.com/apex/dev/token/68ae06cfcccf4e8fc19362d1/images/c476dc47-374f-4da9-a948-ecd76b9c8305.png",
"token_name": "DeriToken",
"token_symbol": "DERI",
"token_status": 6,
"token_category_id": "667e9251ca818a2138ed4915",
"total_quantity": 12,
"min_price": "4.5",
"max_price": "5.25"
}
],
"total": 1,
"page": 1,
"per_page": 10
}
Response Fields
| Field | Type | Description |
|---|---|---|
data | array | One row per token |
data[].token_id | string | Token ID |
data[].total_count | integer | Number of offers on the token |
data[].total_quantity | integer | Sum of the offers' quantity (whole tokens) |
data[].min_price | string | Lowest offer unit price, decimal string |
data[].max_price | string | Highest offer unit price, decimal string |
data[].token_address | string | Token contract address |
data[].token_price_symbol | string | Symbol of the currency the token is priced in |
data[].token_image | string | URL of the token's default image |
data[].token_name | string | Token name |
data[].token_symbol | string | Token short name |
data[].token_status | integer | Token status |
data[].token_category_id | string | Token's asset category ID |
total | integer | Number of tokens with offers |
page | integer | Current page |
per_page | integer | Items per page |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed — see details |
| 400 | 10001 (domain 2) | Node not found |
| 400 | 10001 (domain 5) | A token that has offers could not be found |
| 403 | 10005 (domain 2) | The node is outside your API key's node subtree |
| 500 | 10000 | Unexpected server error |
See Errors for the error format and common codes.