API autora katalógu
Autorský kľúč mca_live_ pre tvoje mody, modpacky, mapy a balíky: koncept, nahrávanie verzií, stránka, cena a štatistiky predaja. Endpointy API, oprávnenia kľúča, príklady požiadaviek, chyby a limity.
Aktualizované 13. októbra 2026
Všetko, čo autor robí so svojimi materiálmi na stránke, sa dá robiť aj z vlastného skriptu alebo build pipeline: vytvoriť koncept, nahrať novú verziu, upraviť stránku, zmeniť cenu a pozrieť si predaje. Na to potrebuješ autorský kľúč — reťazec ako mca_live_….
Kľúč funguje len s tvojimi materiálmi: s tými, kde si autorom. Cudziu prácu s ním nechytíš, ani keď poznáš jej adresu.
Kľúč
Kľúč sa vydáva v tvojom profile, v autorskej sekcii. Pomenuj kľúč a vyber scopes; kľúč sa zobrazí raz — ulož si ho do tajomstiev pipeline. Ak ho stratíš, zruš ho a vydaj nový. Aktívnych kľúčov môžeš mať až desať. Zmena hesla alebo e-mailu zruší všetky kľúče účtu — potom si vydaj nové.
| Scope | Čo povoľuje |
|---|---|
items:write | vytvoriť koncept, potvrdiť autorstvo, poslať materiál na kontrolu |
versions:write | získať upload URL a zaregistrovať verziu |
page:write | obrázky, koncept stránky a jeho odoslanie na kontrolu |
pricing:write | cena materiálu |
stats:read | stiahnutia, hráči a predaje |
Daj pipeline len to, čo potrebuje: build kľúč zvyčajne vystačí s versions:write a stats:read.
Všetky endpointy sú pod https://api.millida.net/v2; kľúč ide do hlavičky:
Authorization: Bearer mca_live_…
Moje materiály
GET /catalog/author-api/items
[
{
"slug": "my-pack",
"type": "MODPACK",
"title": "My modpack",
"status": "PUBLISHED",
"moderationStatus": "PUBLISHED",
"pricing": "ONE_TIME",
"priceKopecks": 49900,
"versionsCount": 12,
"downloads": 5310,
"publicUrl": "/modpacks/my-pack"
}
]
Nový materiál
POST /catalog/author-api/items
{ "type": "MOD", "title": "My mod", "summary": "Briefly about the mod" }
Materiál sa objaví ako koncept. Adresa (slug) sa berie z názvu; obsadená adresa vráti 409 s návrhom voľnej. Cenu pri vytvorení (pricing, priceKopecks) možno poslať len s kľúčom, ktorý má scope pricing:write; inak odpoveď je 403 MISSING_SCOPE.
Nová verzia
1. Upload URL:
POST /catalog/author-api/items/my-pack/upload-url
{ "version": "1.4.0", "fileName": "my-pack-1.4.0.zip", "size": 734003200 }
{ "uploadUrl": "https://…", "storageKey": "catalog/packs/my-pack/…", "expiresIn": 3600 }
2. Nahraj súbor cez PUT požiadavku na uploadUrl — priamo do úložiska, bez nás v strede:
curl -X PUT --upload-file my-pack-1.4.0.zip "$UPLOAD_URL"
3. Zaregistruj verziu:
POST /catalog/author-api/items/my-pack/versions
{
"version": "1.4.0",
"storageKey": "catalog/packs/my-pack/…",
"gameVersions": ["1.20.1"],
"loaders": ["fabric"],
"loaderVersion": "0.16.0",
"changelog": "New quests"
}
Verzia ide na automatickú kontrolu a hráčom sa zobrazí až po nej. Každý upload je nový súbor: už publikovanú verziu prepísať nemôžeš.
Odoslanie na kontrolu
Nový materiál sa dostane do katalógu až po moderátorovi. Keď má aspoň jednu verziu, potvrď, že dielo je tvoje a že si vybral licenciu. Je to samostatná požiadavka: odoslaním na kontrolu to za teba nespraví.
POST /catalog/author-api/items/my-pack/authorship
{ "ok": true }
Potom materiál odošli:
POST /catalog/author-api/items/my-pack/submit
{ "ok": true, "status": "PENDING" }
Bez potvrdenia je odpoveď 400 „Confirm that the modpack is yours and the license was chosen by you“; bez verzie 400 „Upload the modpack file first“.
Stránka
PUT /catalog/author-api/items/my-pack/page
{ "title": "My modpack", "summary": "…", "descriptionMd": "## What's inside\n…" }
Toto je koncept: hráči vidia predchádzajúcu stránku, kým nová neprejde kontrolou. Obrázky v popise sa musia nahrávať len k nám; odkazy musia viesť len na stránky Millida. Najprv nahraj ikonu (iconUrl), screenshoty (gallery) a obrázky v popise:
curl -H "Authorization: Bearer $MCA_KEY" -F "file=@icon.png" https://api.millida.net/v2/catalog/author-api/images
{ "url": "https://…/uploads/…/icon.png" }
Podporované sú PNG, JPG, WebP a AVIF do 15 MB; GIF nie. Upload vyžaduje scope page:write; odpoveď obsahuje adresu, ktorú môžeš vložiť do stránky. Odošli na kontrolu:
POST /catalog/author-api/items/my-pack/page/submit
Cena
PUT /catalog/author-api/items/my-pack/pricing
{ "pricing": "ONE_TIME", "priceKopecks": 49900 }
pricing | Čo znamená |
|---|---|
FREE | zadarmo |
ONE_TIME | jednorazový nákup, prístup navždy |
SUBSCRIPTION | predplatné, strháva sa raz za mesiac |
- Sumy sú v kopejkách. Minimálna cena plateného materiálu je 300 ₽ (
30000), pre skiny a plášte — 50 ₽ (5000); maximum je 100 000 ₽ (10000000). - Platforma si z každého predaja berie 30 %; zvyšok ide do tvojej peňaženky Millida.
- Peniaze z predaja môžeš minúť v Millide hneď, ale výber je dostupný 7 dní po nákupe.
- Súbory plateného materiálu môžu stiahnuť len tí, čo majú prístup. Ty ako autor máš prístup vždy.
Štatistiky
GET /catalog/author-api/items/my-pack/stats
{
"versions": [{ "version": "1.4.0", "downloads": 312, "reviewStatus": "APPROVED" }],
"players": { "players": 1204, "playersRecent": 380, "days": [{ "day": "2026-09-24", "players": 41 }] },
"sales": {
"totalKopecks": 998000,
"netKopecks": 698600,
"count": 20,
"refundedCount": 0,
"holdDays": 7,
"last30d": [{ "day": "2026-09-24", "count": 3, "netKopecks": 104790 }]
}
}
Predaje naprieč všetkými materiálmi naraz:
GET /catalog/author-api/sales
Chyby
Odpoveď s chybou vždy obsahuje message — môžeš ju ukázať človeku tak, ako je — a často aj code — ktorý sa hodí na vetvenie v skripte.
| Stav | code | Čo sa stalo |
|---|---|---|
| 401 | INVALID_KEY | kľúč chýba, je zle naformátovaný alebo sa nenašiel |
| 401 | REVOKED, EXPIRED | kľúč bol zrušený alebo vypršal |
| 401 | OWNER_UNAVAILABLE | účet majiteľa kľúča je zablokovaný |
| 403 | MISSING_SCOPE | kľúču chýba potrebný scope; zoznam je v scopes |
| 404 | — | materiál neexistuje alebo nie je tvoj |
| 400 | PRICE_TOO_LOW, PRICE_TOO_HIGH, INVALID_PRICING | cena je mimo pravidiel; hranice sú v minKopecks a maxKopecks |
| 409 | UNDER_REVIEW | materiál je na kontrole u moderátora — nové súbory až po jeho odpovedi |
| 429 | — | priveľa požiadaviek, skús neskôr |
Limity
- 120 požiadaviek za minútu na kľúč.
- Nové materiály — 10 za hodinu, upload URL a verzie — po 30 za hodinu, úpravy stránky — 120 za hodinu, obrázky — 60 za hodinu, zmeny ceny — 60 za hodinu.