Documentation / API reference / OTC
OTC Offer Event History
Last reviewed 2026-09-18
Returns the immutable event log for OTC buy-side offers: every created, updated, cancelled, filled, and expired event with block + extrinsic context. For current offer state use /api/otc/offer/v2.
Try it
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
offer_id | query | string | Filter to events for one specific offer. | |
event_type | query | string | Event type: created, updated, cancelled, filled, expired. One of created, cancelled, taken, all. | |
buyer | query | string | Filter by buyer coldkey (SS58). | |
seller | query | string | Filter to events involving a specific seller (e.g. filled events). | |
netuid | query | integer (int32) | Subnet id. | |
block_start | query | integer (int32) | Earliest block height (inclusive). | |
block_end | query | integer (int32) | Latest block height (inclusive). | |
timestamp_start | query | integer (int64) | Earliest Unix timestamp in seconds (inclusive). | |
timestamp_end | query | integer (int64) | Latest Unix timestamp in seconds (inclusive). | |
page | query | integer (int32) | 1-based page number. | |
limit | query | integer (int32) | Page size (max 200). | |
order | query | string | Sort order. One of block_number_asc, block_number_desc, timestamp_asc, timestamp_desc. |
Responses
200 — TAO offer history retrieved successfully
| Field | Type | Required | Description |
|---|---|---|---|
data | array | Yes | |
data[].alpha_amount | string, nullable | ||
data[].amount | string | Yes | |
data[].amount_returned | string, nullable | ||
data[].block_number | integer (int32) | Yes | |
data[].buyer | object | Yes | |
data[].buyer.hex | string | Yes | The hex format of the hot key |
data[].buyer.ss58 | string | Yes | The SS58 format of the hot key |
data[].event_type | string | Yes | |
data[].executed_price | string, nullable | ||
data[].extrinsic_id | string | Yes | |
data[].fee | string, nullable | ||
data[].id | string | Yes | |
data[].netuid | integer (int32) | Yes | |
data[].offer_id | string | Yes | |
data[].price_offset_bps | integer (int32) | Yes | |
data[].seller | object, nullable | ||
data[].seller.hex | string | Yes | The hex format of the hot key |
data[].seller.ss58 | string | Yes | The SS58 format of the hot key |
data[].timestamp | string (date-time) | Yes | |
pagination | object | Yes | |
pagination.current_page | integer (int32) | Yes | |
pagination.next_page | integer (int32), nullable | ||
pagination.per_page | integer (int32) | Yes | |
pagination.prev_page | integer (int32), nullable | ||
pagination.total_items | integer (int32) | Yes | |
pagination.total_pages | integer (int32) | Yes |
Other responses
| Status | Meaning |
|---|---|
400 | Bad request |
500 | Internal server error |
Every request needs an Authorization header holding your API key — see Getting started with the Taostats API.