カタログ作者向けAPI
MOD、Modパック、マップ、パック用のmca_live_作者キーについて説明します。下書き、バージョンのアップロード、ページ、価格、販売統計を扱います。APIエンドポイント、キーの権限、リクエスト例、エラー、制限について解説します。
更新日 2026年10月13日
サイト上で作者が素材に対して行える操作は、すべて自分のスクリプトやビルドパイプラインから実行できます。下書きの作成、新しいバージョンのアップロード、ページの編集、価格の変更、売上の確認が可能です。そのためには作者キーが必要です。mca_live_… のような文字列です。
キーは自分の素材、つまり自分が作者である素材に対してのみ機能します。アドレスを知っていても、他人の作品に触れることはできません。
キー
キーはプロフィールの作者セクションで発行します。キーに名前を付け、スコープを選択してください。キーは一度だけ表示されるので、パイプラインのシークレットに保存してください。紛失した場合は、失効させて新しいキーを発行します。有効なキーは最大10個まで保持できます。パスワードやメールアドレスを変更すると、アカウントのすべてのキーが失効します。その後、新しいキーを発行してください。
| スコープ | 付与される権限 |
|---|---|
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. ファイルをアップロードします。uploadUrl に PUT リクエストを送信し、当方を介さずストレージへ直接送ります。
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"
}
バージョンは自動審査に送られ、通過後にプレイヤーへ公開されます。各アップロードは新しいファイルです。公開済みのバージョンを上書きすることはできません。
審査への提出
新しい素材は、モデレーターの確認後にカタログへ掲載されます。バージョンが1つ以上ある状態で、作品が自分のものであること、およびライセンスを自分が選択したことを確認してください。これは別のリクエストです。審査への提出だけではこの確認は行われません。
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 MBまでです。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 | サブスクリプション、毎月1回課金 |
- 金額はコペイカ単位です。有料素材の最低価格は 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 | — | リクエストが多すぎます。後で再試行してください |
制限
- キーごとに1分あたり120リクエスト。
- 新しい素材は1時間あたり10件、アップロードURLとバージョンはそれぞれ1時間あたり30件、ページ編集は1時間あたり120件、画像は1時間あたり60件、価格変更は1時間あたり60件。