This is a Java implementation of unofficial mobile API of Endomondo.
EndomondoSession session = new EndomondoSession(userName, password);
try {
session.login();
} catch (LoginException e) {
LOG.error("exception while trying to login user: {}", userName, e);
}
session.getAllWorkouts() // basic data, without gps information
session.getWorkout(id) // single workout, all available data (with gps)
session.getAccountInfo()