---
title: "Power Index trajectory"
method: GET
path: "/v1/fighters/{idOrSlug}/power-index"
tags: ["Fighters"]
---

# Power Index trajectory

`GET /v1/fighters/{idOrSlug}/power-index`

## Request

- Base URL: `https://api.ufcalendar.com`
- URL: `https://api.ufcalendar.com/v1/fighters/{idOrSlug}/power-index`
- Auth: HTTP bearer

Per-bout rating history from the UFCalendar Power Index engine (rating before/after, model win probability, `outcome` 1 / 0 / 0.5 and its word twin `result`). The NEWEST 500 points, served oldest-first; `meta.truncated` is true when an older tail was dropped.

## Path parameters

- `idOrSlug` string, required

## Response `200`

Rating points

- FighterPowerIndexResponse: The newest 500 points, oldest first.
  - `data` PowerIndexPoint[], required
    - `fought_at` string, date, required
    - `rating_pre` number, required
    - `rating_post` number, required
    - `win_prob` number, nullable, required: Model win probability going in (0–1).
    - `outcome` number, nullable, required: 1 win, 0 loss, 0.5 draw.
    - `result` 'win' | 'loss' | 'draw' | 'null', nullable, required: Word twin of `outcome`.
    - `opponent_fighter_id` integer, nullable, required
    - `fight_id` integer, nullable, required
  - `meta` object, required
    - `truncated` boolean, required: true when the career exceeds 500 rated bouts (the OLDEST are dropped).
    - `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)
