Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ export default defineConfig({
link: '/playoffs',
activeMatch: '/playoffs'
},
{
text: 'Technical',
link: '/technical',
activeMatch: '/technical'
},
{
text: 'Contribute',
link: '/contribute',
Expand Down Expand Up @@ -148,6 +153,17 @@ export default defineConfig({
{ text: 'Private Rooms', link: '/private_rooms' },
{ text: 'Weekly Race', link: '/weekly_race' },
{ text: 'Achievements', link: '/achievements' },
]
}
],
'/technical': [
{
text: 'Technical',
link: '/',
base: '/technical',
items: [
{ text: 'REST API', link: '/api' },
{ text: 'Ranked Spectator Accounts', link: '/ranked_spectator_accounts' },
{ text: 'Replay System', link: '/replay_system' },
]
}
Expand Down
12 changes: 11 additions & 1 deletion docs/.vitepress/theme/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,14 @@
pointer-events: none;
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
}

@media (min-width: 1280px) {
.VPHome .VPFeatures .container {
max-width: 1440px;
}

.VPHome .VPFeatures .item.grid-4 {
width: 20%;
}
}
7 changes: 3 additions & 4 deletions docs/gameplay/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ This section covers how Ranked matches work, as wells as information relating to
- [RNG Standardization](./rng)
- [Elo & Ranks](./elo_and_ranks)
- [Match-Making](./matchmaking)
- [Private Rooms](./private_rooms)
- [Weekly Race](./weekly_race)
- [Achievements](./achievements)
- [Replay System](./replay_system)
- [Private Rooms](./private_rooms)
- [Weekly Race](./weekly_race)
- [Achievements](./achievements)
2 changes: 1 addition & 1 deletion docs/gameplay/weekly_race.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Weekly Race resets Monday at 12:00am UTC.

The Weekly Race menu features the current week's leaderboard, up to the top 50 runs. The current week is listed at the top of the menu, with the option to view previous weeks' leaderboards. The time and date that Weekly Race resets is displayed in the user's local timezone, though note that the listed timezone may not match the timezone the user currently observes if in daylight savings or summer time.

Clicking a run on the leaderboard gives the option to watch the [replay](./replay_system) for the run.
Clicking a run on the leaderboard gives the option to watch the [replay](../technical/replay_system) for the run.

## Gameplay

Expand Down
6 changes: 5 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,14 @@ features:
details: MCSR Ranked Playoffs are our official Minecraft Speedrunning Tournament. Learn more about it here.
link: /playoffs
linkText: Learn more
- title: Technical
icon: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m14.7 6.3l3 3"/><path d="M19 5a2.8 2.8 0 0 0-4 0l-9.5 9.5l-.8 4.8l4.8-.8L19 9a2.8 2.8 0 0 0 0-4Z"/><path d="M3 21h18"/><path d="m13 7l4 4"/></g></svg>
details: API references, RSA tooling, replay systems, and other docs for building MCSR Ranked tools.
link: /technical
linkText: Learn more
- title: For Contributors
icon: <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M4 18a2 2 0 1 0 4 0a2 2 0 1 0-4 0M4 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0m12 12a2 2 0 1 0 4 0a2 2 0 1 0-4 0M6 8v8"/><path d="M11 6h5a2 2 0 0 1 2 2v8"/><path d="m14 9l-3-3l3-3"/></g></svg>
details: Are you interested in contributing to our pages? Learn more about guidelines and tutorials here.
link: /contribute
linkText: Learn more
---

72 changes: 72 additions & 0 deletions docs/technical/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# REST API

## Explanation
MCSR Ranked has a public REST API for reading ranked data such as users, matches, live data, leaderboards, and weekly races.

The full API reference is available at [docs.mcsrranked.com](https://docs.mcsrranked.com/). This page is a wiki overview for finding the API and understanding the core conventions.

## Endpoints
The API can be accessed from either base URL:

```text
https://api.mcsrranked.com/
https://mcsrranked.com/api/
```

The dedicated API domain is preferred for new tools.

## OpenAPI
The OpenAPI document is available here:

```text
https://api.mcsrranked.com/openapi.yaml
```

Use the OpenAPI document for generated clients, schema validation, or checking the exact request and response formats.

## Rate limits
Most endpoints are limited to `500` requests per `10` minutes.

For an expanded rate limit, create a ticket in the MCSR Ranked Discord and request an API key.

## Authentication
Many endpoints do not require authentication.

For endpoints that need authentication, open an MCSR Ranked instance and use:

```text
Profile > Settings > Generate & Copy API Private Key
```

Pass the key in the request header:

```text
Private-Key: YOUR_KEY_HERE
```

## Time values
The API uses two common numeric time formats:

| Type | Format |
| --- | --- |
| `Date` | Unix timestamp in seconds. |
| `Time` | Duration in milliseconds. |

This differs from `spectate_match.json`, where `startTime` is a Unix timestamp in milliseconds.

## Common objects
The API reference defines shared object types used across endpoints.

| Object | Notes |
| --- | --- |
| `UserProfile` | UUID, nickname, role type, Elo rating/rank, and country. |
| `Achievement` | Achievement ID, earned date, payload data, level, and progress fields. |
| `MatchInfo` | Match metadata, players, spectators, result, seed information, VODs, timelines, and replay availability. |
| `MatchSeed` | Filtered seed metadata such as overworld type, nether type, End tower heights, and variations. |
| `UserIdentifier` | User lookup value. Can be UUID, nickname, or `discord.ID`. |
| `MatchType` | Numeric match type enum. |

## Match data
Historical match data comes from the API. Live RSA event data comes from `spectate_match.json`.

Use the API when you need stored match data, player profiles, standings, leaderboards, or public replay availability. Use RSA live match data when you need low-latency event overlay state from a private room, especially when `No Logs Mode` is enabled.
9 changes: 9 additions & 0 deletions docs/technical/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Technical Documentation

This section covers MCSR Ranked systems that are most useful for event organizers, overlay developers, and tool developers.

### Index

- [REST API](./api)
- [Ranked Spectator Accounts](./ranked_spectator_accounts)
- [Replay System](./replay_system)
Loading
Loading