Markets

Batch fetch market metadata for multiple contracts

Batch variant of /markets/metadata, capped at 100 contracts. Contracts whose provider is currently inactive are dropped before processing; if that empties the batch the response is {}. Looks up the rest via a cached-metadata fast path, with a fallback for cache misses and non-Polymarket providers. Unless titles_only: true is set, three further best-effort enrichment passes run (each independently swallows its own errors and never fails the request):

  1. API fallback — any contract still found: false is retried against the live provider API (same fallback /markets/metadata uses), for markets too new to be indexed.
  2. Category inference — markets with no category get one inferred from Kalshi crypto ticker patterns or crypto keywords in the title (bitcoin/ethereum/solana/xrp/"btc "/"eth "/"sol ").
  3. Tag icon enrichment — resolves market-to-platform-tag mappings and assigns the highest-precedence tag's icon as tag_icon; can also backfill category from the tag's slug (crypto/politics/sports/esports/finance/tech/world). Note: Polymarket order-book liquidity-rewards enrichment (used by the single-market /markets/metadata) is intentionally not run here — this endpoint feeds list views where the rewards badge doesn't render.
post/markets/metadata/batch

Request

  • Base URL
    https://data.kairos.trade
  • Auth
    API key in header X-Client-Id and API key in header X-Api-Key and API key in header X-Api-Secret

Request body

titles_onlyboolean

When true, skips the API fallback, category inference, and tag-icon enrichment passes — returns whatever was already cached directly.

Response

Metadata items keyed by the requested ticker. Every requested ticker (whose provider wasn't hidden) appears, with found: false for unresolved ones.

MarketsBatchMetadataResponse required

Metadata items keyed by the requested ticker.

Changes

No recorded changes to this operation across all 1 revision of this API.