Endomondo

Endomondo is a GPS workout tracker with optional social networking features.
It launched around September 2008, and was acquired by Under Armour in February 2015.
On October 30, 2020, Under Armour announced that Endomondo would be shut down on December 31, 2020, with users being able to contact support to request a copy or portability of their data until March 31, 2021. Users were encouraged to transfer their data to Under Armour's MapMyFitness platform using an automated migration feature.
== Site Structure ==
User profile: https://www.endomondo.com/profile/9927165
User workouts list: https://www.endomondo.com/users/9927165/workouts/latest
Direct workout link: https://www.endomondo.com/users/9927165/workouts/1582417745
User training plan: https://www.endomondo.com/training/plan/9927165
Team: https://www.endomondo.com/teams/14970924
Team members: https://www.endomondo.com/teams/14970924/members
Team leaderboard: https://www.endomondo.com/teams/14970924/leaderboard
It appears that teams were discontinued in 2015.
Challenges listing: https://www.endomondo.com/challenges
Challenge example (makes XHR requests to /?x=): https://www.endomondo.com/challenges/35790072
=== Authentication Required ===
User stats link: https://www.endomondo.com/stats/9927165 (seems to always require authentication to access)
User history: https://www.endomondo.com/users/9927165/history (seems to always require authentication to access)
Routes listing: https://www.endomondo.com/routes/ (seems to always require authentication to access)
Sample route: https://www.endomondo.com/routes/400681995 (seems to always require authentication to access, however the route embed widget is publicly accessible)
=== Embed Widgets ===
Workout: https://www.endomondo.com/embed/workouts?w=n4ngxsBuen0&width=680&height=600 (width and height parameters are optional)
Challenge: https://www.endomondo.com/embed/challenge?id=24246208
Challenge (page 2 of above page): https://www.endomondo.com/embed/challenge?x=7DMfKdOSZKK7eUPbbVAKyg8*tfrFJUATbJZh5ACCv1kAHROhPL6BWptmSTr4EwxWJiVAJMMRlnTD*0RY6lfrUPOXVWTIseTj1JS1QX6PIug
Route: https://www.endomondo.com/embed/routes?id=313743565&width=900&height=600
Route (XHR request made by above widget): https://www.endomondo.com/?x=bh3ebj1IPkwvkjIcqgKxmsmIkJOiH*SH4xytTeUsvFhUKBsd4xZDZP*ifv1uMkYaMuJ5NTAZ1ygIi03fsUc89Oha6P56JImRKHsAdYoXMmzczySyJCst4qlrK-fX*KNb-iV532lnnjpE*FA5QZtmqqWgyPa0Ex9-xV2MxRRUUOg2UuiUxpueCQ&swLat=56.472290167274856&swLng=8.025839549560567&neLat=56.54749904084606&neLng=8.212950450439473&zoom=12&random=0.7136566329842371
Team Summary: https://www.endomondo.com/embed/team/summary?id=14998340&measure=0&width=450&height=343
Team Summary (another example): https://www.endomondo.com/embed/team/summary?id=j1361x3gyP4&width=240&height=247
User Summary: https://www.endomondo.com/embed/user/summary?id=9927165
Additional parameters for above URL: &sport=18&from=20201201&to=20201231&measure=1&zone=Gm0500_EST&width=680&height=217
User Workouts: https://www.endomondo.com/embed/user/workouts?id=9927165
User Workouts (page 2 of above page): https://www.endomondo.com/embed/user/workouts?x=uDQhOmGj*5Us6sYrUFXdHtAgChJ5speUJ0RB3Uv5cg*Ru8V6*x72LJ6Qg*AXQpmLAjH6dKYm7Bo2nKzzPv6iY6hBYg1wlAWhW3GWsWzUpW8
It appears that an event embed widget also existed at some point.
=== XHR API Used by Profile Page ===
Sample request: https://www.endomondo.com/?x=[some lengthy token]&random=[some value between 0 and 1, likely for caching prevention]
These requests are used when clicking on "2 People Like This" to list who liked a workout when more than one person liked a workout (also used when closing this list). This API is also used when rolling over the "Show More" button at the bottom of a profile to load more workouts. This API returns responses containing XML and HTML code to be added to the existing webpage.
=== REST API ===
This API returns a JSON response.
==== Used by Workout Page ====
List workouts in date range: https://www.endomondo.com/rest/v1/users/9927165/workouts?before=2020-08-13T03%3A59%3A59.999Z&after=2020-06-26T04%3A00%3A00.000Z
Workout information: https://www.endomondo.com/users/9927165/workouts/1582417745
User workout feed (retrieved with workout): https://www.endomondo.com/rest/v1/users/9927165/feeds/281476616676861
Planned workouts: https://www.endomondo.com/rest/v1/users/9927165/planned?before=2020-07-16T03%3A59%3A59.999Z&after=2020-05-29T04%3A00%3A00.000Z
==== Additional API Endpoints ====
User info REST endpoint: https://www.endomondo.com/rest/v1/users/9927165
Export workout (TCX): https://www.endomondo.com/rest/v1/users/9927165/workouts/1571269570/export?format=TCX (requires authentication)
Export workout (GPX): https://www.endomondo.com/rest/v1/users/9927165/workouts/1571269570/export?format=GPX (requires authentication)
=== Mobile API ===
There is another JSON-based API which is used by the mobile app located at https://api.mobile.endomondo.com/mobile/api/. This API requires an authToken parameter for all endpoints.
https://api.endomondo.com also seems to be an active domain.
=== Static Files ===
There are a number of static files hosted on the files.endomondo.com domain, though content does not seem to have been updated since late 2013. This content includes BlackBerry application JAD files, an Android application APK file, detailed user manuals with screenshots for BlackBerry, Symbian, and Android, job listings, screenshots, promotional campaign information, newsletters and featured challenges from 2012-2013, press releases, employee photographs, documentation for a discontinued live events feature, and office information. A collection of archived pages and resources is available at http://web.archive.org/*/files.endomondo.com/*.
Some newsletter-related files appear to be hosted at newsletter.endomondo.com. A collection of archived pages and resources is available at http://web.archive.org/*/newsletter.endomondo.com/*.