API za partnersku zaradu
Privatni mek_live_ ključ samo za čitanje: stanje, raspoloživo za isplatu, zarada za period preko svih Millida servisa i pretplatnici na tvoje modpakove. Ključ radi samo sa IP adrese tvog servera.
Ažurirano 28. septembar 2026.
Ako želiš da vidiš svoju zaradu na svom sajtu ili u panelu, poveži API za zaradu. Vraća iste brojke kao i tvoj novčanik na Millida: stanje, iznos dostupan za isplatu i zaradu za izabrani period razloženu po usluzi: pretplate na modpakove, hosting, donacije, market i ostalo.
API je samo za čitanje. Ne možeš da podižeš novac, menjaš podatke za isplatu niti bilo šta plaćaš preko njega. Ključ vidi samo tvoj novčanik; njime ne možeš da pristupiš tuđim podacima.
Ključ
Ključ se izdaje u partnerskom panelu: Profil → odeljak nazvan po tvom studiju → API za zaradu. Prilikom izdavanja navedi IP adresu servera sa kog će zahtevi biti slati. Ključ ne radi ni sa jedne druge adrese, čak i ako je ukraden.
- Možeš da navedeš do deset adresa ili podmreža. Podmreža ne sme biti šira od
/24za IPv4 i/48za IPv6. - Kućne i lokalne adrese (
127.0.0.1,10.x,192.168.x) se ne prihvataju: potrebna ti je javna adresa servera. - Ključ se prikazuje samo jednom. Čuvaj ga na serveru, u promenljivama okruženja ili u sefu za tajne, i nikada ga ne izlaži pregledaču.
- Možeš da imaš do pet aktivnih ključeva. Ako izgubiš ključ ili promeniš server, opozovi stari ključ i izdaj novi. Opozvan ključ odmah prestaje da radi.
Svi endpointi su relativni u odnosu na https://api.millida.net/v2. Ključ se prosleđuje u zaglavlju:
Authorization: Bearer mek_live_…
Pregled
GET /earnings-api/v1/summary?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z
from i to su granice perioda u ISO 8601 formatu. Oba parametra
su opciona: bez njih period obuhvata celo vreme.
{
"currency": "RUB",
"balance": {
"balanceKopecks": 1254000,
"availableKopecks": 1204000,
"withdrawableKopecks": 980000,
"heldKopecks": 50000,
"pendingPayoutKopecks": 0,
"tradeHoldKopecks": 0,
"tradeHoldReadyAt": null,
"marketHoldKopecks": 0,
"marketWithdrawalReadyAt": null
},
"period": {
"from": "2026-09-01T00:00:00.000Z",
"to": "2026-09-30T23:59:59.999Z",
"earnedKopecks": 3108000,
"heldKopecks": 0,
"spentKopecks": 0,
"toppedUpKopecks": 0,
"paidOutKopecks": 2000000,
"refundKopecks": 0,
"netKopecks": 1108000,
"operations": 142,
"earnedBySource": [
{ "source": "catalog", "amountKopecks": 2950000, "operations": 131 },
{ "source": "hosting", "amountKopecks": 158000, "operations": 11 }
],
"truncated": false
},
"subscriptions": {
"subscribers": 14,
"bundleSubscribers": 2,
"packSubscribers": 12
}
}
Svi iznosi su u kopekama: 1254000 znači 12 540 ₽.
| Polje | Značenje |
|---|---|
balance.balanceKopecks | sve u novčaniku, uključujući zamrznuta sredstva |
balance.availableKopecks | može da se potroši unutar Millida |
balance.withdrawableKopecks | može da se isplati odmah — isti iznos kao na dugmetu „Isplati“ |
balance.heldKopecks | zamrznuto dok se period zadržavanja ne završi |
period.earnedKopecks | zarađeno tokom perioda preko svih usluga |
period.earnedBySource | zarada tokom perioda po usluzi, od najveće ka najmanjoj |
period.paidOutKopecks | isplaćeno tokom perioda |
period.truncated | true — u periodu ima previše transakcija i iznosi su nepotpuni: suzi period |
subscriptions | pretplatnici na tvoje modpakove trenutno, ukratko; detalji u odeljku „Pretplatnici“ |
Vrednosti source:
source | Usluga |
|---|---|
catalog | katalog modpakova: pretplate i kupovine |
hosting | hosting |
trade | Trade donacije |
market | market |
skins | Millida Skins |
rating | rating |
admin | Millida obračuni |
Vremenom mogu da se dodaju nove vrednosti. Ako ne prepoznaš vrednost, prikaži je takvu kakva jeste i ne tretiraj je kao grešku.
Pretplatnici
GET /earnings-api/v1/subscriptions?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z
Koliko ljudi trenutno igra tvoje modpakove preko Millida pretplate i šta se dešavalo sa pretplatama tokom perioda. Pretplatnici se broje po aktivnom pristupu, ne po uplatama: osoba se računa sve dok može da pokrene modpak, uključujući i tri dana nakon datuma uplate datog za ponovni pokušaj naplate. Pristup preko ključeva sa tvog sajta, timski pristup i jednokratne kupovine se ne računaju kao pretplate.
API vraća samo brojke. Preko njega ne možeš da saznaš ko je tačno pretplaćen.
from i to određuju period na isti način kao u pregledu. Utiču samo na blok period; blokovi total, active, renewal i packs uvek prikazuju stanje u trenutku zahteva.
{
"from": "2026-09-01T00:00:00.000Z",
"to": "2026-09-30T23:59:59.999Z",
"generatedAt": "2026-09-28T16:30:00.000Z",
"total": {
"subscribers": 14,
"bundleSubscribers": 2,
"packSubscribers": 12
},
"partners": [
{
"partner": { "slug": "arcania-labs", "name": "Arcania Labs" },
"active": {
"subscribers": 14,
"bundleSubscribers": 2,
"packSubscribers": 12,
"packSubscriptions": 12
},
"renewal": {
"autoRenewing": { "bundle": 2, "packs": 12 },
"canceledStillActive": { "bundle": 0, "packs": 0 }
},
"packs": [
{ "slug": "arcania", "title": "Arcania 1.4.3", "published": true, "activeSubscribers": 14, "viaPack": 12, "viaBundle": 2 },
{ "slug": "dread", "title": "DREAD - A Horror Survival Pack", "published": true, "activeSubscribers": 2, "viaPack": 0, "viaBundle": 2 }
],
"period": {
"newSubscriptions": { "bundle": 2, "packs": 12 },
"canceled": { "bundle": 0, "packs": 0 },
"expired": { "bundle": 0, "packs": 0 },
"refunded": { "bundle": 0, "packs": 0 }
},
"truncated": false
}
]
}
packs prikazuje sve tvoje modpakove, uključujući i one bez pretplatnika.
| Polje | Značenje |
|---|---|
total.subscribers | koliko različitih ljudi je trenutno pretplaćeno na bar jedan tvoj modpak |
total.bundleSubscribers | od toga, sa pretplatom „Svi modpakovi“ |
total.packSubscribers | od toga, sa pretplatom na pojedinačan modpak |
partners[] | jedan red po studiju koji imaš; ako nisi partner, lista je prazna |
active.packSubscriptions | ukupno pretplata na pojedinačne modpakove: jedna osoba može da ima više njih |
renewal.autoRenewing | pretplate koje će se automatski obnoviti: automatsko plaćanje je uključeno |
renewal.canceledStillActive | automatsko plaćanje je isključeno, ali plaćeni rok još traje; pristup se završava nakon njega |
packs[].activeSubscribers | koliko ljudi može da igra ovaj modpak preko pretplate |
packs[].viaPack / packs[].viaBundle | od toga, preko pretplate na ovaj modpak i preko pretplate „Svi modpakovi“ |
period.newSubscriptions | pretplate čija je prva naplata izvršena tokom perioda |
period.canceled | pretplate za koje je automatsko plaćanje isključeno tokom perioda |
period.expired | pristup se završio tokom perioda i nije obnovljen |
period.refunded | pristup je zatvoren tokom perioda zbog povraćaja novca |
truncated | true — ima previše podataka i brojke su nepotpune: suzi period |
bundle broji ljude, dok packs broji pretplate na pojedinačne modpakove.
Ako je pretplata otkazana, pojavljuje se u canceled na dan otkazivanja, a u
expired kada se plaćeni rok završi.
Greške
| Kod | code | Šta da radiš |
|---|---|---|
| 401 | INVALID_KEY | ključ nedostaje, ima grešku u kucanju ili je ključ druge vrste |
| 401 | REVOKED | ključ je opozvan — izdaj novi |
| 401 | OWNER_UNAVAILABLE | nalog vlasnika ključa je blokiran ili obrisan |
| 403 | IP_NOT_ALLOWED | zahtev nije došao sa adrese u ključu; tekst greške prikazuje adresu koju smo videli |
| 429 | — | prekoračen limit broja zahteva, pokušaj ponovo za minut |
Limiti
Jedan ključ može da pošalje do 30 zahteva u minuti. Brojke se menjaju zajedno sa uplatama, pa nema smisla anketirati API češće od jednom u minuti. Bolje je da keširaš odgovor na svom serveru.
Primer
curl -s https://api.millida.net/v2/earnings-api/v1/summary \
-H "Authorization: Bearer $MILLIDA_EARNINGS_KEY"
curl -s https://api.millida.net/v2/earnings-api/v1/subscriptions \
-H "Authorization: Bearer $MILLIDA_EARNINGS_KEY"