> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oddpool.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Oddpool ID by ticker

> Resolve a Kalshi, Polymarket, or Polymarket US ticker to its Oddpool event, outcomes, and venue sides.

Give this endpoint a Kalshi, Polymarket, or Polymarket US id and it returns the matched event: its Oddpool ID, every venue that lists it, every outcome, the entity each outcome refers to, and the venue ticker you trade on each side.

Kalshi input can be an event ticker or a market ticker (a market ticker resolves to its parent event). Polymarket input can be a conditionId, event slug, or numeric event id. Polymarket US input is the market slug.

## Query parameters

Pass either `oddpool_id`, or `venue` + `id`.

<ParamField query="venue" type="string">
  `kalshi`, `polymarket`, or `polymarket_us` (see [Supported venues](/institutions/reference-data/venues)). Required when you pass `id`.
</ParamField>

<ParamField query="id" type="string">
  The venue's id. Kalshi: event or market ticker. Polymarket: conditionId (`0x…`), event slug, or numeric event id. Polymarket US: market slug.
</ParamField>

<ParamField query="oddpool_id" type="string">
  An Oddpool event id (`OPI-XXXXXXXX`) instead of a venue id.
</ParamField>

## Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -H "X-API-Key: your_api_key" \
    "https://api.oddpool.com/reference/v2/events/lookup?venue=kalshi&id=KXBRASILEIROGAME-26MAY30GPACOR-GPA"
  ```

  ```python Python theme={null}
  import requests

  r = requests.get(
      "https://api.oddpool.com/reference/v2/events/lookup",
      headers={"X-API-Key": "your_api_key"},
      params={"venue": "kalshi", "id": "KXBRASILEIROGAME-26MAY30GPACOR-GPA"},
  )
  event = r.json()
  ```
</CodeGroup>

## Response

A matched **event**. Every field is defined in [Response fields](/institutions/reference-data/response-fields#event).

```json theme={null}
{
  "oddpool_id": "OPI-OO4GBEZJ",
  "title": "Gremio vs Corinthians",
  "subject_domain": "Sports",
  "classified_at": "2026-05-25T18:42:11Z",
  "venue_listings": [
    {
      "oddpool_id": "OPL:KALSHI:KXBRASILEIROGAME-26MAY30GPACOR",
      "venue": "kalshi",
      "venue_event_id": "KXBRASILEIROGAME-26MAY30GPACOR",
      "venue_question": "Who will win the Brasileirão match Grêmio vs Corinthians on May 30?"
    },
    {
      "oddpool_id": "OPL:POLYMARKET:445404",
      "venue": "polymarket",
      "venue_event_id": "445404",
      "venue_question": "Grêmio vs Corinthians: Match Result"
    }
  ],
  "venue_pairs": [
    {
      "venue_a": "kalshi",
      "venue_a_event_id": "KXBRASILEIROGAME-26MAY30GPACOR",
      "venue_b": "polymarket",
      "venue_b_event_id": "445404",
      "basis_class": "identical",
      "outcome_universe": "identical"
    }
  ],
  "outcomes": [
    {
      "oddpool_id": "OPO:OO4GBEZJ:GREMIO-FBPA-JITQ",
      "label": "Grêmio FBPA",
      "outcome_kind": "multi_class_named",
      "outcome_params": {},
      "entity": {
        "oddpool_id": "OPE:TEAM:GREMIO-FBPA",
        "kind": "team",
        "canonical_name": "Grêmio FBPA",
        "aliases": ["Grêmio", "Gremio", "Tricolor Gaúcho"],
        "wikidata_qid": "Q190301",
        "metadata": {
          "league": "Campeonato Brasileiro Série A",
          "sport": "association football",
          "city": "Porto Alegre"
        }
      },
      "venue_listings": [
        {
          "oddpool_id": "OPL:KALSHI:KXBRASILEIROGAME-26MAY30GPACOR-GPA",
          "venue": "kalshi",
          "venue_market_id": "KXBRASILEIROGAME-26MAY30GPACOR-GPA",
          "venue_event_id": "KXBRASILEIROGAME-26MAY30GPACOR",
          "venue_yes_token": null,
          "venue_no_token": null,
          "venue_question": "Gremio"
        },
        {
          "oddpool_id": "OPL:POLYMARKET:0X830BC4CBE4FC945B6CEE65EB1B0A5FEBACB16004C4C7B702A20376E6E12B1429",
          "venue": "polymarket",
          "venue_market_id": "0x830bc4cbe4fc945b6cee65eb1b0a5febacb16004c4c7b702a20376e6e12b1429",
          "venue_event_id": "445404",
          "venue_yes_token": "30372052209701849468461148034092137114942310389987253992056832502897412952481",
          "venue_no_token": "74064390857285423190264600895526377480606423020566358098133374778358135580812",
          "venue_question": "Grêmio FBPA"
        }
      ],
      "venue_pairs": [
        {
          "venue_a": "kalshi",
          "venue_b": "polymarket",
          "fungible": false,
          "divergence_axes": ["condition_scope"],
          "divergence_reason": "Both resolve Yes if Grêmio wins in 90 minutes plus stoppage time, but Kalshi sends cancellation/reschedule over two weeks to fair price while Polymarket keeps postponed games open and canceled-without-makeup resolves No."
        }
      ]
    }
  ]
}
```

## Errors

Returns `404` when no match exists for the id:

```json theme={null}
{
  "detail": {
    "error_code": "EVENT_NOT_FOUND",
    "error": "no_canonical_match",
    "venue": "kalshi",
    "id": "KXNONEXIST-99"
  }
}
```
