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 | Що сталося |
|---|---|---|
| 401 | INVALID_KEY | ключ відсутній, має хибний формат або не знайдений |
| 401 | REVOKED, EXPIRED | ключ відкликано або термін його дії минув |
| 401 | OWNER_UNAVAILABLE | акаунт власника ключа заблоковано |
| 403 | MISSING_SCOPE | ключу бракує потрібної області доступу; перелік — у scopes |
| 404 | — | матеріалу не існує або він не ваш |
| 400 | PRICE_TOO_LOW, PRICE_TOO_HIGH, INVALID_PRICING | ціна поза правилами; межі — у minKopecks і maxKopecks |
| 409 | UNDER_REVIEW | матеріал на перевірці в модератора — нові файли після його відповіді |
| 429 | — | забагато запитів, повторіть пізніше |
Обмеження
- 120 запитів за хвилину на ключ.
- Нові матеріали — 10 за годину, URL для завантаження та версії — по 30 за годину, редагування сторінок — 120 за годину, зображення — 60 за годину, зміни ціни — 60 за годину.