Thanks for your inquiry!
We will contact you as quickly we can.
Your live tracking platform for sports events & activities
Exciting visualizations, leaderboards & safety dashboards
Lightweight tracking platform
Sign up and test RACEMAP for free. Host your interactive sports map for €25 only. Use your own GPS devices or rent from RACEMAP.
Top-notch support
Need any guidance while creating your event? Just contact us whenever you need. Our helpful team will gladly assist!
Do-it-yourself event builder
Frictionless: Neither coding skills nor additional software needed. Creating sports events & processing location data has never been easier than in our intuitive tracking platform.
Scalable up to the largest events
Decentralized & easy: Athletes contribute activities regardless of location or time. Our tracking solution is growing with your event - for small private adventures up to huge competitions with thousands of participants.
Let your sports events look great!
Recap of 100km duathlon around Dresden, teams starting separately every one minute
Activity challenge over 6 months: participants complete one to eight routes whenever they want, synchronized visualization showing all participants simultaneously
Live ranking & results of a running event, reads from geofences
Results of a permanent challenge of running or hiking 8 courses over 6 months
Leaderboard of a virtual challenge, participants contributed their activities from all over Europa
Live monitor for participants' safety & coordination of support, volunteers, ambulances, etc.
Data API
Feed your applications with live location data. TV graphics, web streams, live ranks, notifications & newsletters, speed monitoring, etc. Our APIs provide real-time geodata such as gaps, distance to go, speed, passings at geofences, and much more.
Precisely target your customers' needs. Easily adapt specific solutions for your use case.
{ "name": "Sample live API | 100km Duathlon (old)", "location": "🇩🇪 Dresden", "startTime": "2025-05-04T08:23:43Z", "endTime": "2025-05-04T12:23:07Z", "starters": [ { "id": "6336f41309be310001a58976", "name": "Wolfsrudel Mädels", "startNumber": "053", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70567, "lat": 51.02666928, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 241.5914847204093, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58975", "name": "KU200", "startNumber": "052", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70487, "lat": 51.02677, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 207.7144360423766, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58974", "name": "Eierschecke", "startNumber": "051", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.7048, "lat": 51.02672, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 211.47575386512975, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58973", "name": "Nicht ohne (m)eine Karte", "startNumber": "050", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58972", "name": "Der Weg ist das Ziel e.V.", "startNumber": "049", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58971", "name": "PLAN:LOS", "startNumber": "048", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.705165964, "lat": 51.026717892, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 220.64092264842554, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58970", "name": "SG Turbine Gottleubatal", "startNumber": "046", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5896f", "name": "Von Null Auf Einhundert", "startNumber": "044", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5896e", "name": "pass the baton", "startNumber": "043", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70502, "lat": 51.02685, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 203.1229443867474, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5896d", "name": "Die Bummler", "startNumber": "042", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70458991, "lat": 51.026822018, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 196.57411175534514, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5896c", "name": "Vitzthum-Gymnasium", "startNumber": "041", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70523, "lat": 51.02663, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 231.38970242340602, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5896b", "name": "Ladies first aka D.E.K.S.", "startNumber": "040", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5896a", "name": "Watttrojaner", "startNumber": "038", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58969", "name": "Lehrer", "startNumber": "036", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58968", "name": "Leichtfüßer Pro", "startNumber": "035", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58967", "name": "Lokomotive Prießnitzgrund", "startNumber": "034", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.704654352727273, "lat": 51.02683435272727, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 196.40166888687514, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58966", "name": "Team-ATP", "startNumber": "033", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58965", "name": "ladies and gentlemen in red - Citylauf-Verein Dresden e.V.", "startNumber": "032", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58964", "name": "André läuft, wir sind nur schön", "startNumber": "030", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.704457576, "lat": 51.026892423999996, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 186.8547876551619, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58963", "name": "Schwarze 7", "startNumber": "029", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58962", "name": "telicorsas & friends", "startNumber": "028", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58961", "name": "Trial-Warriors", "startNumber": "027", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58960", "name": "Die vier lustigen fünf", "startNumber": "026", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5895f", "name": "5 gegen die anderen Willies", "startNumber": "025", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5895e", "name": "Skiklubpapas", "startNumber": "024", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70557, "lat": 51.02657474666667, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 247.3094485636902, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5895d", "name": "Die Sonntagsläufer", "startNumber": "023", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.704982119999999, "lat": 51.026787373333335, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 208.59551564032702, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5895c", "name": "Hektohelden", "startNumber": "020", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70521, "lat": 51.02658, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 235.9479996402892, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5895b", "name": "LG ABS Dresden", "startNumber": "019", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70515, "lat": 51.02693, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 198.75873578381655, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5895a", "name": "TraceTronic Testrunners", "startNumber": "018", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70556, "lat": 51.02676, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 228.9930227498389, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58959", "name": "Kopfjäger Sports e.V.", "startNumber": "017", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58958", "name": "Sprititours", "startNumber": "016", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70522, "lat": 51.026438808, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 250.75205465813667, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58957", "name": "💥5x Lust auf Schmerz💥", "startNumber": "015", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58956", "name": "Leichtfüßer", "startNumber": "014", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58955", "name": "LG Voltaren", "startNumber": "013", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58954", "name": "Friendly Fire", "startNumber": "012", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58953", "name": "kurtszeitig kurtsatmig", "startNumber": "010", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58952", "name": "FÜNFLÄNDER", "startNumber": "009", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.7051, "lat": 51.02661, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 229.96580536920848, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58951", "name": "Team Zissou", "startNumber": "006", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58950", "name": "Fünf Gegen Willi", "startNumber": "005", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5894f", "name": "LG Wieselflink", "startNumber": "004", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5894e", "name": "Flitzpiepen", "startNumber": "003", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5894d", "name": "CLV Megware meets SG Adelsberg", "startNumber": "002", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5894c", "name": "🔥 Flaming 🔥 Sideburns 🔥", "startNumber": "001", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58977", "name": "Vorausfahrer", "startNumber": "📢", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58978", "name": "Nachfahrer", "startNumber": "🧹", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.703695334, "lat": 51.02186928, "elv": 198, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 45.86499655539813, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58979", "name": "Nachfahrer", "startNumber": "🧹", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.703897532000001, "lat": 51.021912487, "elv": 198, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 57.199577869947305, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a5897a", "name": "Wildwechsel", "startNumber": "007", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5897b", "name": "USC Magdeburg", "startNumber": "008", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5897c", "name": "Bike Passion Pirna", "startNumber": "011", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5897d", "name": "Kingscupkönige", "startNumber": "021", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5897e", "name": "Harzer Roller Club", "startNumber": "022", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a5897f", "name": "Team Pirate und Gäste", "startNumber": "031", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58980", "name": "Wolfsrudel - Männer", "startNumber": "037", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58981", "name": "Dude, where's the finish line?", "startNumber": "039", "importId": null, "current": null, "device": null }, { "id": "6336f41309be310001a58982", "name": "Greyhound-Express", "startNumber": "045", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.70458, "lat": 51.0268, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 198.7829222451438, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null }, { "id": "6336f41309be310001a58983", "name": "Team HASSELHOFF", "startNumber": "047", "importId": null, "current": { "time": "2025-05-04T08:23:47.801Z", "lng": 13.704905874, "lat": 51.02677, "elv": null, "speed": 0, "speedRaw": 0, "fromStart": 0, "toFinish": 98360, "distanceToShadowTrack": 208.54465125150065, "eta": 0, "gapAverage": 0, "gap": 0, "gapChase": 0, "gapDistance": 0, "lngSt": 13.70341976080608, "latSt": 51.02149499873168 }, "device": null } ] }
Location data of any device
GPS tracker, Apps, wearables, and prediction - Combine geodata as you need it!
Our trackers cover the needs of professional GPS solution for multiple participants tracking such as visualization of leading group or ambulances. RACEMAP provides multi tracker management to remote control all your trackers simultaneously. Rent or purchase the number of devices you need for your event.
Powerful tracking apps
Scalable tracking solution for viewers and athletes. Tracking app for all kinds of sports events, free download for participants & spectators. Low cost & low effort live tracking for all your races. Customizations for your custom event app.
Upload recorded activities
Use your wearable or fitness tracker such as Garmin, Polar or Strava and submit individually recorded workouts to a specific event.
Our unique algorithm receives intermittent reads from the timing system. Racemap predicts the location, speed & AI-based corrections, providing a smooth and realistic visualization. Effortless live tracking of all participants, as there are no individual tracking devices needed.
Customers’ feedback
Gideon Lang-Laddie, USA
Founder & Chairman PROSTATE1000
Thank you for the fantastic technology and service that you provided for our PROSTATE1OOO ride from Paris to Monte Carlo. To say the least, RACEMAP made the whole journey not only visible for our donors and sponsors, but also made it possible. Racemap enabled our support crews to track riders and one another, thus able to provide food, drink, safety and recovery. I do not know how we would have been able to complete the ride without your services! The visibility on your website was also greatly appreciated by our followers.
Timo Jahn, Germany
Timekeeper, CEO Laufservice Jena
Racemap is great & flexible live tracking. At the Horizontale - a non-stop hike of 100K around Jena - more than 1,300 participants used Racemap tracking app for safety monitoring. Additionally, Racemap calculated the timestamps at geofences for the ranks, and we didn't have to deploy decoders for the splits. I really look forward to more projects with Racemap.
Hartmut Kohn, Germany
just a runner ;-)
Great! I am using Racemap for safety reasons. The private map is the perfect and affordable solution for live tracking my multi-day ultra projects. Racemap App keeps staff & helpers updated and they can react quickly if needed.
James Nguyen, Australia
Competitions & Events Manager | Cycling New South Wales
Through Racemap we were able to publish live GPS data at our event, previously never done before at a National Road Series-level race. Racemap team helped us get the file up and ready and once we started, it was smooth sailing from there. The map created a huge impression for the event, for our results service, and left the event promoter beaming as he was able to watch the race after being stranded on the other side of the country.
Jason Calderon, USA
Lead Timer Haute Route NA/Gran Fondo National Series
Your product is outstanding. Due to the functionality of your system, your awesome support, and the great pricing that you offer; we’ll be using Racemap for the foreseeable future.
Get in touch with RACEMAP
Live tracking for one of your events? Location data for your applications? Any questions about RACEMAP tracking platform? Get in touch! We find the best solution for your use case.
Thanks for your inquiry!
We will contact you as quickly we can.
Can't send form.
Please try again later.
Subscribe RACEMAP news
Thanks for subscribing our newsletter!
... all about sports live tracking
Can't send form.
Please try again later.
Maps: ©Mapbox ©OpenStreetMap
©RACEMAP
Subscribe RACEMAP news
Thanks for subscribing our newsletter!
... all about sports live tracking
Can't send form.
Please try again later.
Maps: ©Mapbox ©OpenStreetMap
©RACEMAP