Admin Get OTC Deal Detail
Returns one OTC offer, keyed by its deal id within the token — the same key Accept and Cancel use, so a caller that can list a token's offers already holds everything this needs.
Request
GET /v2/admin/otcs/tokens/{token_id}/deals/{deal_id}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
token_id | string | path | Required. The token the offer is on |
deal_id | integer | path | Required. The deal ID of the offer |
Headers
| Name | Type | Description |
|---|---|---|
Authorization | Required. Bearer token for authentication |
Example
curl --location '\{\{baseUrl\}\}/v2/admin/otcs/tokens/68ae06cfcccf4e8fc19362d1/deals/2' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
Response
{
"id": "6a8b5d02f9129816a6cc79f4",
"token_id": "68ae06cfcccf4e8fc19362d1",
"node_id": "6810a8e5b45680e7d2f95bad",
"user_id": "680c02896d91ca0145cfeb81",
"deal_id": 2,
"price": {
"amount": 5,
"decimal": 6,
"symbol": "USDT",
"address": "0x78fccec69e21dc0b331b59f283d4d5b41ff36654"
},
"quantity": 1,
"status": 0,
"created_at": "2026-08-23T17:41:22.913Z",
"updated_at": "2026-08-23T17:41:22.913Z",
"user": {
"id": "680c02896d91ca0145cfeb81",
"name": "Ada",
"surname": "Yılmaz",
"email": "ada@example.com"
},
"transaction": null
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | The offer's own ID. Use it with Get Otc Offer By ID and the transaction endpoints |
deal_id | integer | The on-chain deal ID, unique within the token contract |
price | object | Unit price of the offer |
price.amount | number | Price of one token |
price.decimal | integer | Decimals of the currency token |
price.symbol | string | Currency token symbol |
price.address | string | Currency token contract address |
quantity | integer | Number of tokens offered |
status | integer | Offer status |
user | object | The buyer who made the offer. Omitted if the user cannot be resolved — a deleted buyer must not hide the offer |
user.name, user.surname | string | Optional; omitted when unset |
transaction | object | The latest accept or cancel acting on the offer, or null while no action has been taken |
transaction.status | integer | 1 Started, 2 InProgress, 3 Done, 4 Error, 5 PendingReceipt |
transaction.type | integer | 1 accept, 2 cancel |
The list endpoints answer "what offers are there"; this answers "what happened to this one" — which needs the buyer's identity and the on-chain outcome, neither of which belongs on every row of a list.
Status Codes
| Status Code | Description |
|---|---|
| 200 | Success - offer detail retrieved |
| 400 | Bad Request - unknown deal, or a deal id paired with a token it does not belong to |
| 401 | Unauthorized - invalid or missing authentication token |
| 500 | Internal Server Error |
Notes
- An offer on a token belonging to another node is not readable.
transactionreflects the latest attempt only. A failed accept can be retried, so the full history lives at List Otc Transactions.