Difference between revisions of "Endomondo"

From Archiveteam
Jump to navigation Jump to search
(Add pages and API endpoints)
(Add additional pages, embed URLs, mention other API domains)
Line 27: Line 27:
 
User stats link: https://www.endomondo.com/stats/9927165 (seems to always require authentication to access)
 
User stats link: https://www.endomondo.com/stats/9927165 (seems to always require authentication to access)
  
 +
User training plan: https://www.endomondo.com/training/plan/9927165
 +
 +
User history: https://www.endomondo.com/users/9927165/history (seems to always require authentication to access)
 +
 +
Routes: 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)
 +
 +
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<ref>{{URL|https://www.facebook.com/endomondo/posts/who-can-create-team-on-endomondo-only-premium-people-/10154370224069447/}}</ref>.
 +
 +
Challenges listing: https://www.endomondo.com/challenges
 +
 +
Challenge example (makes XHR requests to /?x=): https://www.endomondo.com/challenges/35790072
 +
 +
=== 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<ref>{{URL|https://github.com/Odyno/endomondowp/blob/master/include/ewp-lib.php}}</ref>.
  
 
=== XHR API Used by Profile Page ===
 
=== XHR API Used by Profile Page ===
Line 41: Line 85:
  
 
User workout feed (retrieved with workout): https://www.endomondo.com/rest/v1/users/9927165/feeds/281476616676861
 
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 ====
 
==== Additional API Endpoints ====
 
User info REST endpoint: https://www.endomondo.com/rest/v1/users/9927165
 
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) <ref>{{URL|https://github.com/nck974/endomondo_bulk_extractor#instalation}}</ref>
+
Export workout (TCX): https://www.endomondo.com/rest/v1/users/9927165/workouts/1571269570/export?format=TCX (requires authentication)<ref>{{URL|https://github.com/nck974/endomondo_bulk_extractor#instalation}}</ref>
 +
 
 +
Export workout (GPX): https://www.endomondo.com/rest/v1/users/9927165/workouts/1571269570/export?format=GPX (requires authentication)<ref>{{URL|https://github.com/nck974/endomondo_bulk_extractor#instalation}}</ref>
 +
 
 +
=== 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.
  
Export workout (GPX): https://www.endomondo.com/rest/v1/users/9927165/workouts/1571269570/export?format=GPX (requires authentication) <ref>{{URL|https://github.com/nck974/endomondo_bulk_extractor#instalation}}</ref>
+
https://api.endomondo.com also seems to be an active domain.

Revision as of 08:14, 8 December 2020

Endomondo
Endomondo logo
Www-endomondo-com.png
URL https://www.endomondo.com/
Project status Closing
Archiving status Upcoming...
Project source Unknown
Project tracker Unknown
IRC channel #findelmundo (on hackint)
Project lead Unknown

Endomondo is a GPS workout tracker with optional social networking features.

It launched around September 2008[1], and was acquired by Under Armour in February 2015[2].

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[3][4]. Users were encouraged to transfer their data to Under Armour's MapMyFitness platform using an automated migration feature[5].

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 stats link: https://www.endomondo.com/stats/9927165 (seems to always require authentication to access)

User training plan: https://www.endomondo.com/training/plan/9927165

User history: https://www.endomondo.com/users/9927165/history (seems to always require authentication to access)

Routes: 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)

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[6].

Challenges listing: https://www.endomondo.com/challenges

Challenge example (makes XHR requests to /?x=): https://www.endomondo.com/challenges/35790072

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[7].

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)[8]

Export workout (GPX): https://www.endomondo.com/rest/v1/users/9927165/workouts/1571269570/export?format=GPX (requires authentication)[9]

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.