GET /v1/persons/{per_id}/overview — the composed player overview: identity, current team, capabilities, season stats, and a capped context-rich game log, in one read.
CDN-friendly by design: the successful response carries
[PERSON_OVERVIEW_CACHE_CONTROL] (public, max-age=300, s-maxage=900, stale-while-revalidate=3600) because the statshawk-web public marketing
pages and consumer popups sit behind a CDN — the overview is deliberately
cache-friendly and slightly stale-tolerant, unlike the rest of the read
surface. The header is attached to the built [Response] here (the same
handler-owned-header pattern as the team-logo asset proxy); the
ApiResponse envelope is untouched.
CDN-friendly by design: the successful response carries
[PERSON_OVERVIEW_CACHE_CONTROL] (public, max-age=300, s-maxage=900, stale-while-revalidate=3600) because the statshawk-web public marketing
pages and consumer popups sit behind a CDN — the overview is deliberately
cache-friendly and slightly stale-tolerant, unlike the rest of the read
surface. The header is attached to the built [Response] here (the same
handler-owned-header pattern as the team-logo asset proxy); the
ApiResponse envelope is untouched.
Raw API key (sk_live_… or sk_test_…). Preferred for REST clients. Keys are read-only; the environment prefix is the only key role. See https://statshawk.ai/docs/getting-started/permissions
In: header
Path Parameters
Minted person id (per_…)
Query Parameters
Competition slug (e.g. mlb) or minted comp_… id.
Season start year — cross-year leagues (NBA/NHL/NCAA) use the year the season STARTS in (2025 = the 2025-26 season). Omitted ⇒ the latest season with data for this person in the competition.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/persons/string/overview?competition=string"{
"data": {
"capabilities": [
{
"measure_notes": {
"property1": "string",
"property2": "string"
},
"measures": [
"string"
],
"phase": "string"
}
],
"competition": "comp_0a1b2c3d4e5f6g7h8i9j0k1l2m",
"game_log": [
{
"event": null,
"game": "cst_0a1b2c3d4e5f6g7h8i9j0k1l2m",
"home": true,
"kickoff": "2019-08-24T14:15:22Z",
"line": {
"appearance": "apr_0a1b2c3d4e5f6g7h8i9j0k1l2m",
"baseball": null,
"contest": "cst_0a1b2c3d4e5f6g7h8i9j0k1l2m",
"person": "per_0a1b2c3d4e5f6g7h8i9j0k1l2m",
"person_name": "string",
"phases": [
{
"measures": {},
"phase": "string"
}
],
"team": null
},
"opponent": null,
"status": null,
"team": null
}
],
"person": {
"bio": {
"baseball": null,
"birth_country": null,
"display_name": "string",
"dob": "2019-08-24",
"full_name": "string",
"height_inches": null,
"position": null,
"weight_lbs": null
},
"external_ids": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"id": "per_0a1b2c3d4e5f6g7h8i9j0k1l2m"
},
"season": 0,
"season_stats": {},
"sport": "basketball",
"team": null
},
"meta": {
"cache": "HIT",
"fetched_at": "2025-10-15T18:30:00Z",
"request_id": "266ea41d-adf5-480b-af50-15b940c2b846",
"source": "postgres",
"version": "v1"
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}{
"error": {
"code": "string",
"message": "string",
"property1": null,
"property2": null
}
}