---
title: "Batch market intelligence"
method: POST
path: "/api/v1/markets/intel/batch"
tags: ["Markets"]
---

# Batch market intelligence

`POST /api/v1/markets/intel/batch`

Returns smart-money market intelligence for 1-25 raw provider condition_id values. Results preserve request order, duplicate inputs return duplicate rows, and each item is charged one batch item unit before execution. Do not pass prefixed mkt_ IDs; use market.condition_id from search or explore.

## Request body

- object
  - `condition_ids` string[], required
  - `timeframe` '1h' | '4h' | '24h' | '7d'

## Response `200`

Ordered batch market intelligence results

- object
  - `object` 'market_intel_batch', required
  - `data` BatchMarketIntelItem[], required
    - `index` integer, required — Zero-based request index. Duplicate inputs keep separate result rows.
    - `input` string, required
    - `status` 'ok' | 'error', required
    - `data` MarketIntel
      - `market` object, required
        - `id` string, required
        - `condition_id` string, required
        - `title` string, required
        - `slug` string, nullable
        - `category` string, nullable
        - `platform` string, nullable
      - `smart_money` object, required
        - `net_flow_usd` number, required
        - `direction` 'YES' | 'NO', required
        - `token_id` string, nullable — The Polymarket CLOB token id (ERC1155 asset id, decimal string) for the net-flow direction outcome; null when unavailable (e.g. Kalshi markets, unsynced markets).
        - `whale_trade_count` integer, required
        - `buy_volume_usd` number, required
        - `sell_volume_usd` number, required
        - `top_positions` object[], required
          - `id` string, required
          - `address` string, required
          - `username` string, nullable
          - `grade` string, nullable
          - `side` 'YES' | 'NO', required
          - `token_id` string, nullable — The Polymarket CLOB token id (ERC1155 asset id, decimal string) for this outcome; null when unavailable (e.g. Kalshi markets, unsynced markets).
          - `size_usd` number, required
      - `timeframe` string, required
    - `error` ApiErrorBody
      - `code` string, required
      - `message` string, required
      - `doc_url` string, nullable
      - `param` string, nullable
  - `meta` BatchResponseMeta, required
    - `request_id` string, required
    - `cached` boolean, required
    - `total_items` integer, required
    - `successful_items` integer, required
    - `failed_items` integer, required
    - `request_cost` integer, required — Number of batch item units reserved before execution.
    - `rate_limit` BatchRateLimitMeta, required
      - `basis` 'batch_items_per_minute', required
      - `limit` integer, required
      - `remaining` integer, required
      - `reset` integer, required — Unix timestamp when the batch item window resets.

## Other responses

- `400` — Invalid request parameter
- `401` — Missing or invalid API key
- `402` — Active Insider subscription required
- `403` — Account access denied
- `408` — Request exceeded the server's 30-second transport timeout. The timeout response has an empty body because it is generated before handler-level JSON error shaping.
- `423` — Account is locked
- `429` — Rate limit exceeded (100 req/min; batch endpoints also reserve 100 batch item units/min before execution)
- `500` — Unexpected server error
- `503` — Redis-backed authenticated rate limiter unavailable; retry after the per-process outage cooldown

## Changes

- **2026-07-01** `1777a41bfb53` — 2 info
  - added the optional property `data/items/data/smart_money/token_id` to the response with the `200` status
  - added the optional property `data/items/data/smart_money/top_positions/items/token_id` to the response with the `200` status
- **2026-06-01** `422bd4dc1611` — 72 warning, 1 info
  - added the new `account_locked` enum value to the `error/code` response property for the response status `400`
  - added the new `account_locked` enum value to the `error/code` response property for the response status `401`
  - added the new `account_locked` enum value to the `error/code` response property for the response status `402`
  - added the new `account_locked` enum value to the `error/code` response property for the response status `403`
  - …69 more
- **2026-05-08** `80e8658e5acf` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/0xinsider/apis/0xinsider-api/changes/api/v1/markets/intel/batch/post.md)

---

[API](https://skmtc.dev/0xinsider/apis/0xinsider-api.md) · [All operations](https://skmtc.dev/0xinsider/apis/0xinsider-api/llms.txt) · [OpenAPI document](https://skmtc.dev/0xinsider/apis/0xinsider-api/revisions/137fa0fd3297?raw)
