Skip to content
Za developere · Modpakovi u launcheru

API za autore kataloga

Autorski ključ mca_live_ za tvoje modove, modpakove, mape i pakove: nacrt, otpremanje verzija, stranica, cena i statistika prodaje. API rute, dozvole ključa, primeri zahteva, greške i limiti.

Ažurirano 13. oktobar 2026.

Sve što autor radi sa svojim materijalima na sajtu možeš da radiš i iz sopstvene skripte ili build pipeline-a: napraviš nacrt, otpremiš novu verziju, izmeniš stranicu, promeniš cenu i pregledaš prodaju. Za to ti je potreban autorski ključ — niz znakova poput mca_live_….

Ključ radi samo sa tvojim materijalima: onima gde si ti autor. Ne možeš da diraš tuđi rad, čak i ako znaš njegovu adresu.

Ključ

Ključ se izdaje u tvom profilu, u autorskom delu. Daj ključu ime i izaberi opsege; ključ se prikazuje jednom — sačuvaj ga u tajnama svog pipeline-a. Ako ga izgubiš, opozovi ga i izdaj novi. Možeš da imaš do deset aktivnih ključeva. Promena lozinke ili imejla opoziva sve ključeve naloga — posle toga izdaj nove.

OpsegŠta omogućava
items:writepravljenje nacrta, potvrda autorstva, slanje materijala na pregled
versions:writedobijanje URL-a za otpremanje i registraciju verzije
page:writeslike, nacrt stranice i njegovo slanje na pregled
pricing:writecena materijala
stats:readpreuzimanja, igrači i prodaja

Daj pipeline-u samo ono što mu treba: build ključ obično živi sa versions:write i stats:read.

Svi endpointi su pod https://api.millida.net/v2; ključ ide u zaglavlje:

Authorization: Bearer mca_live_…

Moji materijali

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"
  }
]

Novi materijal

POST /catalog/author-api/items
{ "type": "MOD", "title": "My mod", "summary": "Briefly about the mod" }

Materijal se pojavljuje kao nacrt. Adresa (slug) se preuzima iz imena; zauzeta adresa vraća 409 sa predlogom slobodne. Cena pri pravljenju (pricing, priceKopecks) može da se prosledi samo sa ključem koji ima opseg pricing:write; u suprotnom je odgovor 403 MISSING_SCOPE.

Nova verzija

1. URL za otpremanje:

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. Otpremi fajl PUT zahtevom na uploadUrl — direktno u skladište, bez nas u sredini:

curl -X PUT --upload-file my-pack-1.4.0.zip "$UPLOAD_URL"

3. Registruj verziju:

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"
}

Verzija ide na automatski pregled i pojavljuje se igračima posle njega. Svako otpremanje je novi fajl: ne možeš da prepišeš već objavljenu verziju.

Slanje na pregled

Novi materijal ulazi u katalog posle moderatora. Kada ima bar jednu verziju, potvrdi da je rad tvoj i da si ti izabrao licencu. To je poseban zahtev: slanje na pregled to ne radi umesto tebe.

POST /catalog/author-api/items/my-pack/authorship
{ "ok": true }

Zatim pošalji materijal:

POST /catalog/author-api/items/my-pack/submit
{ "ok": true, "status": "PENDING" }

Bez potvrde odgovor je 400 „Confirm that the modpack is yours and the license was chosen by you”; bez verzije 400 „Upload the modpack file first”.

Stranica

PUT /catalog/author-api/items/my-pack/page
{ "title": "My modpack", "summary": "…", "descriptionMd": "## What's inside\n…" }

Ovo je nacrt: igrači vide prethodnu stranicu dok nova ne prođe pregled. Slike u opisu moraju da se otpreme samo kod nas; linkovi moraju da vode isključivo na Millida stranice. Prvo otpremi ikonicu (iconUrl), snimke ekrana (gallery) i slike iz opisa:

curl -H "Authorization: Bearer $MCA_KEY" -F "file=@icon.png" https://api.millida.net/v2/catalog/author-api/images
{ "url": "https://…/uploads/…/icon.png" }

Podržani su PNG, JPG, WebP i AVIF do 15 MB; GIF nije. Za otpremanje je potreban opseg page:write; odgovor sadrži adresu koju možeš da staviš u stranicu. Pošalji na pregled:

POST /catalog/author-api/items/my-pack/page/submit

Cena

PUT /catalog/author-api/items/my-pack/pricing
{ "pricing": "ONE_TIME", "priceKopecks": 49900 }
pricingŠta znači
FREEbesplatno
ONE_TIMEjednokratna kupovina, pristup zauvek
SUBSCRIPTIONpretplata, naplaćuje se jednom mesečno
  • Iznosi su u kopekama. Minimalna cena za plaćeni materijal je 300 ₽ (30000), za skinove i plaštove — 50 ₽ (5000); maksimalna je 100.000 ₽ (10000000).
  • Platforma uzima 30% od svake prodaje; ostatak ide u tvoj Millida novčanik.
  • Novac od prodaje možeš odmah da potrošiš unutar Millida, ali isplata je dostupna 7 dana posle kupovine.
  • Fajlove plaćenog materijala mogu da preuzmu samo oni koji imaju pristup. Kao autor, ti uvek imaš pristup.

Statistika

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 }]
  }
}

Prodaja po svim materijalima odjednom:

GET /catalog/author-api/sales

Greške

Odgovor sa greškom uvek sadrži message — možeš da ga pokažeš čoveku takvog kakav jeste — i često code — koji je zgodan za grananje u skripti.

StatuscodeŠta se dogodilo
401INVALID_KEYključ nedostaje, loše je formatiran ili nije pronađen
401REVOKED, EXPIREDključ je opozvan ili je istekao
401OWNER_UNAVAILABLEnalog vlasnika ključa je blokiran
403MISSING_SCOPEključu nedostaje potreban opseg; lista je u scopes
404—materijal ne postoji ili nije tvoj
400PRICE_TOO_LOW, PRICE_TOO_HIGH, INVALID_PRICINGcena je van pravila; granice su u minKopecks i maxKopecks
409UNDER_REVIEWmaterijal je na pregledu kod moderatora — novi fajlovi posle njegovog odgovora
429—previše zahteva, pokušaj ponovo kasnije

Ograničenja

  • 120 zahteva u minuti po ključu.
  • Novi materijali — 10 na sat, URL-ovi za otpremanje i verzije — po 30 na sat, izmene stranice — 120 na sat, slike — 60 na sat, promene cene — 60 na sat.