---
title: "The cross-venue link holding each venue market"
method: GET
path: "/market-links/lookup"
tags: ["Markets"]
---

# The cross-venue link holding each venue market

`GET /market-links/lookup`

## Request

- Base URL: `https://data.kairos.trade`
- URL: `https://data.kairos.trade/market-links/lookup`
- Auth: none required

Batched reverse lookup from venue markets to the catalog row that holds them. A market is matched by its executor market id, its stream key (the numeric Gamma id for Polymarket), or — for a Kalshi two-ticker game — the ticker that books the link's NO side. References without a published link are omitted from the response rather than returned empty.

Cached with `Cache-Control: public, max-age=15, s-maxage=30`.

## Query parameters

- `markets` string, required

## Response `200`

The link for each referenced market that has one, keyed by the reference as given (provider lower-cased).

- MarketLinksLookupResponse
  - `links` object, required: Keyed by `<provider>:<marketId>` as requested; markets without a link are omitted.

## Other responses

- `400`: No parseable `<provider>:<marketId>` reference, or more than 100 of them.
- `422`: Request failed FastAPI parameter validation.
- `429`: Rate limit exceeded for this route's sliding window, keyed on the session `sub` when authenticated and on the trusted client IP otherwise. Honor `Retry-After`. A per-API-key data ceiling (set per credential) rejects with `{"detail": "API key data rate limit exceeded"}` instead of the `error` envelope below.
- `503`: The catalog store could not be read.

---

[API](https://skmtc.dev/kairos/apis/kairos-data-api.md) - [All operations](https://skmtc.dev/kairos/apis/kairos-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kairos/apis/kairos-data-api/revisions/cf6b76079e38?raw)
