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:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/standing
Current race standings and device aliases
curl -X GET "https://gpx.octal.be/api/standing"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/position/moto1
Current position of moto1 (lat/lon)
curl -X GET "https://gpx.octal.be/api/position/moto1"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/status/moto1
Health/status of moto1
curl -X GET "https://gpx.octal.be/api/status/moto1"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/moto1/start
Distance from start for moto1 (km)
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/start"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/moto1/end
Distance to end for moto1 (km)
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/end"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/speed/moto1/mean/50
Mean speed for moto1 over 50 points (km/h)
curl -X GET "https://gpx.octal.be/api/speed/moto1/mean/50"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/speed/moto1/mean/50/text
Mean speed for moto1 — plain-text output
curl -X GET "https://gpx.octal.be/api/speed/moto1/mean/50/text"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/poi/elevation/moto1
Current elevation for moto1 (m)
curl -X GET "https://gpx.octal.be/api/poi/elevation/moto1"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/poi/slope/moto1
Current slope for moto1 (%)
curl -X GET "https://gpx.octal.be/api/poi/slope/moto1"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/position/moto2
Current position of moto2 (lat/lon)
curl -X GET "https://gpx.octal.be/api/position/moto2"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/status/moto2
Health/status of moto2
curl -X GET "https://gpx.octal.be/api/status/moto2"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/moto2/start
Distance from start for moto2 (km)
curl -X GET "https://gpx.octal.be/api/gap/distance/moto2/start"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/moto2/end
Distance to end for moto2 (km)
curl -X GET "https://gpx.octal.be/api/gap/distance/moto2/end"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/speed/moto2/mean/50
Mean speed for moto2 over 50 points (km/h)
curl -X GET "https://gpx.octal.be/api/speed/moto2/mean/50"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/speed/moto2/mean/50/text
Mean speed for moto2 — plain-text output
curl -X GET "https://gpx.octal.be/api/speed/moto2/mean/50/text"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/poi/elevation/moto2
Current elevation for moto2 (m)
curl -X GET "https://gpx.octal.be/api/poi/elevation/moto2"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/poi/slope/moto2
Current slope for moto2 (%)
curl -X GET "https://gpx.octal.be/api/poi/slope/moto2"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/moto1/moto2
Time gap moto1↔moto2 — seconds (default)
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/moto1/moto2/mmss
Time gap — mm:ss format
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2/mmss"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/moto1/moto2/hhmmss
Time gap — hh:mm:ss format
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2/hhmmss"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/moto1/moto2/racing
Time gap — racing format (mm'ss'')
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2/racing"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/moto1/moto2/racing/text
Time gap — racing, plain-text output
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2/racing/text"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/moto1/moto2/hhmmss/html
Time gap — hh:mm:ss, HTML output
curl -X GET "https://gpx.octal.be/api/gap/time/moto1/moto2/hhmmss/html"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/moto1/moto2
Distance gap moto1↔moto2 (km, JSON)
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/moto2"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/moto1/moto2/text
Distance gap — plain-text output
curl -X GET "https://gpx.octal.be/api/gap/distance/moto1/moto2/text"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/time/first/second/racing
Time gap leader↔2nd (racing) — via aliases
curl -X GET "https://gpx.octal.be/api/gap/time/first/second/racing"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
/api/gap/distance/first/last
Distance gap leader↔last — via aliases
curl -X GET "https://gpx.octal.be/api/gap/distance/first/last"
Live Response:
❌ ERROR: Request failed: {:tls_alert, {:unsupported_certificate, ~c"TLS client: In state wait_cert_cr at ssl_handshake.erl:2199 generated CLIENT ALERT: Fatal - Unsupported Certificate\n {key_usage_mismatch,{{'Extension',{2,5,29,15},true,[keyCertSign,cRLSign]},\n {'Extension',{2,5,29,37},false,[{1,3,6,1,5,5,7,3,1}]}}}"}}
Data refreshes every 5 seconds. Last update: 2026-07-03T04:37:26.477063Z