Play

A play consists of a list of "playStat"s (as described in the stats.md file) as well as some attributes such as duration. A drive is a property associated with a play.

Name Default Type Description
id * String unique identifier
type enum Type Domain type
lastModifiedDate DateTime
orderSequence * Float when did this play occur in relation to other plays? This is floating point, in case of play insertion between previous two plays
game Game what game does this play belong to
quarter * Integer what quarter did this play occur? (5,6... == overtime)
possessionTeam * Team possession team
down * Integer what down is this?
yards * Integer total number of yards gained/lost in this play
playType * PlayType is this a real play or a timeout?
scoringPlayType * ScoringPlayType scoring play type
scoringTeam * Team scoring team. This value will be null if the play is not a scoring play
yardsToGo * Integer how many yards until a first down?
goalToGo * boolean is this play "goal to go" or not?
yardLineSide * String which side of the field is the ball starting on? (Empty when on 50 yardline)
yardLineNumber * Integer the yard line number of the ball start.
endYardLineSide * Integer the side of field the ball is on at the end of the play.
endYardLineNumber * Integer yard line number where the ball is at the end of the play. Null if the play is a ScoringPlay/TIMEOUT/COMMENT
description * String text rich description of what happened during the play
gameClock * String ("mm:ss") the current game clock
firstDown * boolean did this play result in a first down
realStartTime * DateTime (ISO8601) when did this play start in real time? Expressed in ISO-8601 format.
playReviewStatus * PlayReviewStatus information about the review status of this play.
playStats * List<PlayStat> list of playStat objects. what events occurred during play?
relatedContent Related Provides information for other entities associated with this play
playNumber Integer legacy play Id

Default Sorting Field

Default Sorting Field Default Ordering
game.gameTime DESC
orderSequence ASC

PlayInjury

Name Default Type Description
id * String unique identifier
playerId * String which player did this occur to?
injury * String what kind of injury was this?
returnStatus * ReturnStatus when is this player due to return?

PlayReview

Name Default Type Description
status * PlayReviewStatus is the play under review/was it reviewed?
teamId Integer if a team called this review, which team called it?
description String a text rich description of what is under review

PlayReviewStatus - Enum

Value Description
NOT_REVIEWED never reviewed
UNDER_REVIEW currently being reviewed
REVIEWED was reviewed and not overturned
REVIEWED_OVERTURNED was reviewed and overturned

PlayType - Enum

Value Description
GAME_START game start
TIMEOUT a timeout
FAIR_CATCH_KICK fair catch kick
FREE_KICK free kick
END_QUARTER end of a quarter
COMMENT no play just a comment
END_GAME end of game
PUNT punt
FIELD_GOAL field goal
KICK_OFF kick off
XP_KICK extra point kick
PENALTY penalty where no play counted
PASS pass
SACK passing attempt that resulted in sack
RUSH rush
PAT2 2 point conversion

ScoringPlayType - Enum

Value Description
TD touchdown
FG field goal
PAT extra point kick
SFTY safety

example json

A pass completion + fumble + fumble lost + fumble recovery:

{
  "id": "c6d7b2bb-7f2a-42ac-86a8-d4f80612c165",
  "orderSequence": 12,
  "game": {
    "id": "f82cc9dd-e5bc-49c1-8ae4-fd78a7acad51"
  },
  "drive": {
    "id": "1a4a11cd-4295-48a8-a0db-c318faddb91e"
  },
  "quarter": 1,
  "possessionTeam": {
    "id": "d9a98a6a-6955-46c7-a67f-b37c2bf1673f"
  },
  "down": 4,
  "yards": 11,
  "playType": "PLAY",
  "gameClockStartTime": "14:51",
  "gameClockAtSnap": "14:51",
  "gameClockEndTime": "13:59",
  "realStartTime": "2014-10-16T19:20:30.45Z",  
  "playClockDuration": 40,
  "playClockStop": 15,
  "isGameClockActiveAfterPlay": true,
  "description": "(:09) (Shotgun) 12-A.Rodgers pass long right to 18-R.Cobb for 53 yards, ...",
  "yardsToGo": 10,
  "isGoalToGo": false,
  "yardLineSideTeam": {
    "id": "d9a98a6a-6955-46c7-a67f-b37c2bf1673f"
  },
  "yardLineNumber": 25,
  "playReviewStaus": "NOT_REVIEWED",
  "injuries": {
    ... // paginator content
    "data" : [
      "id": "444",
      "playerId": "54321",
      "injuryType": "ankle sprain",
      "returnStatus": "OUT_FOR_GAME"
    ]
  }
  "playStats": {
    ... // paginator content
    "data": [
      {
        "orderSequence": 100,
        "playerId": "54321",
        "stat": {
          "type": "PassAtt"
          "unit": 53
        }
      },
      {
        "orderSequence": 101,
        "playerId": "54321",
        "stat": {
          "type": "PassYds",
          "unit": 53
        }
      },
      {
        "orderSequence": 102,
        "playerId": "54321",
        "stat": {
          "type": "PassComp",
          "unit": 53
        }
      },
      {
        "orderSequence": 103,
        "playerId": "54322",
        "stat": {
          "type": "RecTar"
        }
      },
      {
        "orderSequence": 104,
        "playerId": "54322",
        "stat": {
          "type": "Rec"
        }
      },
      {
        "orderSequence": 105,
        "playerId": "54322",
        "stat": {
          "type": "RecYds",
          "unit": 53
        }
      },
      {
        "orderSequence": 106,
        "playerId": "54322",
        "stat": {
          "type": "YAC",
          "unit": 5
        }
      },
      {
        "orderSequence": 107,
        "playerId": "54322",
        "stat": {
          "type": "Fum"
        }
      },
      {
        "orderSequence": 108,
        "playerId": "7654",
        "stat": {
          "type": "FumF"
        }
      },
      {
        "orderSequence": 109,
        "playerId": "54322",
        "stat": {
          "type": "FumLost"
        }
      },
      {
        "orderSequence": 110,
        "playerId": "7654",
        "stat": {
          "type": "FumRec"
        }
      }
    ]
  }
  "relatedContent" : {
    ... // paginator object for related content
  }
}