Skip to content
Для розробників · Збірки модів у лаунчері

API партнерського заробітку

Приватний ключ mek_live_ лише для читання: баланс, доступне для виведення, заробіток за період у всіх сервісах Millida та підписники ваших збірок модів. Ключ працює лише з IP вашого сервера.

Оновлено 28 вересня 2026 р.

Якщо ви хочете бачити свій заробіток на власному сайті або в панелі, підключіть API заробітку. Він повертає ті самі цифри, що й гаманець на Millida: баланс, суму, доступну для виведення, та заробіток за вибраний період із розбивкою за сервісами: підписки на збірки модів, хостинг, донати, маркет та інші.

API працює лише на читання. Через нього не можна вивести гроші, змінити платіжні дані чи щось оплатити. Ключ бачить лише ваш гаманець; отримати доступ до чужих даних із ним неможливо.

Ключ

Ключ видається в партнерській панелі: Профіль → розділ із назвою вашої студії → API заробітку. Під час видачі вкажіть IP-адресу сервера, з якого надходитимуть запити. З будь-якої іншої адреси ключ не працює, навіть якщо його викрали.

  • Можна вказати до десяти адрес або підмереж. Підмережа має бути не ширшою за /24 для IPv4 та /48 для IPv6.
  • Домашні й локальні адреси (127.0.0.1, 10.x, 192.168.x) не приймаються: потрібна публічна адреса сервера.
  • Ключ показується один раз. Зберігайте його на сервері, у змінних середовища або в сховищі секретів і ніколи не показуйте його в браузері.
  • У вас може бути до п'яти активних ключів. Якщо ви втратили ключ або змінили сервер, відкличте старий ключ і видайте новий. Відкликаний ключ перестає працювати негайно.

Усі ендпоінти відносні до https://api.millida.net/v2. Ключ передається в заголовку:

Authorization: Bearer mek_live_…

Зведення

GET /earnings-api/v1/summary?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z

from і to — межі періоду у форматі ISO 8601. Обидва параметри необов'язкові: без них період охоплює весь час.

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

Усі суми в копійках: 1254000 означає 12 540 ₽.

ПолеЗначення
balance.balanceKopecksусе в гаманці, включно із замороженими коштами
balance.availableKopecksможна витратити в межах Millida
balance.withdrawableKopecksможна вивести прямо зараз — та сама сума, що й на кнопці «Вивести»
balance.heldKopecksзаморожено до завершення періоду утримання
period.earnedKopecksзароблено за період за всіма сервісами
period.earnedBySourceзаробіток за період за сервісами, від найбільшого до найменшого
period.paidOutKopecksвиведено за період
period.truncatedtrue — за період занадто багато транзакцій і суми неповні: звузьте період
subscriptionsпідписники ваших збірк модів прямо зараз, стисло; деталі в розділі «Підписники»

Значення source:

sourceСервіс
catalogкаталог збірк модів: підписки та покупки
hostingхостинг
tradeдонати Trade
marketмаркет
skinsMillida Skins
ratingрейтинг
adminнарахування Millida

З часом можуть додаватися нові значення. Якщо ви не впізнаєте значення, показуйте його як є й не вважайте це помилкою.

Підписники

GET /earnings-api/v1/subscriptions?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z

Скільки людей зараз грають у ваші збірки модів за підпискою Millida і що сталося з підписками за період. Підписники рахуються за активним доступом, а не за платежами: людина враховується, поки може запускати збірку модів, зокрема три дні після дати платежу, надані для повторного списання. Доступ через ключі вашого сайту, командний доступ і разові покупки не рахуються як підписки.

API повертає лише числа. Дізнатися через нього, хто саме підписаний, неможливо.

from і to визначають період так само, як у зведенні. Вони впливають лише на блок period; блоки total, active, renewal і packs завжди показують стан на момент запиту.

{
  "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 перелічує всі ваші збірки модів, зокрема ті, що не мають підписників.

ПолеЗначення
total.subscribersскільки різних людей зараз підписані хоча б на одну з ваших збірк модів
total.bundleSubscribersз них із підпискою «Усі збірки модів»
total.packSubscribersз них із підпискою на окрему збірку модів
partners[]один рядок на кожну вашу студію; якщо ви не партнер, список порожній
active.packSubscriptionsусього підписок на окремі збірки модів: в однієї людини їх може бути кілька
renewal.autoRenewingпідписки, що поновляться автоматично: автоплатіж увімкнено
renewal.canceledStillActiveавтоплатіж вимкнено, але оплачений термін ще активний; доступ завершиться після нього
packs[].activeSubscribersскільки людей можуть грати в цю збірку модів за підпискою
packs[].viaPack / packs[].viaBundleз них за підпискою на цю збірку модів і за підпискою «Усі збірки модів»
period.newSubscriptionsпідписки, перше списання за якими відбулося протягом періоду
period.canceledпідписки, для яких протягом періоду вимкнули автоплатіж
period.expiredдоступ завершився протягом періоду й не був поновлений
period.refundedдоступ закрили протягом періоду через повернення коштів
truncatedtrue — даних занадто багато і цифри неповні: звузьте період

bundle рахує людей, а packs — підписки на окремі збірки модів. Якщо підписку скасували, вона з'являється в canceled у день скасування, а в expired — коли оплачений термін завершується.

Помилки

КодcodeЩо робити
401INVALID_KEYключ відсутній, має друкарську помилку або є ключем іншого типу
401REVOKEDключ відкликано — видайте новий
401OWNER_UNAVAILABLEакаунт власника ключа заблоковано або видалено
403IP_NOT_ALLOWEDзапит надійшов не з адреси в ключі; у тексті помилки показано адресу, яку ми побачили
429—перевищено ліміт частоти запитів, повторіть запит за хвилину

Ліміти

Один ключ може надсилати до 30 запитів за хвилину. Цифри змінюються разом із платежами, тож опитувати API частіше ніж раз на хвилину немає сенсу. Краще кешувати відповідь на своєму сервері.

Приклад

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"