# players

Read a player's projection, range and status, and compare players side by side.

| Method | Path | Title | Access | Price | MCP tool |
| --- | --- | --- | --- | --- | --- |
| GET | [`/v1/players/{player_id}`](#get-player) | Get a player | public | 1 | `get_player` |

`GET /v1/players/{player_id}`

## Get a player
public, no key needed · 1 credit, not charged during the beta · MCP tool `get_player` · status live

A player's identity and team, current injury report, latest news and stat lines, each with its source and time. `injury` is the current report and `news` the latest items (NFL); each carries its source and time.

### Parameters
- `player_id` string · path · required  
  The player's Kelly ID (plr_), from search.  
  pattern ^plr_[0123456789abcdefghjkmnpqrstvwxyz]{20}$

### Response
`200` The player.

- `object` const · required  
  Always player.  
  Always `"player"`.
- `id` string · required  
  The player's Kelly ID (plr_).  
  pattern ^plr_[0123456789abcdefghjkmnpqrstvwxyz]{20}$
- `name` string · required  
  The player's name.
- `sport` string · nullable  
  The sport's slug, such as american_football.
- `position` string · nullable  
  The position, such as WR.
- `team` one of several shapes  
  The player's current team, when Kelly knows it.
- `availability` array of object  
  Each source's latest availability status, by source.
  - `status` string  
    The status as Kelly stores it (out, doubtful, questionable, ...).
  - `game_id` string · nullable  
    The game it is for, when the source names one.  
    pattern ^gm_[0123456789abcdefghjkmnpqrstvwxyz]{20}$
  - `season` string | integer · nullable  
    The season it is for.
  - `week` integer · nullable  
    The week it is for.
  - `provenance` any  
    Where it came from, and when.
- `injury` object  
  The player's current injury report: the newest designation among the official report and Kelly's injury feeds, with the injury and practice participation from the newest report that names them. Absent when the player is on no current report.
  - `status` string  
    The designation in words: Out, Doubtful, Questionable, Injured reserve, Physically unable to perform, Suspended, Day-to-day, ...
  - `roster_status` string  
    A reserve list the player is on when the designation says something else.
  - `detail` string  
    The injury in a lower-case word or phrase (hamstring).
  - `practice` string  
    Practice participation (NFL).
  - `game_day` string  
    Game-day status when known: active, inactive or out.
  - `season` string | integer  
    The season of the report.
  - `week` integer  
    The week of the report (NFL).
  - `reported_at` string · nullable  
    When the source reported it.  
    format date-time
  - `provenance` any  
    Where it came from, and when.
- `news` array of object  
  The latest news items, newest first (at most five; NFL).
  - `kind` string  
    injury, transaction or news, as the source files it.
  - `headline` string  
    The headline, one plain line of at most 200 characters.
  - `published_at` string · nullable  
    When it was published.  
    format date-time
  - `provenance` any  
    Where it came from, and when.
- `season_lines` array of object  
  Season stat lines, newest season first.
  - `subject_id` string  
    The player's ID.  
    pattern ^plr_[0123456789abcdefghjkmnpqrstvwxyz]{20}$
  - `game_id` string · nullable  
    Always null for a season line.  
    pattern ^gm_[0123456789abcdefghjkmnpqrstvwxyz]{20}$
  - `season` string · nullable  
    The season's label.
  - `season_type` string · nullable  
    regular, postseason or preseason.
  - `basis` string · nullable  
    total, per_game or rate.
  - `stats` object  
    Stat values by Kelly's stat key: an integer, or a decimal as a string of its exact digits. Only stats the register serves on the API appear.
  - `provenance` any  
    Where it came from, and when.
- `game_lines` array of object  
  The latest game's stat lines, by source.
  - `subject_id` string  
    The player's ID.  
    pattern ^plr_[0123456789abcdefghjkmnpqrstvwxyz]{20}$
  - `game_id` string · nullable  
    The game's ID.  
    pattern ^gm_[0123456789abcdefghjkmnpqrstvwxyz]{20}$
  - `season` string · nullable  
    The season's label.
  - `season_type` string · nullable  
    regular, postseason or preseason.
  - `basis` string · nullable  
    total, per_game or rate.
  - `stats` object  
    Stat values by Kelly's stat key, as the source gave them: an integer, or a decimal as a string of its exact digits. Only stats the register serves on the API appear.
  - `provenance` any  
    Where it came from, and when.
- `provenance` any  
  Where the player's identity came from.
- `as_of` string · required  
  When the value was true; for a derived value, its newest input's time.  
  format date-time
- `source` string · required  
  Who produced the value, as shown to readers.  
  min length 1
- `stale_after_ms` integer · nullable  
  On live data: milliseconds it stays current.  
  min 0
- `attribution` string · nullable  
  Attribution the source's terms require.
- `request_id` string · nullable  
  The request that produced this response.
- `live_topics` array of string  
  Kelly Wire topics that update this resource (API and cards only).
- `rg_line` string · nullable  
  The cost line (COMP-1, D19) on every resource and result that touches wagering: one engine-computed cost fact, or the short form, plus 21+ and the helpline. Show it with the value. Null on resources that don't touch wagering.

### Errors
[`invalid_request`](/problems/invalid_request) · [`credential_in_url`](/problems/credential_in_url) · [`unsupported_api_version`](/problems/unsupported_api_version) · [`unauthenticated`](/problems/unauthenticated) · [`method_not_allowed`](/problems/method_not_allowed) · [`rate_limited`](/problems/rate_limited) · [`internal_error`](/problems/internal_error) · [`service_unavailable`](/problems/service_unavailable) · [`quota_exhausted`](/problems/quota_exhausted) · [`insufficient_scope`](/problems/insufficient_scope) · [`not_entitled`](/problems/not_entitled) · [`not_found`](/problems/not_found)

### Example
```http
GET https://api.askkelly.ai/v1/players/plr_00000000000000000000
Authorization: Bearer $KELLY_API_KEY
```

```json
{
  "type": "https://docs.askkelly.ai/problems/not_found",
  "title": "Not found",
  "status": 404,
  "code": "not_found",
  "detail": "No player with that player_id is served.",
  "param": "player_id",
  "doc_url": "https://docs.askkelly.ai/problems/not_found",
  "request_id": "req_84476c5588d269dd684553a6",
  "retryable": false,
  "display_message": "That could not be found."
}
```

```http
GET https://api.askkelly.ai/v1/players/plr_samp1eexamp1eexamp1e
Authorization: Bearer $KELLY_API_KEY
```

```json
{
  "object": "player",
  "id": "plr_samp1eexamp1eexamp1e",
  "name": "Sample Quarterback",
  "sport": "american_football",
  "position": "QB",
  "team": {
    "id": "tm_mp49sdajkwdncngf5twg",
    "name": "Las Vegas Raiders",
    "abbreviation": "LV",
    "competition": "nfl",
    "provenance": {
      "source": "nflverse",
      "source_ts": "2026-10-04T12:00:00Z",
      "ingest_ts": "2026-10-04T12:00:00Z",
      "known_by": [
        {
          "source": "nflverse",
          "source_id": "LV"
        }
      ]
    }
  },
  "availability": [
    {
      "status": "questionable",
      "game_id": "gm_55zc8ywp3mzwg79py6mv",
      "season": "2026",
      "week": 4,
      "provenance": {
        "source": "nflverse",
        "source_ts": "2026-10-04T17:30:00Z",
        "ingest_ts": "2026-10-04T17:30:00Z"
      }
    }
  ],
  "injury": {
    "status": "Questionable",
    "season": "2026",
    "week": 4,
    "reported_at": "2026-10-04T17:30:00Z",
    "provenance": {
      "source": "nflverse",
      "source_ts": "2026-10-04T17:30:00Z",
      "ingest_ts": "2026-10-04T17:30:00Z"
    }
  },
  "provenance": {
    "source": "nflverse",
    "source_ts": "2026-10-04T17:30:00Z",
    "ingest_ts": "2026-10-04T17:30:00Z",
    "known_by": [
      {
        "source": "nflverse",
        "source_id": "00-0000001"
      }
    ]
  },
  "as_of": "2026-10-04T17:30:00Z",
  "source": "nflverse",
  "attribution": "nflverse data (CC BY 4.0)",
  "request_id": "req_89ed7fb39e05f31337053172",
  "live_topics": [],
  "rg_line": null
}
```

Where each value comes from:

1. nflverse · as of 2026-10-04T17:30:00Z · nflverse data (CC BY 4.0)
2. nflverse · happened at 2026-10-04T12:00:00Z
3. nflverse · happened at 2026-10-04T17:30:00Z
4. nflverse · happened at 2026-10-04T17:30:00Z
5. nflverse · happened at 2026-10-04T17:30:00Z

Generated from Kelly API 2026-10-05.

---

Generated from Kelly API 2026-10-05

Support: support@askkelly.ai · Security and disclosure: https://docs.askkelly.ai/security

Information is the edge. Odds are information, not advice · 21+ · Get help
