List OTC alpha listings
Endpoint
Section titled “Endpoint”GET /api/otc/listing/v2Description
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”Try it
Section titled “Try it”Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).
Authentication
Section titled “Authentication”All Taostats API requests require an Authorization header containing your API key. See Getting Started.