Skip to content
Za developere · Modpakovi u launcheru

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 /24 za IPv4 i /48 za 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 ₽.

PoljeZnačenje
balance.balanceKopeckssve u novčaniku, uključujući zamrznuta sredstva
balance.availableKopecksmože da se potroši unutar Millida
balance.withdrawableKopecksmože da se isplati odmah — isti iznos kao na dugmetu „Isplati“
balance.heldKopeckszamrznuto dok se period zadržavanja ne završi
period.earnedKopeckszarađeno tokom perioda preko svih usluga
period.earnedBySourcezarada tokom perioda po usluzi, od najveće ka najmanjoj
period.paidOutKopecksisplaćeno tokom perioda
period.truncatedtrue — u periodu ima previše transakcija i iznosi su nepotpuni: suzi period
subscriptionspretplatnici na tvoje modpakove trenutno, ukratko; detalji u odeljku „Pretplatnici“

Vrednosti source:

sourceUsluga
catalogkatalog modpakova: pretplate i kupovine
hostinghosting
tradeTrade donacije
marketmarket
skinsMillida Skins
ratingrating
adminMillida 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.

PoljeZnačenje
total.subscriberskoliko različitih ljudi je trenutno pretplaćeno na bar jedan tvoj modpak
total.bundleSubscribersod toga, sa pretplatom „Svi modpakovi“
total.packSubscribersod toga, sa pretplatom na pojedinačan modpak
partners[]jedan red po studiju koji imaš; ako nisi partner, lista je prazna
active.packSubscriptionsukupno pretplata na pojedinačne modpakove: jedna osoba može da ima više njih
renewal.autoRenewingpretplate koje će se automatski obnoviti: automatsko plaćanje je uključeno
renewal.canceledStillActiveautomatsko plaćanje je isključeno, ali plaćeni rok još traje; pristup se završava nakon njega
packs[].activeSubscriberskoliko ljudi može da igra ovaj modpak preko pretplate
packs[].viaPack / packs[].viaBundleod toga, preko pretplate na ovaj modpak i preko pretplate „Svi modpakovi“
period.newSubscriptionspretplate čija je prva naplata izvršena tokom perioda
period.canceledpretplate za koje je automatsko plaćanje isključeno tokom perioda
period.expiredpristup se završio tokom perioda i nije obnovljen
period.refundedpristup je zatvoren tokom perioda zbog povraćaja novca
truncatedtrue — 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

KodcodeŠta da radiš
401INVALID_KEYključ nedostaje, ima grešku u kucanju ili je ključ druge vrste
401REVOKEDključ je opozvan — izdaj novi
401OWNER_UNAVAILABLEnalog vlasnika ključa je blokiran ili obrisan
403IP_NOT_ALLOWEDzahtev 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"