Overview
PFFMessageXMLGet and PFFMessageXML launch PFF plays in Thunder using PFF game and play identifiers.
Thunder provides both GET and POST versions of this launch method:
PFFMessageXMLGet uses the GET verb and passes the XML payload in the URL query string.
PFFMessageXML uses the POST verb and submits the XML payload in the request body.
Both methods support the same XML structure and produce the same launch behavior.
PFFMessageXMLGet and PFFMessageXML support the following leagues:
- NFL
- NCAA
- AAF
- XFL
- CFL
URL Format
GET
/XOS/PFFMessageXMLGet?<root>...</root>POST
/XOS/PFFMessageXMLAuthentication
PFFMessageXMLGet and PFFMessageXML require a valid authentication token in the launch XML.
For information on:
- Generating authentication tokens
- Vendor GUID requirements
- Token duration and expiration
- Authentication examples
See:
Thunder API – Authentication Token
Common XML Structure
Both PFFMessageXMLGet and PFFMessageXML use the same XML payload structure.
<root>
<authentication token='TOKEN' vendor='VENDOR_GUID'/>
<payload>
<ContentType value='PFF Plays'>
<League value='NFL'>
<Plays>
<Play
Gamekey='GAMEID'
PlayId='PLAYID'
ScoutedTeam='TEAMCODE'/>
</Plays>
</League>
</ContentType>
</payload>
</root>Play Attributes
| Attribute | Required | Description |
|---|---|---|
| Gamekey | Yes | PFF game identifier |
| PlayId | Yes | PFF play identifier |
| ScoutedTeam | No | Team code used to ensure the correct team-specific play is resolved |
Both Gamekey and PlayId are required for PFF launches.
Although the attribute name is Gamekey, the value supplied is the PFF Game ID.
Supported League Values
| League | Supported |
|---|---|
| NFL | Yes |
| NCAA | Yes |
| AAF | Yes |
| XFL | Yes |
| CFL | Yes |
PFF Game and Play IDs
PFF launches require both:
-
Gamekey(PFF Game ID) -
PlayId(PFF Play ID)
Example:
<Play
Gamekey='23130'
PlayId='4568493'
ScoutedTeam='PHI'/>ScoutedTeam
ScoutedTeam is optional but recommended.
When ScoutedTeam is not provided, Thunder may resolve either the Team 1 offense or Team 2 defense version of the play.
To ensure consistent play resolution, provide ScoutedTeam when available.
For PFF launches, ScoutedTeam uses PFF team codes.
Example:
<Play
Gamekey='23130'
PlayId='4568493'
ScoutedTeam='PHI'/>Optional Angle Selection
PFFMessageXMLGet and PFFMessageXML support the optional Angles element.
Format
<Angles
Sideline='True'
Endzone='True'
Scoreboard='True'
TVBroadcast='False'
NoMedia='False'/>Placement
Angles is placed inside ContentType after the League element.
Example:
<ContentType value='PFF Plays'>
<League value='NFL'>
<Plays>
<Play
Gamekey='23130'
PlayId='4568493'/>
</Plays>
</League>
<Angles
Sideline='True'
Endzone='True'
Scoreboard='False'
TVBroadcast='False'/>
</ContentType>Supported Attributes
| Attribute | Description |
|---|---|
| Sideline | Enables sideline angle |
| Endzone | Enables endzone angle |
| Scoreboard | Enables scoreboard angle |
| TVBroadcast | Enables TV/Broadcast angle |
| NoMedia | Returns play metadata without media information |
All values support True or False.
NoMedia returns play metadata without media information.
Optional Playlist Behavior
PFFMessageXMLGet and PFFMessageXML support the optional OpenThunderPlaylist element.
Format
<OpenThunderPlaylist
value='True'
mode='new'
name='examplename'/>Placement
OpenThunderPlaylist is placed inside ContentType after the League element.
Example:
<ContentType value='PFF Plays'>
<League value='NFL'>
<Plays>
<Play
Gamekey='23130'
PlayId='4568493'/>
</Plays>
</League>
<OpenThunderPlaylist
value='True'
mode='new'
name='examplename'/>
</ContentType>Supported Modes
| Mode | Description |
|---|---|
| new | Creates a new playlist |
| append | Adds plays to the existing playlist |
| replace | Replaces the current playlist |
When value='False', playlist behavior is disabled regardless of mode.
Example XML Structure
<root>
<authentication token='TOKEN' vendor='VENDOR_GUID'/>
<payload>
<ContentType value='PFF Plays'>
<League value='NFL'>
<Plays>
<Play
Gamekey='23130'
PlayId='4568493'
ScoutedTeam='PHI'/>
</Plays>
</League>
<Angles
Sideline='True'
Endzone='True'
Scoreboard='True'
TVBroadcast='False'/>
<OpenThunderPlaylist
value='True'
mode='new'
name='Example Playlist'/>
</ContentType>
</payload>
</root>
Comments
0 comments
Please sign in to leave a comment.