*/times, reads and raw data
API with passings or detections (raw data timestamps) at virtual checkpoints respectively geofences, similar to a reader
- Effortless detections with virtual timekeeping points (geofence) and with geolocations of participants. No timing hardware, no transponders.
- Passings are recorded in a radius around the geofence. Set the radius in the setting of the data API of your event.
- Flexibly adjust settings in between: add timekeeping points or change their locations of a running event or even of a past event, recalculate detections with new parameters.
URL
https://racemap.com/api/data/v1/:eventId/times
Method GET- The
id
of a virtual timekeeping point to get all reads of this geofence in chronological order. - Live sample split "Split 3" https://racemap.com/api/data/v1/61a21210e5d45d000199f7d9/times/_2hmv4wcsb
- Past sample split "Finish" https://racemap.com/api/data/v1/60a3b443f096f800018add7c/times/_muwe600tp
Field | Description [unit] | Sample |
---|---|---|
name | Name of event | "Sample live | 100km Duathlon" |
location | Location | "🇩🇪 Dresden" |
startTime | Start time in UTC | "2022-03-09T07:00:03.201Z" |
endTime | End time in UTC | "2022-03-09T14:59:38.201Z" |
timekeepings | Array for checkpoint objects | |
starters | Array for participant objects | |
Field | Description | Sample |
---|---|---|
name | Name of virtual timekeeping point | "Split 5" |
offset | 49222.81 | |
id | Unique Racemap ID of timekeeping point | "_d15macicg" |
position | Array with longitude, latitude, hight [m] | 13.881129999, 51.075250000, 250 |
Field | Description [unit] | Sample |
---|---|---|
id | Unique Racemap ID of participant | "61a2122f181c0a6c4bb5376e" |
importId | "UniqueImportId_2" or "null"
if no importId exists | |
startNumber | Bib number | "2" |
name | Name | "CLV Megware" |
times | Object for checkpoint arrays | null
if no locations within startTime and endTime
{}
if there are locations but no detections |
Description | Sample |
---|---|
Unique Racemap ID of timekeeping point, array for detection objects | _2hmv4wcsb |
Field | Description [unit] | Sample |
---|---|---|
time | Timestamp of detection in UTC | "2022-03-09T10:08:00.000Z" |
distanceToSplit | Distance [m] of detection from timekeeping point | 43.96 |
{
"name": "Sample Event | 100km-Duathlon",
"location": "🇩🇪 Dresden",
"startTime": "2020-04-25T06:00:00.000Z",
"endTime": "2020-10-30T18:15:00.000Z",
"timekeepings": [
{
"name": "Start",
"offset": 0,
"id": "_t9kp7roge",
"position": [13.704099056608415, 51.02740202001082, 161]
},
{
"name": "Ruppendorf",
"offset": 29537.54,
"id": "_l7z9ygc3f",
"position": [13.599722542890463, 50.90910508578093, 377]
},
{
"name": "🕖",
"offset": 48150.06,
"id": "_xdbst6t0c",
"position": [13.633563734472718, 50.77911506210913, 570]
},
{
"name": "Bergwertung",
"offset": 49975.36,
"id": "_b31s55hd3",
"position": [13.623273503927214, 50.76995405256768, 743]
},
{
"name": "🕖",
"offset": 67682.87,
"id": "_a218n2064",
"position": [13.69125, 50.82612, 471]
},
{
"name": "Bergwertung",
"offset": 68805.8,
"id": "_l542jdzag",
"position": [13.697525647974043, 50.83382486871975, 603]
},
{
"name": "Finish",
"offset": 100314.54,
"id": "_muwe600tp",
"position": [13.704065646340139, 51.0271269953974, 164]
}
],
"starters": [
{
"id": "60a3b6791474227ee54a5bdf",
"importId": "UniqueImportId_1",
"startNumber": "01",
"name": "Konrad",
"times": null
},
{
"id": "60a3b679147422b72a4a5be0",
"importId": "UniqueImportId_2",
"startNumber": "02",
"name": "Jörg",
"times": {
"_t9kp7roge": [
{
"time": "2020-04-26T14:52:45.000Z",
"distanceToSplit": 11.46
},
{
"time": "2020-04-26T14:52:50.000Z",
"distanceToSplit": 12.61
},
{
"time": "2020-04-26T14:52:55.000Z",
"distanceToSplit": 22.52
},
{
"time": "2020-04-26T14:53:00.000Z",
"distanceToSplit": 38.67
}
],
"_l7z9ygc3f": [
{
"time": "2020-04-26T10:19:45.000Z",
"distanceToSplit": 20.36
},
{
"time": "2020-04-26T10:19:50.000Z",
"distanceToSplit": 26.4
}
],
"_xdbst6t0c": [
{
"time": "2020-04-26T11:30:35.000Z",
"distanceToSplit": 44.03
},
{
"time": "2020-04-26T11:30:40.000Z",
"distanceToSplit": 14.17
},
{
"time": "2020-04-26T11:30:45.000Z",
"distanceToSplit": 15.18
},
{
"time": "2020-04-26T11:30:50.000Z",
"distanceToSplit": 40.98
}
],
"_b31s55hd3": [
{
"time": "2020-04-26T11:41:00.000Z",
"distanceToSplit": 39.18
},
{
"time": "2020-04-26T11:41:05.000Z",
"distanceToSplit": 19.22
},
{
"time": "2020-04-26T11:41:10.000Z",
"distanceToSplit": 4.46
},
{
"time": "2020-04-26T11:41:15.000Z",
"distanceToSplit": 32.33
}
],
"_a218n2064": [
{
"time": "2020-04-26T13:00:20.000Z",
"distanceToSplit": 47.27
},
{
"time": "2020-04-26T13:00:25.000Z",
"distanceToSplit": 31.78
},
{
"time": "2020-04-26T13:00:30.000Z",
"distanceToSplit": 16.19
},
{
"time": "2020-04-26T13:00:35.000Z",
"distanceToSplit": 8.29
},
{
"time": "2020-04-26T13:00:40.000Z",
"distanceToSplit": 17.85
},
{
"time": "2020-04-26T13:00:45.000Z",
"distanceToSplit": 27.8
},
{
"time": "2020-04-26T13:00:50.000Z",
"distanceToSplit": 40.04
}
],
"_l542jdzag": [
{
"time": "2020-04-26T13:08:35.000Z",
"distanceToSplit": 40.64
},
{
"time": "2020-04-26T13:08:40.000Z",
"distanceToSplit": 26.12
},
{
"time": "2020-04-26T13:08:45.000Z",
"distanceToSplit": 12.82
},
{
"time": "2020-04-26T13:08:50.000Z",
"distanceToSplit": 4.25
},
{
"time": "2020-04-26T13:08:55.000Z",
"distanceToSplit": 15.45
},
{
"time": "2020-04-26T13:09:00.000Z",
"distanceToSplit": 30.58
},
{
"time": "2020-04-26T13:09:05.000Z",
"distanceToSplit": 46.71
}
],
"_muwe600tp": [
{
"time": "2020-04-26T08:20:25.000Z",
"distanceToSplit": 46.54
},
{
"time": "2020-04-26T08:20:30.000Z",
"distanceToSplit": 39.3
},
{
"time": "2020-04-26T14:50:35.000Z",
"distanceToSplit": 26.75
},
{
"time": "2020-04-26T14:50:40.000Z",
"distanceToSplit": 4.86
},
{
"time": "2020-04-26T14:50:45.000Z",
"distanceToSplit": 19.61
},
{
"time": "2020-04-26T14:52:45.000Z",
"distanceToSplit": 26.33
},
{
"time": "2020-04-26T14:52:55.000Z",
"distanceToSplit": 32.5
},
{
"time": "2020-04-26T14:53:00.000Z",
"distanceToSplit": 46.08
}
]
}
}
]
}
Field | Description [unit] | Sample |
---|---|---|
id | Unique Racemap ID of participant | "60a3b679147422b72a4a5be0" |
importId | "UniqueImportId_2" | |
startNumber | Bib number | "02" |
name | Name | "Jörg" |
time | Timestamp of detection in UTC | "2022-03-09T10:08:00.000Z" |
distanceToSplit | Distance [m] of detection from timekeeping point | 16.19 |
{
"name": "Sample | 100km Duathlon",
"location": "🇩🇪 Dresden",
"startTime": "2020-04-25T06:00:00.000Z",
"endTime": "2020-10-30T18:15:00.000Z",
"timekeepingId": "_b31s55hd3",
"timekeepingName": "Bergwertung",
"times": [
{
"id": "60a3b679147422b72a4a5be0",
"importId": "UniqueImportId_2",
"startNumber": "02",
"name": "Jörg",
"time": "2020-04-26T11:41:00.000Z",
"distanceToSplit": 39.18
},
{
"id": "60a3b679147422b72a4a5be0",
"importId": "UniqueImportId_2",
"startNumber": "02",
"name": "Jörg",
"time": "2020-04-26T11:41:05.000Z",
"distanceToSplit": 19.22
},
{
"id": "60a3b679147422b72a4a5be0",
"importId": "UniqueImportId_2",
"startNumber": "02",
"name": "Jörg",
"time": "2020-04-26T11:41:10.000Z",
"distanceToSplit": 4.46
},
{
"id": "60a3b679147422b72a4a5be0",
"importId": "UniqueImportId_2",
"startNumber": "02",
"name": "Jörg",
"time": "2020-04-26T11:41:15.000Z",
"distanceToSplit": 32.33
},
{
"id": "60a3b67914742230ef4a5be2",
"importId": "UniqueImportId_3",
"startNumber": "03",
"name": "Leupold",
"time": "2020-05-01T10:34:45.000Z",
"distanceToSplit": 52.28
},
{
"id": "60a3b67914742230ef4a5be2",
"importId": "UniqueImportId_3",
"startNumber": "03",
"name": "Leupold",
"time": "2020-05-01T10:34:50.000Z",
"distanceToSplit": 27.7
},
{
"id": "60a3b67914742230ef4a5be2",
"importId": "UniqueImportId_3",
"startNumber": "03",
"name": "Leupold",
"time": "2020-05-01T10:34:55.000Z",
"distanceToSplit": 1.95
},
{
"id": "60a3b67914742230ef4a5be2",
"importId": "UniqueImportId_3",
"startNumber": "03",
"name": "Leupold",
"time": "2020-05-01T10:35:00.000Z",
"distanceToSplit": 31.06
},
{
"id": "60a3b67914742223014a5bea",
"importId": "UniqueImportId_11",
"startNumber": "11",
"name": "Michi",
"time": "2020-05-02T09:26:30.000Z",
"distanceToSplit": 50.33
},
{
"id": "60a3b679147422101b4a5be3",
"importId": "UniqueImportId_4",
"startNumber": "04",
"name": " KRad",
"time": "2020-05-02T09:26:35.000Z",
"distanceToSplit": 52.28
},
{
"id": "60a3b67914742223014a5bea",
"importId": "UniqueImportId_11",
"startNumber": "11",
"name": "Michi",
"time": "2020-05-02T09:26:40.000Z",
"distanceToSplit": 2.83
},
{
"id": "60a3b679147422101b4a5be3",
"importId": "UniqueImportId_4",
"startNumber": "04",
"name": " KRad",
"time": "2020-05-02T09:26:45.000Z",
"distanceToSplit": 2.92
},
{
"id": "60a3b679147422101b4a5be3",
"importId": "UniqueImportId_4",
"startNumber": "04",
"name": " KRad",
"time": "2020-05-02T09:26:50.000Z",
"distanceToSplit": 47.5
},
{
"id": "60a3b67914742207e84a5be7",
"importId": "UniqueImportId_8",
"startNumber": "08",
"name": " Richi",
"time": "2020-05-02T09:29:00.000Z",
"distanceToSplit": 9.65
},
{
"id": "60a3b679147422b9ba4a5beb",
"importId": "UniqueImportId_12",
"startNumber": "12",
"name": "Christoph",
"time": "2020-05-02T09:46:10.000Z",
"distanceToSplit": 22.24
},
{
"id": "60a3b67914742200964a5be8",
"importId": "UniqueImportId_9",
"startNumber": "09",
"name": "Jens",
"time": "2020-05-02T09:46:20.000Z",
"distanceToSplit": 23.42
},
{
"id": "60a3b679147422b9ba4a5beb",
"importId": "UniqueImportId_12",
"startNumber": "12",
"name": "Christoph",
"time": "2020-05-02T09:46:20.000Z",
"distanceToSplit": 32.36
},
{
"id": "60a3b67914742200964a5be8",
"importId": "UniqueImportId_9",
"startNumber": "09",
"name": "Jens",
"time": "2020-05-02T09:46:30.000Z",
"distanceToSplit": 25.51
},
{
"id": "60a3b679147422151c4a5be9",
"importId": "UniqueImportId_10",
"startNumber": "10",
"name": "Martin",
"time": "2020-05-02T09:46:50.000Z",
"distanceToSplit": 40.8
},
{
"id": "60a3b679147422151c4a5be9",
"importId": "UniqueImportId_10",
"startNumber": "10",
"name": "Martin",
"time": "2020-05-02T09:47:00.000Z",
"distanceToSplit": 5.78
},
{
"id": "60a3b679147422d55d4a5be4",
"importId": "UniqueImportId_5",
"startNumber": "05",
"name": "Basti",
"time": "2020-05-02T11:33:25.000Z",
"distanceToSplit": 36.56
},
{
"id": "60a3b679147422d55d4a5be4",
"importId": "UniqueImportId_5",
"startNumber": "05",
"name": "Basti",
"time": "2020-05-02T11:33:30.000Z",
"distanceToSplit": 13.6
},
{
"id": "60a3b679147422a4814a5be5",
"importId": "UniqueImportId_6",
"startNumber": "06",
"name": "Diddi Knoppers",
"time": "2020-05-02T12:47:25.000Z",
"distanceToSplit": 29.33
},
null
]
}
RACE|RESULT event settings: Main Window, Simple API
- Type: Custom
- Details: rawdata/addmanual
Settings create an API key to push external data to RACE|RESULT. The duration of the key is limited. Sample: https://api.raceresult.com/180472/G5XQYZKPIPU5J1RSCVIZ48QKVU5JIIJP

Data from Racemap */times API need be transferred to RACE|RESULT API format, e.g. with a python script:
- syntax: https://api.raceresult.com/
eventId
/apiKey
?&bib
=bibNumber&time
=timeOfDetections&TimingPoint
=splitName - timeOfDetections in seconds
Using this format virtual detections are imported in RACE|RESULT one by one.

Last modified 1yr ago