This document explains the In-Arena Volleyball (IAV) software. This feed is provided in venue by means of a LAN connection. It provides both individual actions and aggregated data. IAV comes as an external executable installed and runned by NCAA LiveStats.
The feed is a simple TCP socket connecting to specified port. By default the port number is 50200 on the computer running the software who install the In-Arena Volleyball Server, however this can be changed by the owner software.
All data provided to these API functions is required to be in UTF-8 format.
All responses will be provided as UTF-8 strings.
Messages are sent in JSON structures.
Each message content differs depending on the type of the message, but will contain at least the following keys.
type
This field indicates the type of message. The valid types are each explained in more detail in this documentation.
{
"type": "action",
...
...
}
The body of the response is a series of messages (defined below). Each message is delimited by a carriage return \r\n
series of characters (in hex, 0x0D 0x0A).
From time to time new key values/structures will be added to this protocol. Any client consuming this data should ignore anything they do not understand. New fields/values/structures should not cause a failure or crash in the client system.
Not all keys will exist in all messages for all events. No value present for a key can be sent either as a value of null
or the key not being present in the data.
type
parameter set should be sent.
type enum |
The type of the message
|
types string(100) |
A comma separated value of the message types to be sent through the feed. If not set, then the following value is assumed.
|
playbyplayOnConnect enum |
If this parameter is set to 1, then the playbyplay section will only be sent at the start of the connection not on every action. If the
|
fromMessageId integer |
When connecting to the service, previous messages occurring in the game will not be sent, only new messages. By specifying a messageId with this paramter, messages with a messageId greater than (or equal to) the number specified here will be resent. 0 is valid and will resend all messages on connection. |
{
"type": "parameters",
"types": "se,ac,mi,te,sc,box"
}
type enum |
The type of the message
|
timestamp date |
The current date/time Format is: YYYY-MM-DD HH:MM:SS.CC |
{
"type": "ping",
"timestamp" : "2017-03-31 16:56:34.01"
}
type enum |
The type of the message
|
||||||||||||||
status enum |
The status of the match.
|
||||||||||||||
gameSet object | |||||||||||||||
| |||||||||||||||
gameSetStatus enum |
The status of the gameset.
|
||||||||||||||
clock |
The current time on the clock. |
||||||||||||||
possession integer |
The number of the team in the match, 1 or 2 that currently has possession. 0 is valid. |
||||||||||||||
teamOnLeft integer |
The team on the left side of the court (1 or 2). |
||||||||||||||
scores array |
An array of team records |
||||||||||||||
|
{
"status" : 8,
"gameSet" : {
"current" : 1,
"gameSetType" : 1
},
"gameSetStatus" : 2,
"clock" : null,
"possession" : 1,
"teamOnLeft" : 1,
"scores" : [{
"teamNumber" : 1,
"setWon" : 0,
"matchPoints" : 0,
"setPoints" : 0,
"timeoutsRemaining" : 6,
"challengeRemaining" : 0,
"substitutionsRemaining" : 2
}, {
"teamNumber" : 2,
"setWon" : 0,
"matchPoints" : 0,
"setPoints" : 0,
"timeoutsRemaining" : 6,
"challengeRemaining" : 0,
"substitutionsRemaining" : 2
}
],
"type" : "status"
}
type enum |
The type of the message
|
||||||||||||
settings object | |||||||||||||
|
type enum |
The type of the message
|
||||||||||||||||||||||||||||||||||||||||
competition object | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
venue object | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
league object | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
match object | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
pool object | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
match_notes array |
An array of notes for the match |
||||||||||||||||||||||||||||||||||||||||
|
{
"competition" : {
"competitionName" : "2018-19 Women's Volleyball",
"competitionAbbrev" : "",
"competitionNameInternational" : "",
"competitionAbbrevInternational" : "",
"standard" : 0,
"competitionId" : 1104,
"externalId" : "",
"twitter" : "",
"gender" : 1,
"year" : 2018,
"ageGroup" : 0,
"logo" : null
},
"venue" : {
"venueName" : "Mountain View AWT MegaPark",
"venueCode" : "",
"venueNickname" : "AWT MegaPark",
"venueId" : 38,
"isNeutralVenue" : 1,
"venueNameInternational" : "Mountain View AWT MegaPark",
"venueCodeInternational" : "",
"venueNicknameInternational" : "AWT MegaPark",
"externalId" : "",
"countryCode" : "US",
"countryCodeIOC" : "USA",
"country" : "",
"suburb" : "",
"latitude" : 37.414,
"longitude" : -122.077,
"surfaceName" : "",
"seatingCapacity" : 150,
"timezone" : "America/Los_Angeles"
},
"league" : {
"leagueName" : "NCAA Volleyball Test",
"leagueAbbrev" : "",
"leagueNameInternational" : "",
"leagueAbbrevInternational" : "",
"leagueId" : 2,
"externalId" : "2",
"countryCode" : "US",
"countryCodeIOC" : "USA",
"country" : "UNITED STATES",
"geographicRegion" : 2,
"logo" : null
},
"match" : {
"matchTime" : "2019-07-15T23:30:00Z",
"matchName" : "Test Brazil vs Cuba",
"matchNumber" : 674,
"phaseName" : "",
"poolNumber" : 0,
"roundDescription" : "",
"roundNumber" : "0",
"matchType" : 2,
"twitterHashtag" : "",
"matchId" : 162,
"externalId" : "",
"inConference" : 1
},
"pool" : {
"poolName" : null,
"poolNumber" : 0,
"externalId" : null
},
"match_notes" : ["THIS IS A TEST!"],
"type" : "matchInformation"
}
type enum |
The type of the message
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
messageId integer |
Unique identifier of the message being sent |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
competitionStatistics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
conferenceStatistics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
teams array |
An array of team records |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{
"teams" : [{
"teamNumber" : 1,
"total" : {
"players" : [{
"pno" : 20375,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20376,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20377,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20378,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 1,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 1,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 1.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20379,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20380,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20381,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20382,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20383,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}
],
"team" : {
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sFreeBallPerfect" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 1,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 1,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sReceptionErrorforTeam" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 1.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}
},
"sets" : [{
"gameSet" : 1,
"gameSetType" : 1,
"players" : [{
"pno" : 20375,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20376,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20377,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20378,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 1,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 1,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 1.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20379,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20380,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20381,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20382,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}, {
"pno" : 20383,
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBallPerfect" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 0,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 0,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 0.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}
],
"team" : {
"sAttackBlocked" : 0,
"sAttackBlockedCovered" : 0,
"sAttackError" : 0,
"sPointsFromAttack" : 0,
"sAttackNegative" : 0,
"sAttackPositive" : 0,
"sAttacks" : 0,
"sBallHandlingError" : 0,
"sBlockAssist" : 0,
"sBlockSolo" : 0,
"sBlockNegative" : 0,
"sBlockError" : 0,
"sBlockInvasion" : 0,
"sPointsFromBlock" : 0.000,
"sBlockPoor" : 0,
"sBlockPositive" : 0,
"sBlocks" : 0.000,
"sDigError" : 0,
"sDigNegative" : 0,
"sDigVeryPoor" : 0,
"sDigPositive" : 0,
"sDigGood" : 0,
"sDigPerfect" : 0,
"sDigs" : 0,
"sFreeBallError" : 0,
"sFreeBallGood" : 0,
"sFreeBallNegative" : 0,
"sFreeBallVeryPoor" : 0,
"sFreeBallPositive" : 0,
"sFreeBalls" : 0,
"sFreeBallVeryPositive" : 0,
"sFreeBallPerfect" : 0,
"sPoints" : 0.000,
"sReceiveGood" : 0,
"sReceiveError" : 0,
"sReceiveNegative" : 0,
"sReceiveVeryPoor" : 0,
"sReceivePositive" : 0,
"sReceives" : 0,
"sReceivePerfect" : 0,
"sServeError" : 0,
"sServeNegative" : 1,
"sPointsFromServe" : 0,
"sServePositive" : 0,
"sServes" : 1,
"sServeVeryPositive" : 0,
"sServePoor" : 0,
"sSetError" : 0,
"sSetNegative" : 0,
"sSetVeryPoor" : 0,
"sSetGood" : 0,
"sSetPositive" : 0,
"sSets" : 0,
"sSetPerfect" : 0,
"sReceptionErrorforTeam" : 0,
"sAssists" : 0,
"sSetAssist" : 0,
"sAttackEfficiency" : 0.000,
"sAttackPct" : 0.000,
"sAttackErrorTotal" : 0.000,
"sAttackPositivity" : 0.000,
"sBlockEfficiency" : 0.000,
"sDigEfficiency" : 0.000,
"sFreeBallEfficiency" : 0.000,
"sReceive0" : 0,
"sReceiveEfficiency" : 0.000,
"sReceiveExcPerc" : 0.000,
"sReceivePosPerc" : 0.000,
"sReceivePct" : 0.000,
"sServeEfficiency" : 0.000,
"sServePct" : 1.000,
"sServePositivity" : 0.000,
"sSetPct" : 0.000,
"sSetEfficiency" : 0.000
}
}
]
}
],
"type" : "boxscore"
}
type enum |
The type of the message
|
||||||||||||||||||||||||
messageId integer |
Unique identifier of the message being sent |
||||||||||||||||||||||||
officials array |
An array of officials |
||||||||||||||||||||||||
| |||||||||||||||||||||||||
operators array |
An array of operators |
||||||||||||||||||||||||
|
This message type contains an individual game action.
Actions come in two types, adminstrative or sport. A sport type action is related to the sport aspect of the match, eg substitution or foul. An administrative type action is related to the process or publishing the game eg. gamseSet confirmed. Only sport type actions are given an actionNumber. The action number is a sequential integer that should uniquely refer to that action. The actionNumber is repeated to indicate an edit or delete on the original action.
type enum |
The type of the message
|
messageId integer |
Unique identifier of the message being sent |
actionNumber integer |
Unique sequence number for this action |
teamNumber integer |
The number of the team in the match, 1 or 2. |
pno integer |
The number of the player in the match. This is a just an unique number used to identify the player not a jersey number. |
timeActual datetime |
The date/time when this action occurred in UTC. Format is: YYYY-MM-DD HH:MM:SS |
gameSetType enum |
The type of gameset
|
actionType string(20) |
A code representating the action type. See Action Types for the list of options. |
success enum |
Was this action completed successfully? Generally all actions except scoring actions are successful.
|
subType string(20) |
The subordinate type of the action. Used to further define the action. See Action Types for the list of options. |
qualifiers array |
An array of qualifiers to the action. See Action Types for the list of options. |
value string(50) |
A text field. Some action types require a value. This is where that value will be placed. See Action Types for the list of actions that require this field. |
previousAction integer |
The actionNumber of the base/primary action if this action relates to another action. eg. For a freetheow/freekick, this may be the actionNumber of the original foul. |
officialId integer |
The unique identifier for the official calling the action |
startingZone float |
Starting Zone on the playing surface where the action occurred. |
endingZone float |
Ending Zone on the playing surface where the action was completed. |
side enum |
Indicates which side of the playing surface the player's/team's goal is.
|
score1 string |
The score of team 1 after this action is complete |
score2 string |
The score of team 2 after this action is complete |
edited datetime |
If the action has been edited (after being initially sent) this field contains the last time it was edited (in UTC). If the action has not been edited, then this field is not present. Format is: YYYY-MM-DD HH:MM:SS |
inserted datetime |
If the action has been inserted (added out of sequence) this field contains the time it was inserted (in UTC). If the action has not been inserted, then this field is not present. Format is: YYYY-MM-DD HH:MM:SS |
deleted datetime |
If the action has been deleted (after being initially sent) this field contains the time it was deleted (in UTC). If the action has not been deleted, then this field is not present. Format is: YYYY-MM-DD HH:MM:SS |
origMessageId integer |
If this action is a delete/update then this field contains the messageId of the original message. |
{
"messageId" : 9,
"actionNumber" : 90,
"teamNumber" : 2,
"pno" : 20388,
"timeActual" : "2019-07-12T10:55:39.129Z",
"gameSet" : 1,
"gameSetType" : 1,
"actionType" : "reception",
"success" : 1,
"subType" : "in",
"qualifiers" : ["positive"],
"value" : null,
"previousAction" : 0,
"officialId" : 0,
"startingZone" : 0.0,
"endingZone" : 0.0,
"side" : 1,
"score1" : "0",
"score2" : "0",
"forwardToClients" : true,
"type" : "action"
}
type enum |
The type of the message
|
||||||||||||||||||||||||||||||||||
actions array |
Array of play by play actions, sorted ascending |
||||||||||||||||||||||||||||||||||
|
{
"actions" : [{
"actionNumber" : 45,
"teamNumber" : 1,
"pno" : -1,
"timeActual" : "2019-07-12T10:55:37.291Z",
"gameset" : 1,
"gameSetType" : 1,
"actionType" : "game",
"success" : 1,
"subType" : "start",
"qualifiers" : [],
"value" : null,
"previousAction" : 0,
"officialId" : 0,
"startingZone" : 0.0,
"endingZone" : 0.0,
"side" : 2,
"score1" : "0",
"score2" : "0"
}, {
"actionNumber" : 60,
"teamNumber" : 1,
"pno" : -1,
"timeActual" : "2019-07-12T10:55:37.313Z",
"gameset" : 1,
"gameSetType" : 1,
"actionType" : "gameSet",
"success" : 1,
"subType" : "start",
"qualifiers" : ["Confirmed"],
"value" : null,
"previousAction" : 0,
"officialId" : 0,
"startingZone" : 0.0,
"endingZone" : 0.0,
"side" : 2,
"score1" : "0",
"score2" : "0"
}, {
"actionNumber" : 75,
"teamNumber" : 1,
"pno" : 20378,
"timeActual" : "2019-07-12T10:55:39.129Z",
"gameset" : 1,
"gameSetType" : 1,
"actionType" : "serve",
"success" : 1,
"subType" : null,
"qualifiers" : ["negative"],
"value" : null,
"previousAction" : 0,
"officialId" : 0,
"startingZone" : 0.0,
"endingZone" : 0.0,
"side" : 2,
"score1" : "0",
"score2" : "0"
}
],
"type" : "playbyplay"
}
type enum |
The type of the message
|
messageId integer |
Unique identifier of the message being sent |
timeActual datetime |
The actual start date/time of the match in the UTC timezone Format is: YYYY-MM-DD HH:MM:SS |
timeEndActual datetime |
The actual end date/time of the match in the UTC timezone Format is: YYYY-MM-DD HH:MM:SS |
duration integer |
The duration (in minutes) of the match, excluding any pregame activities |
durationActual integer |
The actual duration of the match (mins). |
temperature integer |
The temperature during the match (degrees Celsius) |
attendance integer |
The number of people who attended the match |
{
"durationActual": 97,
"timeEndActual": "2019-07-07 14:38:01",
"messageId": 923,
"timeActual": "2019-07-07 13:01:11",
"duration": 40,
"attendance": 250,
"temperature": 25,
"type": "summary"
}
type enum |
The type of the message
|
||||||||||||||||||||||||||||||||||
standings array |
Array of standings records |
||||||||||||||||||||||||||||||||||
|
For a particular action an event can have 1 type, 1 subtype and any number of qualifiers
If qualifiers are able to be used for a particular action/subType, then any number of qualifiers may be applied to the action.
If the subType indicates (blank) this means that the action can be used without a subType.
type | subType | qualifiers | |
---|---|---|---|
comment |
Comment text should be passed in the value field | ||
attack
|
|||
|
|||
firstBall |
|||
firstTransition |
|||
transition |
|||
ballHandlingError
|
|||
block
|
|||
error |
|
||
in |
|
||
over |
|
||
challengeOutcome
|
|||
refereeDecision
|
|||
requestedBy
|
|||
scoreChanges
|
|||
challengeRequest
|
|||
challengeType
|
|||
requestedBy
|
|||
afterRally |
|||
duringRally |
|||
dig
|
|||
toKill |
|||
error |
|||
in |
|
||
over |
|||
freeBall
|
|||
error |
|||
in |
|
||
over |
|||
gamesetwin
|
|||
injury
|
|||
officialInjury |
|||
playerInjury |
|||
staffInjury |
|||
liberoReplace
|
|||
liberoUnableToPlay
|
|||
point
|
|||
challenge
|
|||
ace |
|||
attack |
|
||
block |
|||
error |
|||
protest
|
|||
reception
|
|||
toKill |
|||
error |
|
||
in |
|
||
over |
|||
replay
|
|||
sanction
|
|||
sanctionType
|
|||
player |
|||
staff |
staffId |
||
team |
|||
serve
|
|||
|
|||
set
|
|||
error |
|||
in |
|
||
over |
|||
substitution |
|||
|
|||
in |
|||
out |
|||
TimeOut |
|||
|
|||
facultative |
|||
media |
|||
technical |
|||
team |
type | subType | qualifiers | |
---|---|---|---|
status |
Indicates a change in the status of the match | ||
delayed |
|
The start time of the match has been changed. The delay in minutes should be passed in the value field. Negative delays are allowed (to indicate early start). | |
loaded |
The match has been loaded in the software | ||
ready |
The match is ready to proceed in the software and the teams have been loaded | ||
inprogress |
The match is currently in progress | ||
gamesetbreak |
The match is currently in progress, but in a break between game sets | ||
interrupted |
|
The match has been stopped temporarily and will resume after a delay. The delay in minutes should be passed in the value field. The qualifiers can be used to give a reason for the delay. | |
cancelled |
The match will not be started | ||
abandoned |
The match has been stopped and will not restart | ||
rescheduled |
The match has been stopped (or has not started) and will not start/restart. It will be played again at another time. | ||
finished |
The match has come to the end | ||
protested |
The match has come to the end, but the result has been protested | ||
complete |
The match is complete, all scores have been confirmed and result is official | ||
gamesetstatus |
Indicates a change in the gameset status | ||
pending |
Indicates the gameset is about to start | ||
started |
Indicates the gameset has started | ||
ended |
Indicates the gameset has ended | ||
confirmed |
Indicates that scores have been confirmed for the gameset | ||
capturestatus |
|||
unreliable |
Indicates that the state of the game being sent by the software differs significantly from the actual situation. | ||
reliable |
Indicates that the state of the game being sent by the software now matches the actual situation. | ||
clock |
|||
start |
|||
stop |
|||
adjustment |
The number of seconds adjustment should be passed in the value field. Negative values are allowed |