openplanet-nl / nadeoapi-docs

A detailed collaborative Trackmania API documentation.
MIT License
15 stars 9 forks source link

Document more endpoints #6

Open davidbmaier opened 2 years ago

davidbmaier commented 2 years ago

Just a list of potential endpoints that could get documented - mostly just stuff to look into and try out, some of this is probably not worth documenting.

All of these endpoints are taken from the in-game scripts iirc, but we'll want to check if they're actually used before we add them.

Core No details yet, need to go through https://prod.trackmania.core.nadeo.online/api/routes?usage=Client and pick useful ones we should document.
Live ### Channel - GET /api/token/channel/%s - GET /api/token/channel/%s/grid - POST /api/token/channel/%s/join ### Map review - GET /api/token/map-review/%s/connect - GET /api/token/map-review/%s/waiting-time - POST /api/token/map-review/%s/add-map-queue - GET /api/token/map-review/%s/submitted-map?offset=%d&length=%d&withFeedback=true&withMapInfo=true - POST /api/token/map-review/%s/submitted-map/%s ### Club players - GET /api/token/club/player-vip/map/%s - GET /api/token/club/follower/map/%s ### Club assets - GET /api/token/club/bucket/%s/all?offset=%d&length=%d&sort=%s&order=%s&name=%s Bucket types: "skin", "map", "item" - POST /api/token/club/%d/bucket/create - GET /api/token/club/%d/bucket/%d?offset=%d&length=%d - POST /api/token/club/%d/bucket/%d/edit - POST /api/token/club/%d/bucket/%d/add - POST /api/token/club/%d/bucket/%d/remove - POST /api/token/club/%d/bucket/%d/item/%d/edit - POST /api/token/club/%d/bucket/%d/item/%d/add-media - POST /api/token/club/%d/bucket/%d/item/%d/delete-media/%d ### Club management - POST /api/token/club/create - POST /api/token/club/%d/edit - POST /api/token/club/%d/delete - POST /api/token/club/%d/media/delete - POST /api/token/club/%d/media/upload - POST /api/token/club/%d/featured/set - POST /api/token/club/%d/featured/unset - POST /api/token/club/%d/pin - POST /api/token/club/%d/tag - POST /api/token/club/%d/ranking/create ### Club members - GET /api/token/club/%d/member/request - POST /api/token/club/%d/member/request/%s/accept - POST /api/token/club/%d/member/request/%s/decline - POST /api/token/club/%d/member/%s/delete - POST /api/token/club/%d/member/%s/edit - POST /api/token/club/%d/member/create - POST /api/token/club/%d/vip/%s/set - POST /api/token/club/%d/vip/%s/unset - GET /api/token/club/%d/vip/map/%s ### Club campaigns - GET /api/token/club/%d/campaign - POST /api/token/club/%d/campaign/create - GET /api/token/club/%d/campaign/%d - POST /api/token/club/%d/campaign/%d/edit ### Club rooms - POST /api/token/club/%d/room/create - POST /api/token/club/%d/room/create-from-server - GET /api/token/club/%d/room/%d - POST /api/token/club/%d/room/%d/edit - POST /api/token/club/%d/room/%d/edit-from-server - POST /api/token/club/%d/room/%d/join - POST /api/token/club/%d/room/%d/generate-password - GET /api/token/club/%d/room/%d/get-password ### Club news - POST /api/token/club/%d/news/create - GET /api/token/club/%d/news/%d - POST /api/token/club/%d/news/%s/edit - POST /api/token/club/%d/news/%s/upload - POST /api/token/club/%d/news/%s/delete-media ### Club activities - GET /api/token/club/%d/activity-featured - POST /api/token/club/%d/activity/%d/edit - POST /api/token/club/%d/activity/%d/delete - POST /api/token/club/%d/activity/%d/upload ### Club map review - POST /api/token/club/%d/map-review/create - GET /api/token/club/%d/map-review/%d - GET /api/token/club/%d/map-review/%d/map/mine - GET /api/token/club/%d/map-review/%d/map - GET /api/token/club/%d/map-review/%d/waiting-time - POST /api/token/club/%d/map-review/%d/edit - POST /api/token/club/%d/map-review/%d/join - POST /api/token/club/%d/map-review/%d/add-map-queue - POST /api/token/club/%d/map-review/%d/map/%s/delete ### Leaderboards - GET /api/token/leaderboard/group/%s/top?onlyWorld=true&offset=%d&length=%d - GET /api/token/leaderboard/group/%s/map?scores[]=%d - GET /api/token/leaderboard/group/%s/map/%s?score=%d - GET /api/token/leaderboard/group/%s/map/club/%d?scores[]=%d - GET /api/token/leaderboard/group/%s/map/%s/club/%d - GET /api/token/leaderboard/group/%s/map/%s/club/%d/top?score=%d&offset=%d&length=%d - GET /api/token/leaderboard/group/%s/map/%s/level?score=%d - GET /api/token/leaderboard/group/%s/club/%d - GET /api/token/leaderboard/group/%s/club/%d/top?offset=%d&length=%d - GET /api/token/leaderboard/trophy - GET /api/token/server/player-server/account
Club ### Club matches - GET /api/me/matches?not_completed=%d&group=%s - GET /api/join/players?group=%s&players[]=%s - GET /api/players/%s - GET /api/players/%s/matches ### Meta endpoints? - GET /api/units - GET /api/units/%s/members - GET /api/reports
Competition ### Club competition management - GET /api/me/club-competitions/current?offset=%d&length=%d - POST /api/club-competitions/v2/create - POST /api/club-competitions/%d/register - POST /api/club-competitions/%d/upload/vertical - POST /api/club-competitions/%d/upload/logo ### Competitions/Matches - GET /api/competitions/%d/leaderboard/participants?offset=%d&length=%d - GET /api/rounds/%d/matches?length=%d - GET /api/matches/%d - GET /api/matches/%d/add-participants - GET /api/matches/%d/delete-participants ### Competition challenges - GET /api/challenges/%d/leaderboard/players?offset=%d&length=%d - GET /api/challenges/%d/records/players?offset=%d&length=%d ### Special endpoints - GET /api/super-royal/stats/%s - GET /api/cup-of-the-day/current
Matchmaking - GET /api/code/%s - GET /api/matchmaking/me - POST /api/matchmaking/%d/heartbeat - GET /api/matchmaking/%d/player-status - POST /api/matchmaking/%d/accept - POST /api/matchmaking/%d/cancel - GET /api/matchmaking/%d/stats - GET /api/matchmaking/%d/leaderboard?offset=%d&length=%d - GET /api/matchmaking/%d/leaderboard/players?players[]=%s - GET /api/matchmaking/%d/progression/players?players[]=%s - GET /api/matchmaking/%d/division/display-rules - GET /api/matchmaking/%s - GET /api/match/%s/participants
ezio416 commented 7 months ago

