REST API
Markets
Query market details and pricing
Search Markets
GET /api/ext/v1/marketsScope: markets:read
Search markets by keyword. To list all markets for a specific event, use GET /api/ext/v1/events/:id/markets.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Search keyword (market question / title) |
limit | integer | No | Max results (default: 20) |
cURL Example
API_KEY="po_live_your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
NONCE=$(openssl rand -hex 16)
PATH="/api/ext/v1/markets?q=lakers&limit=10"
BODY_HASH=$(echo -n "" | openssl dgst -sha256 | awk '{print $NF}')
SIGNING_STRING="GET\n${PATH}\n${TIMESTAMP}\n${NONCE}\n${BODY_HASH}"
SIGNATURE=$(echo -ne "$SIGNING_STRING" | openssl dgst -sha256 -hmac "$API_SECRET" | awk '{print $NF}')
curl -s "https://api.winnova.pro${PATH}" \
-H "X-API-KEY: $API_KEY" \
-H "X-API-TIMESTAMP: $TIMESTAMP" \
-H "X-API-SIGNATURE: $SIGNATURE" \
-H "X-API-NONCE: $NONCE"Response
{
"success": true,
"data": {
"markets": [
{
"id": "f3f26422-20df-44e6-914e-dc70cfddba0b",
"external_id": "0x5eed579f...",
"token_id_a": "42881612871834249183...",
"token_id_b": "80238421908721348754...",
"question": "Will the Lakers win?",
"description": "Market description...",
"category": "basketball",
"subcategory": "nba",
"outcome_a": "Yes",
"outcome_b": "No",
"price_a": 0.55,
"price_b": 0.45,
"volume": 125000.50,
"liquidity": 45000.00,
"end_date": "2026-04-06T00:00:00Z",
"status": "active",
"neg_risk": false,
"is_featured": false,
"created_at": "2026-04-01T00:00:00Z",
"updated_at": "2026-04-04T10:00:00Z"
}
],
"count": 1
}
}The search results do not include
odds_a/odds_borgame_start_time; useGET /api/ext/v1/markets/:idfor full market details.
Get Market Detail
GET /api/ext/v1/markets/:idScope: markets:read
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | UUID | Market ID |
cURL Example
MARKET_ID="f3f26422-20df-44e6-914e-dc70cfddba0b"
API_KEY="po_live_your_api_key"
API_SECRET="your_api_secret"
TIMESTAMP=$(date +%s%3N)
NONCE=$(openssl rand -hex 16)
PATH="/api/ext/v1/markets/${MARKET_ID}"
BODY_HASH=$(echo -n "" | openssl dgst -sha256 | awk '{print $NF}')
SIGNING_STRING="GET\n${PATH}\n${TIMESTAMP}\n${NONCE}\n${BODY_HASH}"
SIGNATURE=$(echo -ne "$SIGNING_STRING" | openssl dgst -sha256 -hmac "$API_SECRET" | awk '{print $NF}')
curl -s "https://api.winnova.pro${PATH}" \
-H "X-API-KEY: $API_KEY" \
-H "X-API-TIMESTAMP: $TIMESTAMP" \
-H "X-API-SIGNATURE: $SIGNATURE" \
-H "X-API-NONCE: $NONCE"Response
{
"success": true,
"data": {
"market": {
"id": "f3f26422-20df-44e6-914e-dc70cfddba0b",
"external_id": "1852586",
"condition_id": "0xac73797b...",
"token_id_a": "42881612871834249183...",
"token_id_b": "80238421908721348754...",
"event_id": "63b2d028-f436-49cd-8184-f59bc41dd100",
"question": "Will the Lakers win?",
"category": "sports",
"outcome_a": "Yes",
"outcome_b": "No",
"price_a": 0.55,
"price_b": 0.45,
"volume": 125000.50,
"liquidity": 45000.00,
"game_start_time": "2026-04-05T19:30:00Z",
"status": "active",
"market_type": "moneyline",
"group_item_title": "Match Winner",
"neg_risk": false,
"is_featured": false,
"created_at": "2026-04-01T00:00:00Z",
"updated_at": "2026-04-04T10:00:00Z"
}
}
}Error Response
{ "success": false, "error": "Market not found" }Status 404 — market does not exist.