Skip to content

OTC listing event history

GET /api/otc/listing/history/v2

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.

NameInTypeRequiredDescription
listing_idquerystringFilter to events for one specific listing.
event_typequeryEvent type: created, updated, cancelled, filled, expired.
sellerquerystringFilter by seller coldkey (SS58).
buyerquerystringFilter to events that involved a specific buyer (e.g. filled events).
hotkeyquerystringFilter by hotkey the listing was for.
netuidqueryintegerSubnet id.
block_startqueryintegerEarliest block height (inclusive).
block_endqueryintegerLatest block height (inclusive).
timestamp_startqueryintegerEarliest Unix timestamp in seconds (inclusive).
timestamp_endqueryintegerLatest Unix timestamp in seconds (inclusive).
pagequeryinteger1-based page number.
limitqueryintegerPage size (max 200).
orderquerySort order, e.g. block_number_desc.

200 — Alpha listing history retrieved successfully

Section titled “200 — Alpha listing history retrieved successfully”

Media: application/json

Schema
{
"type": "object",
"required": [
"pagination",
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"listing_id",
"event_type",
"seller",
"hotkey",
"netuid",
"amount",
"price_offset_bps",
"block_number",
"timestamp",
"extrinsic_id"
],
"properties": {
"amount": {
"type": "string"
},
"amount_returned": {
"type": "string",
"nullable": true
},
"block_number": {
"type": "integer",
"format": "int32"
},
"buyer": {
"allOf": [
{
"type": "object",
"required": [
"ss58",
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "The hex format of the hot key"
},
"ss58": {
"type": "string",
"description": "The SS58 format of the hot key"
}
}
}
],
"nullable": true
},
"event_type": {
"type": "string"
},
"executed_price": {
"type": "string",
"nullable": true
},
"extrinsic_id": {
"type": "string"
},
"fee": {
"type": "string",
"nullable": true
},
"force_cancelled": {
"type": "boolean",
"nullable": true
},
"hotkey": {
"type": "object",
"required": [
"ss58",
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "The hex format of the hot key"
},
"ss58": {
"type": "string",
"description": "The SS58 format of the hot key"
}
}
},
"id": {
"type": "string"
},
"initiated_by": {
"type": "string",
"nullable": true
},
"listing_id": {
"type": "string"
},
"netuid": {
"type": "integer",
"format": "int32"
},
"price_offset_bps": {
"type": "integer",
"format": "int32"
},
"seller": {
"type": "object",
"required": [
"ss58",
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "The hex format of the hot key"
},
"ss58": {
"type": "string",
"description": "The SS58 format of the hot key"
}
}
},
"tao_amount": {
"type": "string",
"nullable": true
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
}
},
"pagination": {
"type": "object",
"required": [
"current_page",
"per_page",
"total_items",
"total_pages"
],
"properties": {
"current_page": {
"type": "integer",
"format": "int32"
},
"next_page": {
"type": "integer",
"format": "int32",
"nullable": true
},
"per_page": {
"type": "integer",
"format": "int32"
},
"prev_page": {
"type": "integer",
"format": "int32",
"nullable": true
},
"total_items": {
"type": "integer",
"format": "int32"
},
"total_pages": {
"type": "integer",
"format": "int32"
}
}
}
}
}

Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).

All Taostats API requests require an Authorization header containing your API key. See Getting Started.