Skip to content

OTC offer event history

GET /api/otc/offer/history/v2

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.

NameInTypeRequiredDescription
offer_idquerystringFilter to events for one specific offer.
event_typequeryEvent type: created, updated, cancelled, filled, expired.
buyerquerystringFilter by buyer coldkey (SS58).
sellerquerystringFilter to events involving a specific seller (e.g. filled events).
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.

200 — TAO offer history retrieved successfully

Section titled “200 — TAO offer history retrieved successfully”

Media: application/json

Schema
{
"type": "object",
"required": [
"pagination",
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"offer_id",
"event_type",
"buyer",
"netuid",
"amount",
"price_offset_bps",
"block_number",
"timestamp",
"extrinsic_id"
],
"properties": {
"alpha_amount": {
"type": "string",
"nullable": true
},
"amount": {
"type": "string"
},
"amount_returned": {
"type": "string",
"nullable": true
},
"block_number": {
"type": "integer",
"format": "int32"
},
"buyer": {
"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"
}
}
},
"event_type": {
"type": "string"
},
"executed_price": {
"type": "string",
"nullable": true
},
"extrinsic_id": {
"type": "string"
},
"fee": {
"type": "string",
"nullable": true
},
"id": {
"type": "string"
},
"netuid": {
"type": "integer",
"format": "int32"
},
"offer_id": {
"type": "string"
},
"price_offset_bps": {
"type": "integer",
"format": "int32"
},
"seller": {
"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
},
"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.