P&B Tracking - Rally
This section summarises the Rally player & ball tracking websocket that is available via the DDE.
Below are the available websocket with more information on the data being returned.
Endpoint URL
Live Rally Summary Feed
CONNECT
wss://dde-generic-datastream.dde-prod.imgarena.dev/ws/tennis/rally/tracking/tdi
This endpoint returns 4 different types of rally information for a match:
Rally Summary
Describes all the summary for a rally - Breakdown of points won per player by rally length grouping and the Average number of shots per rally, distance travelled, winning shot (speed/stroke/result)
Per Rally Event
Describes all the events which happened during a rally (spin, type (back/forehand), speed, duration, result)
Per Rally Ball/Shot Tracking
Describes all the shots in a rally (arcs x/y/z)
Per Rally Player Tracking
Describes all the player movement in a set timeframe- (Time, Position, velocity)
{
"message": "Could not find fixture topic soccer.tracking.enrichment.08456e52-9cf7-48cc-913c-f45ec",
"level": "WARN"
}
{
"message": "Authentication message had incorrect format",
"level": "ERROR"
}
{
"created": "2022-08-14T06:10:23.4908526Z",
"id": "e28fc19b-69ec-4504-b77b-a4e0cca6ef46",
"type": "live.tracking.summary",
"packetDetails": {
"set": 1,
"game": 1,
"point": 1,
"serve": 1,
"rally": 1,
"sequence": 1,
"start": "2022-08-14T06:10:13.7513333Z",
"end": "2022-08-14T06:10:20.4825333Z"
},
"matchDetails": {
"competitionId": "5817",
"year": 2022,
"court": "2",
"matchId": "LS001",
"singles": true,
"wheelchair": false,
"electronicLineCalling": false,
"televised": false,
"format": "BestOfThreeTiebreakSets",
"round": "RoundOf2",
"players": [
{
"team": 1,
"player": 1,
"id": "320922",
"seed": "",
"firstName": "Ksenia",
"lastName": "Laskutova"
},
{
"team": 2,
"player": 1,
"id": "00BQ9O",
"seed": "",
"firstName": "Marketa",
"lastName": "Petruzelova"
}
]
},
"summary": {
"shots": 2,
"result": "Played",
"scorer": 2,
"matchPoint": false,
"setPoint": false,
"breakPoint": false,
"decidingPoint": false,
"gamePoint": false,
"tiebreak": false,
"finalSet": false,
"finalSetATieBreak": false,
"teamToLeftOfUmpire": 2,
"teamAtPositiveX": 2,
"server": {
"team": 2,
"player": 1
},
"receiver": {
"team": 1,
"player": 1
},
"conclusion": {
"stroke": "Backhand",
"result": "Error",
"action": "Forced",
"eventId": "698bb76a-6df7-352f-88c8-6610f6b0d150",
"speed": 71.193
},
"serve": {
"eventId": "d2dd6483-fe40-3cf9-9cc3-059aae7e73b2",
"side": "Advantage",
"speed": 98.213
},
"playersDistanceTravelled": [
{
"team": 1,
"player": 1,
"distance": 5.197
},
{
"team": 2,
"player": 1,
"distance": 8.624
}
],
"match": {
"start": "2020-09-13T20:16:57.175Z",
"duration": 170,
"sets": {
"team1": 2,
"team2": 1
},
"games": {
"team1": 19,
"team2": 17
},
"points": {
"team1": 119,
"team2": 116
}
},
"sets": [
{
"start": "2020-09-13T20:16:57.175Z",
"end": "2020-09-13T20:47:26.688Z",
"duration": 30,
"games": {
"team1": 6,
"team2": 2
},
"tiebreak": {
"team1": 0,
"team2": 0
},
"points": {
"team1": 29,
"team2": 17
}
},
{
"start": "2020-09-13T20:49:57.128Z",
"end": "2020-09-13T21:36:04.457Z",
"duration": 46,
"games": {
"team1": 6,
"team2": 4
},
"tiebreak": {
"team1": 0,
"team2": 0
},
"points": {
"team1": 39,
"team2": 34
}
},
{
"start": "2020-09-13T21:38:32.196Z",
"end": "2020-09-13T22:26:40.248Z",
"duration": 48,
"games": {
"team1": 4,
"team2": 6
},
"tiebreak": {
"team1": 0,
"team2": 0
},
"points": {
"team1": 32,
"team2": 36
}
},
{
"start": "2020-09-13T22:29:44.602Z",
"duration": 37,
"games": {
"team1": 3,
"team2": 5
},
"tiebreak": {
"team1": 0,
"team2": 0
},
"points": {
"team1": 19,
"team2": 29
}
}
],
"game": {
"start": "2020-09-13T23:06:52.165Z",
"duration": 0,
"team1Score": "0",
"team2Score": "15"
}
}
}
JSON Response
Rally
{
"id": "aea5ae6a-7d21-4a5c-b2e3-520af63c6f4a",
"updated": "2024-09-05T08:05:31.898Z",
"source": "IMG Arena",
"revision": 0,
"sequences": {
"set": 1,
"game": 4,
"point": 2,
"serve": 1,
"rally": 1
},
"match": {
"season": 2024,
"tournament_id": 8000,
"draw_code": "QS801",
"court_id": 1,
"players": [
{
"forename": "Aaaa",
"surname": "A. TEST-A",
"team": 1,
"player": 1,
"atp_id": "TC48"
},
{
"forename": "Bbbb",
"surname": "B. TEST-B",
"team": 2,
"player": 1,
"atp_id": "TC49"
}
]
},
"summary": {
"server": 2,
"result": "played",
"scorer": 1,
"team_to_left_of_umpire": 2,
"team_at_positive_x": 2,
"serve_side": "advantage",
"duration": 22.853
},
"events": [
{
"shot_no": 1,
"team": 2,
"stroke": "serve",
"side": "right",
"spin": {
"type": "backspin",
"rpm": -533.5
},
"speed_ms": 37.2,
"call": "out",
"distance": 1.315,
"time_utc": "2024-08-28T10:34:59.163Z",
"time": 0.0,
"duration": 0.933,
"arcs": [
{
"type": "hit",
"time": {
"start": 0.0,
"end": 0.6183576122602972
},
"curve_params": {
"x": [
11.448379085900681,
-37.59106509224906,
12.882074073756797,
-3.8061409856201465,
-1.2590817277668975E-11
],
"y": [
1.1927701387883975,
-2.568742428903281,
1.7800706599161629,
-0.03579140449295437,
1.7053025658242404E-13
],
"z": [
2.956248539571349,
-2.8732483416899584,
-2.8792345401092234,
-0.12075730895730885,
-4.547473508864641E-13
]
}
},
{
"type": "bounce",
"time": {
"start": 0.6183576122602972,
"end": 0.9333333333361225
},
"curve_params": {
"x": [
0.7626723812172713,
-9.445114334346727,
-10.304013277345803,
5.202559269644553,
0.0
],
"y": [
0.792581574953374,
-1.435910410994893,
1.1418036552777266,
-0.2986747712266151,
-8.640199666842818E-12
],
"z": [
-4.260098177796436,
6.11232057540667,
4.300642381593889,
-4.727909594821313,
-1.0516032489249483E-11
]
}
}
]
}
],
"samples": [
{
"time": 0.0,
"event": [
"hit",
"peak"
],
"ball": {
"pos": {
"x": 11.448,
"y": 1.193,
"z": 2.956
}
},
"players": [
{
"team": 1,
"pos": {
"x": -12.975,
"y": -2.727
}
},
{
"team": 2,
"pos": {
"x": 11.901,
"y": 1.38
}
}
]
},
{
"time": 0.02,
"ball": {
"pos": {
"x": 10.702,
"y": 1.142,
"z": 2.898
}
},
"players": [
{
"team": 1,
"pos": {
"x": -12.975,
"y": -2.727
}
},
{
"team": 2,
"pos": {
"x": 11.904,
"y": 1.387
}
}
]
},
{
"time": 0.04,
"ball": {
"pos": {
"x": 9.965,
"y": 1.093,
"z": 2.837
}
},
"players": [
{
"team": 1,
"pos": {
"x": -12.975,
"y": -2.727
}
},
{
"team": 2,
"pos": {
"x": 11.9,
"y": 1.385
}
}
]
},
{
"time": 0.06,
"ball": {
"pos": {
"x": 9.238,
"y": 1.045,
"z": 2.773
}
},
"players": [
{
"team": 1,
"pos": {
"x": -12.975,
"y": -2.727
}
},
{
"team": 2,
"pos": {
"x": 11.896,
"y": 1.383
}
}
]
},
{
"time": 0.08,
"ball": {
"pos": {
"x": 8.522,
"y": 0.999,
"z": 2.708
}
},
"players": [
{
"team": 1,
"pos": {
"x": -12.975,
"y": -2.727
}
},
{
"team": 2,
"pos": {
"x": 11.892,
"y": 1.382
}
}
]
},
{
"time": 0.1,
"ball": {
"pos": {
"x": 7.814,
"y": 0.954,
"z": 2.64
}
},
"players": [
{
"team": 1,
"pos": {
"x": -12.975,
"y": -2.727
}
},
{
"team": 2,
"pos": {
"x": 11.888,
"y": 1.38
}
}
]
..................
}
]
}
Response Fields
For availability of P&B Tracking feeds across specific Tournaments and Tours, please contact support@openbet.com
Last updated