---
title: "List play_participations for NFL"
method: GET
path: "/api/v1/nfl/play_participations"
tags: ["NFL"]
---

# List play_participations for NFL

`GET /api/v1/nfl/play_participations`

## Request

- Base URL: `https://api.stat-api.com`
- URL: `https://api.stat-api.com/api/v1/nfl/play_participations`
- Auth: HTTP bearer

## Query parameters

- `play_id` string
- `game_id` integer
- `possession_team_id` integer
- `limit` integer
- `from_id` integer
- `format` 'json' | 'csv'

## Response `200`

play_participations rows matching the declared filter set.

- NFLPlayParticipationsListResponse
  - `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`.
  - `play_participations` NFLPlayParticipations[], required
    - `defenders_in_box` integer, nullable: Number of defenders within ~8 yards of the line of scrimmage at the snap.
    - `defense_coverage_type` string, nullable: Specific coverage scheme (e.g., `COVER_1`, `COVER_2_MAN`, `COVER_3`, `COVER_4`).
    - `defense_man_zone_type` string, nullable: Man- vs. zone-coverage classification (`MAN`, `ZONE`).
    - `defense_personnel` string, nullable: Defensive personnel grouping (e.g., `4 DL, 2 LB, 5 DB`).
    - `defense_players_gsis_ids` string, nullable: GSIS IDs of defensive players on the field for this play.
    - `game_id` integer, required
    - `id` integer, required: Primary Key
    - `n_defense` integer, nullable: Count of defensive players on the field (typically 11).
    - `n_offense` integer, nullable: Count of offensive players on the field (typically 11).
    - `ngs_air_yds` number, double, nullable: Air yards traveled by the pass from the line of scrimmage to where the receiver caught/dropped it (Next Gen Stats).
    - `number_of_pass_rushers` integer, nullable: Number of defenders who rushed the passer on this play (Next Gen Stats).
    - `offense_formation` string, nullable: Offensive formation alignment (e.g., `SHOTGUN`, `SINGLEBACK`, `I_FORM`, `PISTOL`).
    - `offense_personnel` string, nullable: Offensive personnel grouping in `RB-TE-WR` shorthand (e.g., `1 RB, 2 TE, 2 WR` → `12 personnel`).
    - `offense_players_gsis_ids` string, nullable: GSIS IDs of offensive players on the field for this play.
    - `play_id` string, required: Play identifier matching `play_by_plays.play_id` for the same game.
    - `players_on_play_gsis_ids` string, nullable: GSIS IDs of every player on the field for this play (comma-separated or JSON-encoded depending on source vintage).
    - `possession_team_id` integer, required: Team in possession on this play (FK to `teams`).
    - `route` string, nullable: Route the targeted receiver ran (e.g., `GO`, `SLANT`, `OUT`, `POST`).
    - `time_to_throw` number, double, nullable: Time from snap to pass release in seconds (Next Gen Stats).
    - `was_pressure` boolean, nullable: True if the quarterback faced pass-rush pressure on this play.

## 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/601ff9eaca3f?raw)
