Other timing system

Predictive live tracking with reads from any timing system.

Your timing system provides the information of UTC timestamps, chip IDs (or transponder IDs), and ideally GEO locations and you can send this data to RACEMAP server.

When a participant passes a decoder, the timing system generates data including the timestamp and the ID. You can format this data as a JSON array (as shown below) and send it to our servers.

You can use any programming language that supports HTTPS-based POST requests with JSON bodies. To test the approach, follow the steps below or set up permanent forwarding within your timing system.

For this setup, a programmer or someone with technical expertise is recommended. However, if you need assistance, reach out to us — we support you build a reliable, and easy-to-use solution, similar to our solution with RACE RESULT.

Therr are two scenarios RACEMAP receives data from a timekeeping software.

  1. Recommended: Reads (detections) include the reader's GEO location.

  2. Reads without the GEO location. In that case, the readers' locations must be set in RACEMAP map editor.

HTTP Request

URL https://racemap.com/services/trackping/api/v1/timing_input/pings

Method POST

API token The API token serves as a secure key that authenticates and directs your data to RACEMAP. Without a valid token, your submitted data will be rejected. Generate your API token in the settings of your RACEMAP account https://racemap.com/admin/account.

Manage your token in your RACEMAP account

Reads object

A read can have the following data fields. Some of them are required, some are optional.

Field
Description
Sample

timingId

Unique ID of the reader

"XF32098" or "_8nx7uoyun"

timingName *

Name of reader in timing software

"5K-split" or "Start II"

chipId

Transponder ID

"RRPing_ZDKAR32" or "RRPing_70761" or "HH32098"

timestamp

Timestamp in UTC when the reader detects the transponder

"2023-11-09T16:35:05.248Z"

lat **

Latitude of the reader

51.5074

lng **

Longitude of the reader

13.7276

(*) Optional parameter without impact on processing the reads in RACEMAP.

(**) If unavailable you have to set GEO locations for each reader in the RACEMAP map editor

Examples

The examples demonstrate the process of

  • converting your timing data into RACEMAP-compatible reads,

  • sending the data to our server, and

  • testing access using the API token.

Once your timing data is successfully forwarded to RACEMAP, we can provide further support to help you build a reliable integration.

To test this example, use the VS Code editor.

  • Install VS Code on your computer.

  • Save the below sample into a file with the name test.rest .

  • Open the file in VS Code.

  • Paste your API token.

  • Send the HTTP request to our server.

  • Check the prediction section of your event in RACEMAP for received reads.

In the 1st sample, the GEO locations of each reader are defined. The timingId identifies the reader and does not influence data processing in the RACEMAP backend. You can use these IDs to verify whether your data was correctly received by RACEMAP.

POST https://racemap.com/services/trackping/api/v1/timing_input/pings
Content-Type: application/json
authorization: Bearer [Place your API token here]

[
  {
    "timingId": "XF32098",
    "timingName": "Start",
    "chipId": "HH32097",
    "timestamp": "2023-11-09T16:31:07.248Z",
    "lat": 51.5074,
    "lng": 13.7386
  },
  {
    "timingId": "XF32099",
    "timingName": "Start II",
    "chipId": "HH32098",
    "timestamp": "2023-11-09T16:31:05.248Z",
    "lat": 51.5074,
    "lng": 13.7386
  },
  {
    "timingId": "XF32100",
    "chipId": "HH32099",
    "timestamp": "2023-11-09T16:32:04.248Z",
    "lat": 51.5074,
    "lng": 13.7386
  }
]

In the 2nd sample, the GEO locations of the readers are not defined. You can manually set them in RACEMAP. For each timingId, you can define a GEO location in the map editor section of your event. Our prediction algorithm will then use these manually assigned locations.

However, this method is not recommended, as errors may occur if incorrect locations are defined.

POST https://racemap.com/services/trackping/api/v1/timing_input/pings
Content-Type: application/json
authorization: Bearer [Place your API token here]

[
  {
    "timingId": "XF32098",
    "timingName": "Start",
    "chipId": "HH32097",
    "timestamp": "2023-11-09T16:31:07.248Z"
  },
  {
    "timingId": "XF32099",
    "timingName": "Start II",
    "chipId": "HH32098",
    "timestamp": "2023-11-09T16:31:05.248Z",
  },
  {
    "timingId": "XF32100",
    "chipId": "HH32099",
    "timestamp": "2023-11-09T16:32:04.248Z",
  }
]

Response

If everything is correct the HTTP code 200 is returned.

Set readers' locations

Case 2, if reads are sent without coordinates: Virtually define the locations of your readers in the map settings of your tracking map.

  • Upload the race track.

  • Set this track as the shadowtrack of the race.

  • Create a split representing the location of your reader at the race.

  • Check "Timekeeping"

  • Provide the unique timingId in the field "IDs of Timing Systems" of the split. You can add multiple timingId to a split, if you use multiple readers at the same location.

Note: If a single reader is used for multiple detections (e.g., timing a lap race at 5K and 10K), enter its location only once. There's no need to add the reader multiple times.

Split "CP-1" with the unique split id U078

Last updated