---
title: "List players for MLB"
method: GET
path: "/api/v1/mlb/players"
tags: ["MLB"]
---

# List players for MLB

`GET /api/v1/mlb/players`

## Request

- Base URL: `https://api.stat-api.com`
- URL: `https://api.stat-api.com/api/v1/mlb/players`
- Auth: HTTP bearer

## Query parameters

- `team_id` integer
- `roster_status` 'active' | 'injured_reserve' | 'non_roster' | 'free_agent' | 'retired' | 'inactive'
- `limit` integer
- `from_id` integer
- `format` 'json' | 'csv'

## Response `200`

players rows matching the declared filter set.

- MLBPlayersListResponse
  - `has_more` boolean, required: True when a full page came back, so more rows can exist.
  - `limit` integer, required: Page size used for this response.
  - `next_from_id` integer, nullable, required: Pass this as `from_id` on the next request to page forward. `null` on the terminal page, and on a first page requested without `from_id` (that page uses the default sort): to walk every row, start with `from_id=0`.
  - `players` MLBPlayers[], required
    - `bats` string, nullable
    - `birth_city` string, nullable
    - `birth_country` string, nullable
    - `birth_date` string, date, nullable
    - `birth_state` string, nullable
    - `debut_date` string, date-time, nullable
    - `display_fi_last` string, nullable
    - `display_last_comma_first` string, nullable
    - `draft_number` string, nullable
    - `draft_round` string, nullable
    - `draft_year` string, nullable
    - `first_name` string, required
    - `full_name` string, required
    - `full_position_list` string, nullable
    - `height` integer, nullable
    - `id` integer, required: Primary Key
    - `jersey` string, nullable
    - `last_name` string, required
    - `league_id` string, nullable: Official MLB player identifier
    - `league_player_id` integer, required: Official MLB player ID (issued by the league)
    - `league_slug` string, nullable
    - `position_category` string, nullable
    - `primary_position` string, required
    - `profile_pic_url` string, nullable: URL to player profile picture image
    - `roster_status` string, nullable: Canonical roster status, shared across leagues. Derived from team_player_rosters: "active" (26-man), "non_roster" (on the 40-man but optioned), "injured_reserve" (IL); "inactive"/"free_agent" off-roster. The "on a team now" set is {active, injured_reserve, non_roster}.
    - `school` string, nullable
    - `team_id` integer, nullable
    - `throws` string, nullable
    - `weight` integer, nullable

## Other responses

- `400`: No declared filter set was satisfied by the request — see `accepted` in the body for the valid combinations.

---

[API](https://skmtc.dev/stat-api/apis/sports-db-public-api.md) · [All operations](https://skmtc.dev/stat-api/apis/sports-db-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stat-api/apis/sports-db-public-api/revisions/23b66b957723?raw)
