API Reference

Base URL: https://api.modlauncher.gg

All requests require Authorization: Bearer <apiKey> unless noted.

Rate Limits

Requests per minute by plan:

Starter
60 req/min
Pro
120 req/min
Studio
200 req/min
Enterprise
300 req/min

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Webhook Events
download — A user downloaded a mod
license.created — A license was granted
license.revoked — A license was revoked
mod.created — A mod was created
mod.updated — A mod was updated

Payloads are signed. Verify with: HMAC-SHA256(body, webhook_secret) === X-ModLauncher-Signature header.

Authentication

All Client API requests require an API key sent as a Bearer token.

Header
Authorization: Bearer {apiKey}

Include in every request

Mods

Create, read, update, and delete mods. Upload mod files for encrypted distribution.

GET
/api/v1/mods

List all your mods

POST
/api/v1/mods

Create a new mod

{ "title": "My Mod", "game": "AssettoCorsa", "modType": "car", "version": "1.0.0", "isEncrypted": true }
GET
/api/v1/mods/:id

Get mod details with recent licenses

PUT
/api/v1/mods/:id

Update mod fields (title, version, isActive, etc.)

DELETE
/api/v1/mods/:id

Delete a mod and all its licenses/downloads

POST
/api/v1/mods/:id/upload

Upload mod file (multipart form, "file" field). Server encrypts and stores on CDN.

Content-Type: multipart/form-data
file: (binary)
POST
/api/v1/mods/:id/version

Bump version number

{ "version": "2.0.0" }

Licenses

Grant and revoke access to mods by Steam ID. Users with active licenses can download mods through the ModLauncher app.

GET
/api/v1/licenses

List licenses. Filter with ?modId=xxx or ?userId=steamId

POST
/api/v1/licenses

Grant a license to a Steam user

{ "modId": "clxyz123", "userId": "76561198xxxxx", "userLabel": "PlayerName", "expiresAt": "2026-12-31" }
DELETE
/api/v1/licenses?modId=xxx&userId=xxx

Revoke a license (sets inactive, keeps history)

POST
/api/v1/licenses/bulk

Bulk grant or revoke up to 500 licenses

{ "action": "grant", "modId": "clxyz123", "userIds": ["7656119812345", "7656119867890"] }

Stats

Download and license analytics for your mods.

GET
/api/v1/stats

Overview stats. Filter with ?modId=xxx&days=30

Webhooks

Receive real-time notifications when events occur. Payloads are signed with HMAC-SHA256.

GET
/api/v1/webhooks

Get current webhook config and available events

PUT
/api/v1/webhooks

Set webhook URL and events

{ "url": "https://yoursite.com/webhook", "events": ["download", "license.created", "license.revoked"] }
DELETE
/api/v1/webhooks

Remove webhook