List OTC Alpha Listings
Endpoint
Section titled “Endpoint”GET /api/otc/listing/v2Try it
Section titled “Try it”Description
Section titled “Description”Returns currently active and historical sell-side listings on the Taostats OTC desk. A listing is a seller’s offer to sell alpha for a subnet at a price expressed as a basis-point offset from the current market price (negative = discount, positive = premium). The executed price is snapped at the moment a buyer matches the listing.
Use this to discover available inventory, track listings by seller/hotkey/subnet, or filter by offset and amount bands. Pair with /api/otc/offer/v2 (buy-side) and /api/otc/trade/v2 (executed matches).
For the OTC marketplace UI see taostats.io/otc.
Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | query | string | Filter by exact listing id (returned by previous calls or trade events). | |
seller | query | string | Filter by seller coldkey (SS58). | |
hotkey | query | string | Filter by the hotkey the alpha is delegated to. | |
netuid | query | integer | Subnet id. Listings are per-subnet. | |
status | query | — | Listing lifecycle state: active, filled, cancelled, expired. | |
price_offset_bps_min | query | integer | Minimum offset from market price in basis points (signed; e.g. -500 = 5% below market, +500 = 5% above). | |
price_offset_bps_max | query | integer | Maximum offset from market price in basis points. | |
amount_min | query | string | Minimum alpha amount in rao. | |
amount_max | query | string | Maximum alpha amount in rao. | |
created_block_start | query | integer | Earliest block height the listing was created at (inclusive). | |
created_block_end | query | integer | Latest block height the listing was created at (inclusive). | |
created_timestamp_start | query | integer | Earliest Unix timestamp (seconds) the listing was created at (inclusive). | |
created_timestamp_end | query | integer | Latest Unix timestamp (seconds) the listing was created at (inclusive). | |
page | query | integer | 1-based page number. | |
limit | query | integer | Page size (max 200). | |
order | query | — | Sort order, e.g. created_block_desc, price_offset_bps_asc. |
Responses
Section titled “Responses”200 — Alpha listings retrieved successfully
Section titled “200 — Alpha listings retrieved successfully”Media: application/json
Schema
{ "type": "object", "required": [ "pagination", "data" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "listing_id", "seller", "hotkey", "netuid", "amount", "price_offset_bps", "status", "force_cancelled", "created_block", "created_timestamp", "updated_block", "updated_timestamp" ], "properties": { "amount": { "type": "string" }, "created_block": { "type": "integer", "format": "int32" }, "created_timestamp": { "type": "string", "format": "date-time" }, "force_cancelled": { "type": "boolean" }, "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" } } }, "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" } } }, "status": { "type": "string" }, "updated_block": { "type": "integer", "format": "int32" }, "updated_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" } } } }}400 — Bad request
Section titled “400 — Bad request”500 — Internal server error
Section titled “500 — Internal server error”Authentication
Section titled “Authentication”All Taostats API requests require an Authorization header containing your API key. See Getting Started.