inNovaAPI
REST API

Events

Browse and query sports events

List Events

GET /api/ext/v1/events

Scope: markets:read

Query Parameters

ParameterTypeRequiredDescription
leaguestringNoFilter by league ID (e.g., nba, epl, nfl)
sportstringNoFilter by sport ID
categorystringNoFilter by category (e.g., sports, esports)
subcategorystringNoFilter by subcategory
livebooleanNotrue — only live events; false — exclude live
endedbooleanNotrue — include ended events; false — active only
is_featuredbooleanNoFilter featured events
is_futurebooleanNoFilter futures / championship markets
sort_bystringNoSort field (e.g., volume, created_at)
limitintegerNoItems per page (default: 20)
offsetintegerNoPagination offset

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/events?league=nba&live=false&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": {
    "events": [
      {
        "id": "63b2d028-f436-49cd-8184-f59bc41dd100",
        "external_id": "341369",
        "slug": "nba-lakers-vs-celtics-2026-04-05",
        "title": "Lakers vs Celtics",
        "description": "Match description...",
        "category": "sports",
        "subcategory": "basketball",
        "league_id": "nba",
        "series_id": "10430",
        "start_date": "2026-04-05T00:00:00Z",
        "end_date": "2026-04-06T00:00:00Z",
        "volume": 125000.50,
        "trader_count": 342,
        "live": false,
        "ended": false,
        "is_featured": true,
        "is_future": false,
        "team_match_status": "auto_matched",
        "home_team_id": 1001,
        "away_team_id": 1002,
        "home_team": {
          "id": 1001,
          "name": "Los Angeles Lakers",
          "short_name": "Lakers",
          "name_zh": "洛杉矶湖人",
          "short_name_zh": "湖人",
          "abbreviation": "lal",
          "logo": "https://...",
          "recent_form": null
        },
        "away_team": {
          "id": 1002,
          "name": "Boston Celtics",
          "short_name": "Celtics",
          "name_zh": "波士顿凯尔特人",
          "short_name_zh": "凯尔特人",
          "abbreviation": "bos",
          "logo": "https://...",
          "recent_form": null
        },
        "enriched_markets": {
          "home_win": {
            "id": "f3f26422-20df-44e6-914e-dc70cfddba0b",
            "token_id": "108745061...",
            "token_id_a": "108745061...",
            "token_id_b": "823796526...",
            "outcome": "a",
            "price": 0.55,
            "odds": 1.82
          },
          "away_win": {
            "id": "f3f26422-20df-44e6-914e-dc70cfddba0b",
            "token_id": "823796526...",
            "token_id_a": "823796526...",
            "token_id_b": "108745061...",
            "outcome": "b",
            "price": 0.45,
            "odds": 2.22
          },
          "game_start_time": "2026-04-05T19:30:00Z"
        },
        "created_at": "2026-04-01T00:00:00Z",
        "updated_at": "2026-04-04T10:00:00Z"
      }
    ],
    "total_count": 42,
    "page": 1,
    "page_size": 10
  }
}

Get Event Detail

GET /api/ext/v1/events/:id

Scope: markets:read

Path Parameters

ParameterTypeDescription
idstringEvent UUID or slug

cURL Example

EVENT_ID="63b2d028-f436-49cd-8184-f59bc41dd100"
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/events/${EVENT_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": {
    "event": {
      "id": "63b2d028-f436-49cd-8184-f59bc41dd100",
      "external_id": "341369",
      "slug": "nba-lakers-vs-celtics-2026-04-05",
      "title": "Lakers vs Celtics",
      "description": "...",
      "category": "sports",
      "subcategory": "basketball",
      "league_id": "nba",
      "series_id": "10430",
      "start_date": "2026-04-05T00:00:00Z",
      "start_time": "2026-04-05T19:30:00Z",
      "end_date": "2026-04-06T00:00:00Z",
      "volume": 125000.50,
      "trader_count": 342,
      "live": false,
      "ended": false,
      "is_featured": true,
      "is_future": false,
      "team_match_status": "auto_matched",
      "home_team_id": 1001,
      "away_team_id": 1002,
      "game_id": 1407013,
      "home_team": {
        "id": 1001,
        "name": "Los Angeles Lakers",
        "short_name": "Lakers",
        "name_zh": "洛杉矶湖人",
        "short_name_zh": "湖人",
        "abbreviation": "lal",
        "logo": "https://...",
        "recent_form": null
      },
      "away_team": {
        "id": 1002,
        "name": "Boston Celtics",
        "short_name": "Celtics",
        "name_zh": "波士顿凯尔特人",
        "short_name_zh": "凯尔特人",
        "abbreviation": "bos",
        "logo": "https://...",
        "recent_form": null
      },
      "markets": [
        {
          "id": "f3f26422-20df-44e6-914e-dc70cfddba0b",
          "external_id": "1852586",
          "condition_id": "0xac73797b...",
          "token_id_a": "108745061...",
          "token_id_b": "823796526...",
          "question": "Who will win?",
          "outcome_a": "Lakers",
          "outcome_b": "Celtics",
          "price_a": 0.55,
          "price_b": 0.45,
          "odds_a": 1.82,
          "odds_b": 2.22,
          "volume": 125000.50,
          "liquidity": 45000.00,
          "status": "active",
          "market_type": "moneyline",
          "group_item_title": "Match Winner",
          "game_start_time": "2026-04-05T19:30:00Z"
        }
      ],
      "created_at": "2026-04-01T00:00:00Z",
      "updated_at": "2026-04-04T10:00:00Z"
    }
  }
}

start_date is the market open date; start_time is the actual game kickoff time. Use start_time for displaying match schedules.

Error Response

{ "success": false, "error": "Event not found" }

Status 404 — event does not exist.


Get Event Markets

GET /api/ext/v1/events/:id/markets

Scope: markets:read

Returns all markets for a specific event.

cURL Example

EVENT_ID="63b2d028-f436-49cd-8184-f59bc41dd100"
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/events/${EVENT_ID}/markets"

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": "1852586",
        "condition_id": "0xac73797b...",
        "token_id_a": "42881612871834249183...",
        "token_id_b": "80238421908721348754...",
        "question": "Who will win?",
        "outcome_a": "Lakers",
        "outcome_b": "Celtics",
        "price_a": 0.55,
        "price_b": 0.45,
        "odds_a": 1.82,
        "odds_b": 2.22,
        "volume": 125000.50,
        "liquidity": 45000.00,
        "status": "active",
        "market_type": "moneyline",
        "group_item_title": "Match Winner",
        "game_start_time": "2026-04-05T19:30:00Z"
      }
    ],
    "count": 3
  }
}

Use token_id_a / token_id_b as the asset_id when querying orderbooks.

Error Response

{ "success": false, "error": "Event not found" }

Status 404 — event does not exist.