We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
GPX Tracker API Documentation
Base URL: https://gpx.octal.be
Available Devices
Devices: moto1, moto2
/api/devices
Lists all available devices
curl -X GET "https://gpx.octal.be/api/devices"
Live Response:
{
"path": "/api/devices",
"value": [
"moto1",
"moto2"
]
}
/api/standing
Current race standings and device aliases
curl -X GET "https://gpx.octal.be/api/standing"
Live Response:
{
"path": "/api/standing",
"value": {
"first": "moto1",
"second": "moto2"
}
}
/api/position/moto1
Current position of moto1
curl -X GET "https://gpx.octal.be/api/position/moto1"
Live Response:
{
"path": "/api/position/moto1",
"value": {
"latitude": 49.61159896850586,
"longitude": 3.22316837310791
}
}
/api/position/moto2
Current position of moto2
curl -X GET "https://gpx.octal.be/api/position/moto2"
Live Response:
{
"path": "/api/position/moto2",
"value": {
"latitude": 49.61592864990234,
"longitude": 3.22189211845398
}
}
/api/gap/time/first/second/racing
Time gap between first and second (racing format)
curl -X GET "https://gpx.octal.be/api/gap/time/first/second/racing"
Live Response:
{
"path": "/api/gap/time/first/second/racing",
"unit": "racing",
"value": "00'54''"
}
/api/gap/time/moto1/moto2
Time gap between moto1 and moto2
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2"
Live Response:
{
"path": "/api/gap/time/moto1/moto2",
"unit": "s",
"value": 54
}
/api/gap/distance/moto1/moto2
Distance gap between moto1 and moto2
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/moto2"
Live Response:
{
"path": "/api/gap/distance/moto1/moto2",
"unit": "km",
"value": 0.5
}
/api/gap/distance/moto1/start
Distance from start for moto1
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/start"
Live Response:
{
"path": "/api/gap/distance/moto1/start",
"unit": "km",
"value": 188.4
}
/api/gap/distance/moto2/start
Distance from start for moto2
curl -X GET "https://gpx.octal.be/api/gap/distance/moto2/start"
Live Response:
{
"path": "/api/gap/distance/moto2/start",
"unit": "km",
"value": 187.9
}
/api/gap/distance/moto1/end
Distance to end for moto1
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/end"
Live Response:
{
"path": "/api/gap/distance/moto1/end",
"unit": "km",
"value": 0.4
}
/api/gap/distance/moto2/end
Distance to end for moto2
curl -X GET "https://gpx.octal.be/api/gap/distance/moto2/end"
Live Response:
{
"path": "/api/gap/distance/moto2/end",
"unit": "km",
"value": 0.9
}
/api/gap/distance/first/end
Distance to end for first place
curl -X GET "https://gpx.octal.be/api/gap/distance/first/end"
Live Response:
{
"path": "/api/gap/distance/first/end",
"unit": "km",
"value": 0.4
}
/api/gap/distance/second/start
Distance from start for second place
curl -X GET "https://gpx.octal.be/api/gap/distance/second/start"
Live Response:
{
"path": "/api/gap/distance/second/start",
"unit": "km",
"value": 187.9
}
/api/speed/moto1/mean/50
Mean speed for moto1 over 50 points
curl -X GET "https://gpx.octal.be/api/speed/moto1/mean/50"
Live Response:
{
"path": "/api/speed/moto1/mean/50",
"unit": "km/h",
"value": 0
}
/api/speed/moto2/mean/50
Mean speed for moto2 over 50 points
curl -X GET "https://gpx.octal.be/api/speed/moto2/mean/50"
Live Response:
{
"path": "/api/speed/moto2/mean/50",
"unit": "km/h",
"value": 0
}
/api/poi/elevation/moto1
Current elevation for moto1
curl -X GET "https://gpx.octal.be/api/poi/elevation/moto1"
Live Response:
{
"path": "/api/poi/elevation/moto1",
"unit": "m",
"value": 44
}
/api/poi/elevation/moto2
Current elevation for moto2
curl -X GET "https://gpx.octal.be/api/poi/elevation/moto2"
Live Response:
{
"path": "/api/poi/elevation/moto2",
"unit": "m",
"value": 42
}
/api/poi/slope/moto1
Current slope for moto1
curl -X GET "https://gpx.octal.be/api/poi/slope/moto1"
Live Response:
{
"path": "/api/poi/slope/moto1",
"unit": "%",
"value": 1
}
/api/poi/slope/moto2
Current slope for moto2
curl -X GET "https://gpx.octal.be/api/poi/slope/moto2"
Live Response:
{
"path": "/api/poi/slope/moto2",
"unit": "%",
"value": 0
}
Data refreshes every 5 seconds. Last update: 2026-01-26T23:41:50.986472Z