---
title: "Get multiple events in one call"
method: POST
path: "/v1/events/batch"
tags: ["events"]
---

# Get multiple events in one call

`POST /v1/events/batch`

## Request

- Base URL: `https://lumify.ai`
- URL: `https://lumify.ai/v1/events/batch`
- Auth: HTTP bearer

Fetch multiple events by id in a single round-trip — for agents that
already have a list of ids (e.g. from GET /v1/events) and want full detail
for each without issuing one GET per event.

Body: {"event_ids": [1, 2, 3], "include_odds": bool, "include_intelligence": bool, "bookmaker": str}
Max 25 ids per call. Duplicate ids are billed once. Credits are the sum of
each event's normal GET /v1/events/{id} cost — billing fairness applies
per event (unavailable odds/intelligence are free; ids that don't exist
cost nothing and are returned under "not_found").

## Request body

- BatchEventsRequest
  - `event_ids` integer[], required: Event ids to fetch (max 25). Duplicates are billed once.
  - `include_odds` boolean: Inline current odds on each event. Scoped by bookmaker (default: pinnacle). Does not add credits — each found event stays 1 credit.
  - `include_intelligence` boolean: Inline bet intelligence on each event. Does not add credits.
  - `bookmaker` string, nullable: Bookmaker for inlined odds and intelligence market prices. Defaults to pinnacle; 'all' or a comma-separated list for multiple books.

## Response `200`

Requested events (each shaped like GET /v1/events/{id}) plus any ids not found

- BatchEventsResponse
  - `events` EventDetail[]
    - `id` integer, required
    - `name` string, nullable
    - `sport` string, nullable
    - `league` string, nullable
    - `season_id` integer, nullable
    - `starts_at` string, nullable: ISO-8601 UTC start time.
    - `inprogress_since` string, nullable: ISO-8601 UTC timestamp of the first ingest that marked this event inprogress (first live tick). Null until then; stays set after final. Walkovers and events that never went live are usually null. Not the same as starts_at, which can be a session floor (especially tennis).
    - `status` string, nullable
    - `period` string, nullable
    - `clock` string, nullable
    - `venue` object, nullable
    - `participants` Participant[]
      - `participant_id` integer, nullable
      - `role` string, nullable
      - `team` object, nullable
      - `player` object, nullable
      - `score` string, nullable
      - `is_winner` boolean, nullable
    - `updated_at` string, nullable
  - `not_found` integer[]: Requested event_ids that don't exist. Never billed.
  - `total` integer

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/lumify/apis/lumify-sports-intelligence-api.md) · [All operations](https://skmtc.dev/lumify/apis/lumify-sports-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lumify/apis/lumify-sports-intelligence-api/revisions/f91ea41a2606?raw)
