---
title: "Aggregate review payload for a completed Mythic+ run: Keystone Pace, past dungeon runs, and nearby spec leaderboard rivals"
method: GET
path: "/api/v1/client/run-review"
tags: ["mythic_plus"]
---

# Aggregate review payload for a completed Mythic+ run: Keystone Pace, past dungeon runs, and nearby spec leaderboard rivals

`GET /api/v1/client/run-review`

## Query parameters

- `access_key` string — The API key from your RaiderIO App: http://raider.io/settings/apps. Apps with API keys have higher rate limits.
- `region` 'us' | 'eu' | 'tw' | 'kr' | 'cn', required — Name of region to look up character in. Can be one of: us, eu, kr, tw
- `realm` string, required — Name of realm that character is on. This can be in slug or title format, e.g. "Altar of Storms" or "altar-of-storms"
- `name` string, required — Name of the character to look up. This is not case sensitive.
- `dungeonId` integer, required — Raider.IO dungeon ID the run was completed in
- `keyLevel` integer, required — Mythic keystone level of the completed run
- `clearTimeMs` integer, required — Clear time of the completed run in milliseconds
- `affixes` string — Comma separated affix IDs for the completed run. Used to derive the affix-adjusted timer when the canonical run is not indexed yet.
- `itemLevelMean` number — Observed average item level of the completed run group, used for exact-bracket ILVL Pace
- `scope` 'realm' | 'region' | 'world' — Scope of the rivals spec leaderboard. One of: realm, region, world
- `specId` integer — Spec ID for the rivals leaderboard. Defaults to the character's most-played spec for this dungeon, falling back to their active spec
- `completedAt` string — ISO 8601 completion timestamp of the run. Scopes the historical standing to the run's weekly period; defaults to now (current period) when omitted. Historical runs MUST send their real completion time. A malformed value degrades only the historical standing (it never fails the request).

## Response `200`

Successful

- RunReviewResponse
  - `percentile` number, nullable, required — Current Pace: worldwide percentile of this clear time within the latest published whole-season population for the dungeon and key level.
  - `historicalPercentile` number, nullable, required — Historical Pace: worldwide percentile of this clear time within the run's published weekly population; null when unavailable or too thin.
  - `historicalLocked` boolean, required — Whether the Historical Pace period is finalized in the active materialization.
  - `keystonePace` KeystonePace, nullable, required — Worldwide aliases plus Current and Historical regular/item-level Pace standings for the run Region and SubRegions.
    - `current` Current, nullable, required
      - `percentile` number, required
      - `populationCount` integer, required
      - `generatedAt` string, required
    - `historical` Historical, nullable, required
      - `percentile` number, required
      - `populationCount` integer, required
      - `generatedAt` string, required
      - `period` integer, required
      - `locked` boolean, required
    - `itemLevel` ItemLevel, nullable, required
      - `average` number, required
      - `min` number, required
      - `maxExclusive` number, required
      - `current` Current, nullable, required
        - `percentile` number, required
        - `populationCount` integer, required
        - `generatedAt` string, required
      - `historical` Historical, nullable, required
        - `percentile` number, required
        - `populationCount` integer, required
        - `generatedAt` string, required
        - `period` integer, required
        - `locked` boolean, required
    - `scopes` Scopes, required
      - `world` World, required
        - `current` Current, nullable, required
          - `percentile` number, required
          - `populationCount` integer, required
          - `generatedAt` string, required
        - `historical` Historical, nullable, required
          - `percentile` number, required
          - `populationCount` integer, required
          - `generatedAt` string, required
          - `period` integer, required
          - `locked` boolean, required
        - `itemLevel` ItemLevel, nullable, required
          - `average` number, required
          - `min` number, required
          - `maxExclusive` number, required
          - `current` Current, nullable, required
            - `percentile` number, required
            - `populationCount` integer, required
            - `generatedAt` string, required
          - `historical` Historical, nullable, required
            - `percentile` number, required
            - `populationCount` integer, required
            - `generatedAt` string, required
            - `period` integer, required
            - `locked` boolean, required
        - `scope` Scope1, required
          - `type` 'world', required
          - `id` string, nullable, required
          - `slug` 'world', required
      - `region` Region, nullable, required
        - `current` Current, nullable, required
          - `percentile` number, required
          - `populationCount` integer, required
          - `generatedAt` string, required
        - `historical` Historical, nullable, required
          - `percentile` number, required
          - `populationCount` integer, required
          - `generatedAt` string, required
          - `period` integer, required
          - `locked` boolean, required
        - `itemLevel` ItemLevel, nullable, required
          - `average` number, required
          - `min` number, required
          - `maxExclusive` number, required
          - `current` Current, nullable, required
            - `percentile` number, required
            - `populationCount` integer, required
            - `generatedAt` string, required
          - `historical` Historical, nullable, required
            - `percentile` number, required
            - `populationCount` integer, required
            - `generatedAt` string, required
            - `period` integer, required
            - `locked` boolean, required
        - `scope` Scope2, required
          - `type` 'region', required
          - `id` integer, required
          - `slug` string, required
      - `subRegions` Model1[], required
        - `current` Current, nullable, required
          - `percentile` number, required
          - `populationCount` integer, required
          - `generatedAt` string, required
        - `historical` Historical, nullable, required
          - `percentile` number, required
          - `populationCount` integer, required
          - `generatedAt` string, required
          - `period` integer, required
          - `locked` boolean, required
        - `itemLevel` ItemLevel, nullable, required
          - `average` number, required
          - `min` number, required
          - `maxExclusive` number, required
          - `current` Current, nullable, required
            - `percentile` number, required
            - `populationCount` integer, required
            - `generatedAt` string, required
          - `historical` Historical, nullable, required
            - `percentile` number, required
            - `populationCount` integer, required
            - `generatedAt` string, required
            - `period` integer, required
            - `locked` boolean, required
        - `scope` Scope3, required
          - `type` 'subregion', required
          - `id` integer, required
          - `slug` string, required
  - `runScore` number, nullable, required — Run score derived from keyLevel, clearTimeMs, and the canonical or affix-adjusted dungeon timer
  - `pastRuns` RunReviewPastRun[], required — The character's historical runs for this dungeon, most recent first, up to 12
    - `completedAt` string, required — ISO 8601 completion timestamp
    - `keyLevel` integer, required — Mythic keystone level of the run
    - `clearTimeMs` integer, required — Clear time in milliseconds
    - `timed` boolean, required — Whether the run beat the keystone timer
    - `score` number, nullable, required — Score of the run
  - `rivals` Rivals1, nullable, required — Spec leaderboard window around the character, or null if unavailable
    - `scope` 'realm' | 'region' | 'world', required — Scope of the rivals leaderboard
    - `entries` RunReviewRivalEntry[], required — Leaderboard entries around the character (self +/- 2)
      - `rank` integer, required — Leaderboard rank
      - `name` string, required — Character name
      - `realm` string, required — Character realm name
      - `score` number, required — Leaderboard score
      - `isSelf` boolean, required — Whether this entry is the requested character

---

[API](https://skmtc.net/raider/apis/raider-io-developer-api.md) · [All operations](https://skmtc.net/raider/apis/raider-io-developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/raider/raider-io-developer-api/versions/4c612ac925bb/schema)
