---
title: "Cross-sport player search"
method: GET
path: "/v1/players/search"
tags: ["Multi"]
---

# Cross-sport player search

`GET /v1/players/search`

## Request

- Base URL: `https://api.playcallerapp.com`
- URL: `https://api.playcallerapp.com/v1/players/search`
- Auth: API key in header `X-PlayCaller-Key`

Search across all 13,606 canonical player identities (NFL + MLB + NBA) by name, with optional sport and position filters. Returns matching players from all sports in a single call.

**Tier access:** Developer Sandbox, Build, Growth, Pro Insights, Syndicate Alpha

## Query parameters

- `q` string, required
- `sport` 'nfl' | 'mlb' | 'nba'
- `position` string
- `limit` integer

## Response `200`

Matching player identities across all sports

- object
  - `success` boolean
  - `endpoint` string
  - `q` string
  - `count` integer
  - `data` PlayerIdentity[]
    - `playcaller_id` string, required: Canonical PlayCaller player ID — stable across all platforms
    - `full_name` string, required
    - `position` string, required
    - `team` string, required
    - `sport_key` 'nfl' | 'mlb' | 'nba', required
    - `status` 'active' | 'injured' | 'inactive'
    - `platform_ids` object: Platform-specific IDs for this player. Keys are platform names; values are IDs used by that platform.
  - `meta` ResponseMeta
    - `sport` string
    - `league` string: Present on multi-sport (ESPN-backed) endpoints; mirrors sport unless a sport has sub-leagues (e.g. soccer: epl/mls).
    - `tier` string
    - `calls_remaining_this_month` integer
    - `documentation_url` string, uri

## Other responses

- `400`: Missing or too-short q parameter
- `401`: Missing or invalid API key
- `429`: Rate limit or monthly quota exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/playcallerapp/apis/playcaller-data-api.md) · [All operations](https://skmtc.dev/playcallerapp/apis/playcaller-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/playcallerapp/apis/playcaller-data-api/revisions/100c0a3ffbfe?raw)
