---
title: "List perpetual venue capabilities"
method: GET
path: "/perpetuals/venues"
tags: ["Perpetuals"]
---

# List perpetual venue capabilities

`GET /perpetuals/venues`

## Request

- Base URL: `https://staging-data.kairos.trade`
- URL: `https://staging-data.kairos.trade/perpetuals/venues`
- Auth: none required

Returns the supported perpetual venue identifiers and their public-data
capabilities. This is metadata owned by the Python Data API. It does not
serve books, trades, candles, funding observations, or WebSocket data.

This preview exists only in Kairos staging. When the preview flag is
disabled, the route fails closed with 404. Live REST snapshots are served
separately by the Market Data API; anonymous WebSocket transport is served by
`websocket_cpp`.

## Response `200`

Canonical venue capability records.

- PerpetualVenueCapabilities[]
  - `venue` 'hyperliquid' | 'polymarket_perps' | 'kalshi_margin', required: Canonical perpetual venue identifier.
  - `environment` string, required: Venue-native environment name; do not infer it from Kairos staging.
  - `market_data_service` 'agora', required: Legacy compatibility identifier; live REST snapshots are owned by the Market Data API, not this metadata endpoint.
  - `instruments` boolean, required
  - `book` boolean, required
  - `trades` boolean, required
  - `candles` boolean, required
  - `funding` boolean, required
  - `market_state` boolean, required
  - `notes` string[], required

## Other responses

- `404`: The staging preview is disabled.
- `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.

---

[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)
