---
updatedAt: 2025-06-11T20:13:30.000Z
agentTools:
  projectIndex: https://developers.triathlon.org/llms.txt
---

# Live Timing

The **Live Timing** endpoint delivers real-time streaming data via a websocket connection.

> 👍 Live Timing Websocket Endpoint
>
> **wss\://socket.api.triathlon.org/timing**

You may connect to the live timing websocket feed by connecting to `wss://socket.api.triathlon.org/timing` For live timing applications it is suggested you retrieve the initial state from the [Live Timing endpoint](https://developers.triathlon.org/docs/live-timing) and future updates from the streaming API to avoid any delay in retrieving the data as new data is only delivered when available.

## Live Timing Data

Data is delivered in the same format as the [Live Timing REST endpoint](https://developers.triathlon.org/docs/live-timing) but **excludes the splits object** for brevity of the message and users should consult that documentation as well as the [Live Timing Standard](https://developers.triathlon.org/v1/page/live-timing-standard-v11) for more information as to the data delivered. If you require full split data consider taking the webhook feed from the [Subscription API](https://developers.triathlon.org/docs/subscriptions-api-overview) or request the full timing message from the [REST API](https://developers.triathlon.org/docs/live-timing) on a timing push.

```json
{
   "date":"2016-09-11 18:35:05.143−04:00",
   "start_time":"2016-09-11 16:30:13−04:00",
   "event_id":"97645",
   "event_name":"2016 ITU World Triathlon Grand Final Cozumel",
   "prog_id":"281501",
   "prog_name":"Elite Men",
   "wetsuit":"false",
   "sandbox":"false",
   "num_athletes":"2",
   "status":"live",
   "latest":{
      "segment_id":"3",
      "segment_name":"Bike Lap 1",
      "num_athletes":"1"
   },
   "conditions":{
      "air_temp":"16.5",
      "water_temp":"18.4"
   },
   "athletes":[
      {
         "id":"30433",
         "start_num":"11",
         "name":"Henri Schoeman",
         "country":"RSA",
         "segment_id":"15",
         "time":"01:46:50",
         "difference":"00:00:00",
         "position":"1",
         "status":null,
         "splits":[
            {
               "id":"1",
               "name":"Swim Exit",
               "time":"00:16:55",
               "lap_time":"00:16:55",
               "difference":"00:00:02",
               "position":"2"
            },
            {
               "id":"2",
               "name":"Transition 1",
               "time":"00:17:48",
               "lap_time":"00:00:53",
               "difference":"00:00:04",
               "position":"2"
            },
            {
               "id":"3",
               "name":"Bike Lap 1",
               "time":"00:24:46",
               "lap_time":"00:06:58",
               "difference":"00:00:00",
               "position":"1"
            }
         ]
      },
      {
         "id":"11378",
         "start_num":"2",
         "name":"Jonathan Brownlee",
         "country":"GBR",
         "segment_id":"15",
         "time":"01:47:08",
         "difference":"00:00:18",
         "position":"2",
         "status":null,
         "splits":[
            {
               "id":"1",
               "name":"Swim Exit",
               "time":"00:16:53",
               "lap_time":"00:16:53",
               "difference":"00:00:00",
               "position":"1"
            },
            {
               "id":"2",
               "name":"Transition 1",
               "time":"00:17:44",
               "lap_time":"00:00:51",
               "difference":"00:00:00",
               "position":"1"
            }
         ]
      }
   ]
}
```