A core route: /accounts/<accountId>/mapRecords Returns data on every record the player has driven. Requires a Ubisoft account, and the account ID must be that of the player, else it returns {'code': 'C-AA-00-07', 'correlation_id': '<some 32-char id>', 'message': 'You are not allowed to do this action on this account'}

davidbmaier commented 7 months ago

Is that not just https://webservices.openplanet.dev/core/records/map-records?

codecat commented 7 months ago

No, it gives all your own PB's.

davidbmaier commented 7 months ago

Looking at the last remark for that endpoint, it's the same thing under the hood, no? I guess we could document both of them, but we have the feature covered already.

codecat commented 7 months ago

I don't think we do? The player map records endpoint returns every single record for the logged in player without the need for any filtering, this means you can effectively see every single map you have ever played.

davidbmaier commented 7 months ago

Maybe I'm misunderstanding something, is this not exactly that?

By omitting mapIdList you can request all records on all maps for a requested accountId - note that this only works for the currently authenticated account, requesting others' records without specifying mapIds will result in error 403. This feature is not supported when using a dedicated server account's token.

codecat commented 7 months ago

Oh, I missed that part. I suppose they are synonymous then indeed.

ezio416 commented 7 months ago

Oh my bad I totally missed that and didn't realize there was an option to omit the mapIdList to get the same results. Maybe there could then just be a remark on that page that the endpoint I suggested is also valid for that, probably not worth a dedicated page

codecat commented 7 months ago

I think it is still worth its own page as it is still its own endpoint with potentially different rules