Documentation for the undocumented TopLogger API.
Endpoint: https://api.toplogger.nu/v1
Some endpoints can return extra data that is only accessible to the authenticated user.
To authenticate, you need to send two headers with your request:
X-USER-EMAIL
and X-USER-TOKEN
. These are the email and token of the user you want to authenticate as.
You can find your token by logging in the TopLogger site and inspecting the headers of an authenticated request.
You can also get a token by posting to users/sign_in
. The body should be a JSON object with the following format:
{
"user": {
"email": "[email protected]",
"password": "correct-horse-battery-staple"
}
}
Some endpoints accept JSON params. These are sent as a GET parameter named json_params
.
The following options are available (not all are available for all endpoints):
{
"filters": {
"used": true,
"user": {
"uid": "7163205870"
},
"climb": {
"gym_id": 1337,
"deleted": false,
"live": true
}
},
"includes": [
{
"gym": [
"holds",
"walls",
"setters"
]
},
"setters"
]
}
GET users/{user}
Get a user's information. Returns extra data if authenticated as the user.
user
int required
The user to get stats for.
json_params
json requires authentication
Example:
{
"includes": [
{
"gym": [
"holds",
"walls",
"setters"
]
},
"setters"
]
}
GET users/{user}/stats
Returns the stats for a user. Included stats are 60d grade & top ten ascends.
user
int required
The user to get stats for.
gym_id
int
The gym to get stats for. Optional but can be very slow without it.
climbs_type
string
The type of climbs to get stats for.
Options: boulders
, routes
GET users/{user}/strength_history
Returns the strength history for a user.
user
int required
The user to get stats for.
climb_type
string
The type of climbs to get stats for.
Options: boulders
, routes
offset
int
Unknown.
GET users/{gym}/new_old
Returns new and old climbs for a gym.
gym
int required
The gym to get new/old climbs for.
climbs_type
string
The type of climbs to get stats for.
Options: boulders
, routes
GET gyms/{gym}/ranked_gym_users
Returns the ranked gym users for a gym.
gym
int required
The gym to get ranked gym users for.
climbs_type
string required
The type of climbs to get stats for.
Options: boulders
, routes
ranking_type
string required
The type of ranking to get.
Options: grade
, count
items_per_page
int
The number of items per page.
GET opinions
Returns user opinions (ratings).
json_params
json
Example: {"filters":{"used":true,"user":{"uid":"7163205870"},"climb":{"gym_id":8,"deleted":false,"live":true}}}
GET ascends
Returns ascends.
json_params
json partially required
Example:
{
"filters": {
"used": true,
"user": {
"uid": "7163205870" // required
},
"climb": {
"gym_id": 8,
"deleted": false,
"live": true
}
}
}
serialize_checks
boolean
Adds a checks
field to each ascend. 2 checks is a flash, 1 check is a redpoint.
Settings this to false
does not seem to have any effect.
GET gyms/{gym}/climbs
Returns climbs for a gym.
gym
int required
The gym to get climbs for.
json_params
json
Example:
{
"filters": {
"deleted": false,
"live": true
}
}
GET groups
Returns climb groups (circuits).
json_params
json
Example:
{
"filters": {
"gym_id": 8,
"score_system": "none",
"live": true
},
"includes": [
"climb_groups"
]
}
GET gyms/{gym}/climbs/{climb}/stats
Returns stats for a climb: community grades, opinions and toppers.
gym
int required
The gym to get climbs for.
climb
int required
The climb to get stats for.