Player profile + career stats
A field-router route, the same family as /v1/athletes/{id}: data is a map keyed by FieldKey and each value is a FieldResult, or null when that field could not be satisfied (still a 200, with the key named in meta.fields_missing). The profile is under data.players.value.
This operation declared a bare '200': { description: ok } with NO content until 2026-09-25, so a client generated from /openapi.json got no type at all for a flagship endpoint.
data.players.value[] entries carry headshot_url as of 2026-09-28. The key was absent here on EVERY tier, including Pro, while /v1/players, /v1/players/{id}/profile and /v1/stored/players all served it; see the Player schema for the present-and-null contract and the Solo field gate.
Request
- Base URL: https://api.bigballsdata.com
- URL: https://api.bigballsdata.com/v1/players/{id}
- Auth: one of:
- API key in header x-api-key
- HTTP bearer
Path parameters
Query parameters
Optional. Narrows the lookup; also selects the plan gate.
Response
ok. data.players is a FieldResult, or null when unavailable (still 200).
Example response
{
"meta": {
"date_window": {
"timezone": "UTC",
"start_utc": "2026-09-13T00:00:00.000Z",
"end_utc": "2026-09-14T00:00:00.000Z"
},
"source": "official-league",
"confidence": 0.95,
"cache_age_ms": 4200,
"request_id": "req_abc123",
"note": "match_id is omitted on 380 of 380 rows in this response. The live feed behind them does not carry an id we can resolve to a stored match, so we return no id rather than one that will not work. For rows with ids you can call back into, use /v1/stored/matches with the same sport or league, for example /v1/stored/matches?league=epl."
},
"error": {
"code": "NOT_FOUND"
}
}Changes
No recorded changes to this operation across all 2 revisions of this API.