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

API автора каталогу

Ключ автора mca_live_ для ваших модів, збірок модів, карт і ресурспаків: чернетка, завантаження версій, сторінка, ціна та статистика продажів. Ендпоінти API, дозволи ключа, приклади запитів, помилки та ліміти.

Оновлено 13 жовтня 2026 р.

Усе, що автор робить зі своїми матеріалами на сайті, можна робити зі свого скрипта або конвеєра збірки: створити чернетку, завантажити нову версію, відредагувати сторінку, змінити ціну та переглянути продажі. Для цього потрібен ключ автора — рядок вигляду mca_live_….

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

Ключ

Ключ видається у вашому профілі, в розділі автора. Назвіть ключ і виберіть області доступу; ключ показується один раз — збережіть його в секретах конвеєра. Якщо загубите, відкличте його та видайте новий. У вас може бути до десяти активних ключів. Зміна пароля чи email відкликає всі ключі акаунта — після цього видайте нові.

Область доступуЩо вона дає
items:writeстворити чернетку, підтвердити авторство, надіслати матеріал на перевірку
versions:writeотримати URL для завантаження та зареєструвати версію
page:writeзображення, чернетка сторінки та надсилання її на перевірку
pricing:writeціна матеріалу
stats:readзавантаження, гравці та продажі

Давайте конвеєру лише те, що йому потрібно: ключ для збірки зазвичай живе з versions:write і stats:read.

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

Authorization: Bearer mca_live_…

Мої матеріали

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

Новий матеріал

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

Матеріал з'являється як чернетка. Адреса (slug) береться з назви; зайнята адреса повертає 409 з підказкою вільної. Ціну під час створення (pricing, priceKopecks) можна передати лише з ключем, що має область доступу pricing:write; інакше відповідь — 403 MISSING_SCOPE.

Нова версія

1. 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. Завантажте файл PUT-запитом на uploadUrl — напряму у сховище, без нас посередині:

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

3. Зареєструйте версію:

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

Версія потрапляє на автоматичну перевірку й з'являється в гравців після неї. Кожне завантаження — це новий файл: перезаписати вже опубліковану версію не можна.

Надсилання на перевірку

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

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

Потім надішліть матеріал:

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

Без підтвердження відповідь — 400 «Confirm that the modpack is yours and the license was chosen by you»; без версії — 400 «Upload the modpack file first».

Сторінка

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

Це чернетка: гравці бачать попередню сторінку, доки нова не пройде перевірку. Зображення в описі потрібно завантажувати лише до нас; посилання мають вести тільки на сторінки Millida. Спершу завантажте іконку (iconUrl), скриншоти (gallery) та зображення опису:

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

Підтримуються PNG, JPG, WebP і AVIF до 15 МБ; GIF — ні. Для завантаження потрібна область доступу page:write; відповідь містить адресу, яку можна вставити на сторінку. Надішліть на перевірку:

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

Ціна

PUT /catalog/author-api/items/my-pack/pricing
{ "pricing": "ONE_TIME", "priceKopecks": 49900 }
pricingЩо це означає
FREEбезкоштовно
ONE_TIMEодноразова покупка, доступ назавжди
SUBSCRIPTIONпідписка, списання раз на місяць
  • Суми в копійках. Мінімальна ціна платного матеріалу — 300 ₽ (30000), для скінів і плащів — 50 ₽ (5000); максимальна — 100 000 ₽ (10000000).
  • Платформа бере 30% з кожного продажу; решта надходить на ваш гаманець Millida.
  • Гроші з продажу можна одразу витратити всередині Millida, але виведення доступне через 7 днів після покупки.
  • Завантажувати файли платного матеріалу можуть лише ті, хто має доступ. Як автор ви маєте доступ завжди.

Статистика

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

Продажі одразу за всіма матеріалами:

GET /catalog/author-api/sales

Помилки

Відповідь з помилкою завжди містить message — його можна показувати людині як є — і часто code — що зручно для розгалужень у скрипті.

СтатусcodeЩо сталося
401INVALID_KEYключ відсутній, має хибний формат або не знайдений
401REVOKED, EXPIREDключ відкликано або термін його дії минув
401OWNER_UNAVAILABLEакаунт власника ключа заблоковано
403MISSING_SCOPEключу бракує потрібної області доступу; перелік — у scopes
404—матеріалу не існує або він не ваш
400PRICE_TOO_LOW, PRICE_TOO_HIGH, INVALID_PRICINGціна поза правилами; межі — у minKopecks і maxKopecks
409UNDER_REVIEWматеріал на перевірці в модератора — нові файли після його відповіді
429—забагато запитів, повторіть пізніше

Обмеження

  • 120 запитів за хвилину на ключ.
  • Нові матеріали — 10 за годину, URL для завантаження та версії — по 30 за годину, редагування сторінок — 120 за годину, зображення — 60 за годину, зміни ціни — 60 за годину.