---
title: "Pick'em splits for one card"
method: GET
path: "/v1/events/{idOrSlug}/pickem"
tags: ["Events"]
---

# Pick'em splits for one card

`GET /v1/events/{idOrSlug}/pickem`

## Request

- Base URL: `https://api.ufcalendar.com`
- URL: `https://api.ufcalendar.com/v1/events/{idOrSlug}/pickem`
- Auth: HTTP bearer

How the UFCalendar community is picking each bout on one card, from the site's own pick'em game: `fights[]` in card order (non-cancelled bouts), each with `fight_id`, both corners (`fighter_a`, `fighter_b`: `id`, `slug`, `name`), `picks_a`, `picks_b`, `total` and `pct_a` (the percentage of picks on corner a, 0–100 with one decimal; null when nobody has picked the bout). Counts only — never who picked. Crowd sentiment, not a market and not a forecast. An unknown event 404s.

## Path parameters

- `idOrSlug` string, required

## Response `200`

Pick'em splits

- EventPickemResponse
  - `data` EventPickem, required
    - `event` StorylineEvent, required
      - `id` integer, required
      - `slug` string, required
      - `title` string, required
      - `org` string, required
      - `starts_at` string, date-time, required
      - `status` 'announced' | 'scheduled' | 'live' | 'completed' | 'cancelled' | 'postponed', required: Event lifecycle. `postponed` is stored and filterable.
    - `fights` PickemSplit[], required: Non-cancelled bouts in card order.
      - `fight_id` integer, required
      - `fighter_a` object, nullable, required
        - `id` integer, required
        - `slug` string, required
        - `name` string, required
      - `fighter_b` object, nullable, required
        - `id` integer, required
        - `slug` string, required
        - `name` string, required
      - `picks_a` integer, required
      - `picks_b` integer, required
      - `total` integer, required
      - `pct_a` number, nullable, required: 0–100 with one decimal; null when nobody has picked.
  - `meta` object, required
    - `note` string, required: Always present — crowd sentiment, not a market.
    - `ignored_params` string[]: Present only when the request carried query parameters this endpoint does not take — they were ignored. Same list as the `X-UFCalendar-Ignored-Params` header. Sorted, unique.

## Other responses

- `304`: Not Modified — `If-None-Match` matched the current weak `ETag`. Empty body.
- `308`: The slug is a retired alias (the event or fighter was renamed). Follow `Location` to the canonical URL; the numeric-id form never redirects.
- `401`: Missing/invalid API key (`unauthorized`).
- `403`: No active plan on the key's account (`subscription_required`) — choose a plan or start the free 1-day trial at https://www.ufcalendar.com/account/api.
- `404`: Not found (`not_found`; staged-org data 404s until the org is promoted).
- `429`: Rate limited (`rate_limited`) or monthly quota reached (`quota_exceeded`). Honor `Retry-After`.
- `500`: Something broke on our side (`internal_error`). It has been logged under the `request_id`.

---

[API](https://skmtc.dev/ufcalendar/apis/ufcalendar-fight-api.md) · [All operations](https://skmtc.dev/ufcalendar/apis/ufcalendar-fight-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ufcalendar/apis/ufcalendar-fight-api/revisions/9623cc8fb70b?raw)
