Documentation / API reference / OTC
OTC Listing Event History
Last reviewed 2026-09-18
Returns the immutable event log for OTC sell-side listings: every created, updated, cancelled, filled, and expired event with block + extrinsic context. Use this for audit trails, price-discovery analytics, and seller activity reconstruction. For current state use /api/otc/listing/v2 instead.
Try it
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | query | string | Filter to events for one specific listing. | |
event_type | query | string | Event type: created, updated, cancelled, filled, expired. One of created, cancelled, taken, all. | |
seller | query | string | Filter by seller coldkey (SS58). | |
buyer | query | string | Filter to events that involved a specific buyer (e.g. filled events). | |
hotkey | query | string | Filter by hotkey the listing was for. | |
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, e.g. block_number_desc. One of block_number_asc, block_number_desc, timestamp_asc, timestamp_desc. |
Responses
200 — Alpha listing history retrieved successfully
| Field | Type | Required | Description |
|---|---|---|---|
data | array | Yes | |
data[].amount | string | Yes | |
data[].amount_returned | string, nullable | ||
data[].block_number | integer (int32) | Yes | |
data[].buyer | object, nullable | ||
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[].force_cancelled | boolean, nullable | ||
data[].hotkey | object | Yes | |
data[].hotkey.hex | string | Yes | The hex format of the hot key |
data[].hotkey.ss58 | string | Yes | The SS58 format of the hot key |
data[].id | string | Yes | |
data[].initiated_by | string, nullable | ||
data[].listing_id | string | Yes | |
data[].netuid | integer (int32) | Yes | |
data[].price_offset_bps | integer (int32) | Yes | |
data[].seller | object | Yes | |
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[].tao_amount | string, nullable | ||
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.