NFL coaching_staff_tenures API
coaching_staff_tenures
nfl.coaching_staff_tenuresEvery coaching change across NFL history with dates — when each head coach, offensive coordinator, and defensive coordinator started, when they left, and why (fired, resigned, promoted, retired).
GET/api/v1/nfl/coaching_staff_tenuresList coaching_staff_tenures for NFL
Requires one of:
team_id — requests satisfying none of these return 400.Parameters
team_idquerybigintoptionalFilter by team.
season_idquerybigintoptionalFilter to a season by year (e.g., 2025 for the 2025-26 season). Defaults to the current season.
positionquerystringoptionalFilter by player position. Values: DC, HC, OC.
limitqueryintegeroptionaldefault 50Page size. Defaults to 50; max 5000.
from_idquerybigintoptionalReturn rows with id strictly greater than this value; page using the previous response's `next_from_id`. Omit on the first page.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/nfl/coaching_staff_tenures?team_id=1'Responses
200coaching_staff_tenures rows matching the declared filter set, wrapped in { coaching_staff_tenures, limit, next_from_id }. next_from_id is the last row's id on a full page — pass it back via ?from_id= to walk the full result; null marks the terminal page.application/jsonshow example ▸
400No declared filter set was satisfied — response body matches MissingRequiredFiltersError; pick one combo from the accepted-sets hint and resend.
application/jsonResponse Schema(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | Reference to the season e.g. 2024 | |
team_id | bigint | Reference to the team e.g. 6 | |
effective_date | date | — | Date this coach started in this role e.g. 2026-03-01 |
end_date | datenullable | — | Date this coach ended (null if current) e.g. 2025-01-06 |
first_name | stringnullable | — | — e.g. Mike |
full_name | string | — | Coach full name e.g. Jeff Ulbrich |
is_interim | boolean | — | — Values:falsetrue |
last_name | stringnullable | — | — e.g. Taylor |
position | string | — | Coaching position (HC, OC, DC) Values:OCDCHC |
reason | stringnullable | — | Reason for change (fired, resigned, hired, promoted) Values:D-041: end unknown (no …first seen: club site a…D-041: not the 2026 hea…firedD-041: not the 2026 hea… |
GET/api/v1/nfl/coaching_staff_tenures/{id}Get a single coaching_staff_tenure by id
Parameters
idpathbigintrequiredPrimary key (id) of the coaching_staff_tenure row.
Restores the documented defaults (trial keys only accept the unchanged defaults).
Request
curl -sS --compressed \
-H 'Authorization: Bearer YOUR_API_KEY' \
'https://api.stat-api.com/api/v1/nfl/coaching_staff_tenures/{pk_value}'Responses
200Single coaching_staff_tenure row.application/jsonshow example ▸
404Row not found.
Response Schema(11 fields)show schema ▸
| Field | Type | References | Description |
|---|---|---|---|
idkey | bigint | — | Primary Key |
season_id | bigint | Reference to the season e.g. 2024 | |
team_id | bigint | Reference to the team e.g. 6 | |
effective_date | date | — | Date this coach started in this role e.g. 2026-03-01 |
end_date | datenullable | — | Date this coach ended (null if current) e.g. 2025-01-06 |
first_name | stringnullable | — | — e.g. Mike |
full_name | string | — | Coach full name e.g. Jeff Ulbrich |
is_interim | boolean | — | — Values:falsetrue |
last_name | stringnullable | — | — e.g. Taylor |
position | string | — | Coaching position (HC, OC, DC) Values:OCDCHC |
reason | stringnullable | — | Reason for change (fired, resigned, hired, promoted) Values:D-041: end unknown (no …first seen: club site a…D-041: not the 2026 hea…firedD-041: not the 2026 hea… |