Documentation / API reference / OTC
List OTC Alpha Listings
Last reviewed 2026-09-18
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.
Try it
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 (int32) | Subnet id. Listings are per-subnet. | |
status | query | string | Listing lifecycle state: active, filled, cancelled, expired. One of active, cancelled, taken, all. | |
price_offset_bps_min | query | integer (int32) | Minimum offset from market price in basis points (signed; e.g. -500 = 5% below market, +500 = 5% above). | |
price_offset_bps_max | query | integer (int32) | 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 (int32) | Earliest block height the listing was created at (inclusive). | |
created_block_end | query | integer (int32) | Latest block height the listing was created at (inclusive). | |
created_timestamp_start | query | integer (int64) | Earliest Unix timestamp (seconds) the listing was created at (inclusive). | |
created_timestamp_end | query | integer (int64) | Latest Unix timestamp (seconds) the listing was created at (inclusive). | |
page | query | integer (int32) | 1-based page number. | |
limit | query | integer (int32) | Page size (max 200). | |
order | query | string | Sort order, e.g. created_block_desc, price_offset_bps_asc. One of created_asc, created_desc, updated_asc, updated_desc, price_offset_bps_asc, price_offset_bps_desc, amount_asc, amount_desc. |
Responses
200 — Alpha listings retrieved successfully
| Field | Type | Required | Description |
|---|---|---|---|
data | array | Yes | |
data[].amount | string | Yes | |
data[].created_block | integer (int32) | Yes | |
data[].created_timestamp | string (date-time) | Yes | |
data[].force_cancelled | boolean | Yes | |
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[].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[].status | string | Yes | |
data[].updated_block | integer (int32) | Yes | |
data[].updated_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.