Endpoints
All paths are relative to /api/. Read endpoints are what a mod browser needs; write endpoints are gated by your key's scopes.
Games
| Method | Path | Scope | Notes |
|---|---|---|---|
| GET | mod-games/ | game:read | Games visible to your key. Scoped key = just your game(s). |
| GET | mod-games/{game_id}/ | game:read | One game. 403 if out of scope. |
Categories
| Method | Path | Scope | Notes |
|---|---|---|---|
| GET | mod-categories/ | mod_category:read | Category tree. |
| GET | mod-categories/flattened/ | mod_category:read | Flat list (easy dropdown). |
| GET | mod-categories/{category_id}/ | mod_category:read | One category. |
Mods
| Method | Path | Scope | Notes |
|---|---|---|---|
| GET | mods/ | mod:read | Paginated list. Filters below. |
| GET | mods/{mod_id}/ | mod:read | One mod, verbose. 403 if out of scope. |
| GET | mods/{mod_id}/updates/ | mod:read | Paginated changelog/update posts. |
| GET | mods/{mod_id}/reviews/ | mod_rating:read | Paginated reviews. |
| GET | mods/{mod_id}/versions/ | mod:read | All versions (versioned mods only). |
List filters (query string on GET mods/):
page(int)prefix_id(int)type(free|paid)creator_id(int) - mods by one authororder(last_update|mod_date|rating_weighted|download_count|title)direction(asc|desc)
You do not pass game_id - scope is applied server-side.
Versions & downloads
| Method | Path | Scope | Notes |
|---|---|---|---|
| GET | mod-versions/{version_id}/ | mod:read | One version. |
| GET | mod-versions/{version_id}/download?file={attachment_id} | mod:read | Local file: streams it. External: 302 redirect to the external URL. |
How download info appears on a version result:
- External mod -
download_url(string) + optionaldownload_urls(string[] mirrors). Point the user at those. - Local (hosted) mod -
files[], each{ id, filename, size, download_url }. Thatdownload_urlis the API download endpoint - call it with your key to stream the bytes.
Always call the download endpoint
Do not cache or hand out a raw storage URL. Always fetch through mod-versions/{id}/download with your key so access stays revocable. See Acceptable Use.
Updates / Reviews / Comments
| Method | Path | Scope |
|---|---|---|
| GET | mod-updates/ , mod-updates/{id}/ | mod:read |
| GET | mod-reviews/ , mod-reviews/{id}/ | mod_rating:read |
| GET | mod-comments/ , mod-comments/{id}/ | mod:read |
Write endpoints (optional)
Only usable if your key has write scopes. Developer keys are read-only (mod:read + game:read) by default; write access is a manual upgrade.
POST mods/- create a mod (requiresgame_idin body; must be your game or 403).POST mods/{mod_id}/- edit.DELETE mods/{mod_id}/- delete (soft by default).POST mod-versions/- publish a new version of a mod.