合作伙伴收益 API
只读私有密钥 mek_live_:余额、可提现金额、在 Millida 各项服务中某段时间的收益,以及您整合包的订阅者。该密钥仅能从您服务器的 IP 使用。
更新于 2026年9月28日
如果您想在自己的网站或面板中查看收益,请接入收益 API。它返回的数据与 Millida 钱包中的数字一致:余额、可提现金额,以及所选周期内按服务划分的收益明细:整合包订阅、托管、打赏、市场和其他。
该 API 为只读。您无法通过它提现、修改收款信息或支付任何费用。密钥只能看到您自己的钱包,无法用它访问他人的数据。
密钥
密钥在合作伙伴面板中签发:个人资料 → 以您的工作室命名的分区 → 收益 API。签发时请指定发送请求的服务器 IP 地址。密钥无法从其他任何地址使用,即使被盗也一样。
- 最多可以指定十个地址或子网。IPv4 的子网不得宽于
/24, IPv6 不得宽于/48。 - 家庭地址和本地地址(
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.truncated | true——周期内交易过多,金额不完整:请缩小周期范围 |
subscriptions | 当前订阅您整合包的人数,简要信息;详情见“订阅者”部分 |
source 的取值:
source | 服务 |
|---|---|
catalog | 整合包目录:订阅和购买 |
hosting | 托管 |
trade | Trade 打赏 |
market | 市场 |
skins | Millida 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 | 周期内因退款而关闭访问的订阅 |
truncated | true——数据过多,数字不完整:请缩小周期范围 |
bundle 统计的是人数,而 packs 统计的是单个整合包的订阅数。
如果订阅被取消,它会在取消当天出现在 canceled 中,并在
已付期限结束时出现在 expired 中。
错误
| 代码 | code | 如何处理 |
|---|---|---|
| 401 | INVALID_KEY | 密钥缺失、有拼写错误,或是其他类型的密钥 |
| 401 | REVOKED | 密钥已被吊销——请签发新密钥 |
| 401 | OWNER_UNAVAILABLE | 密钥所有者的账户已被封禁或删除 |
| 403 | IP_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"