API thu nhập đối tác
Khóa mek_live_ riêng tư chỉ đọc: số dư, số tiền có thể rút, thu nhập trong một khoảng thời gian trên tất cả dịch vụ Millida, và người đăng ký gói mod của bạn. Khóa chỉ hoạt động từ IP máy chủ của bạn.
Cập nhật 28 tháng 9, 2026
Nếu bạn muốn xem thu nhập của mình trên trang web riêng hoặc trong bảng điều khiển, hãy kết nối API thu nhập. API trả về đúng các con số như trong ví của bạn trên Millida: số dư, số tiền có thể rút và thu nhập trong khoảng thời gian đã chọn, được chia theo dịch vụ: đăng ký gói mod, hosting, quyên góp, chợ và các dịch vụ khác.
API chỉ cho phép đọc. Bạn không thể rút tiền, thay đổi thông tin nhận tiền hay thanh toán bất cứ thứ gì qua API. Khóa chỉ nhìn thấy ví của bạn; bạn không thể truy cập dữ liệu của người khác bằng khóa này.
Khóa
Khóa được cấp trong bảng điều khiển đối tác: Hồ sơ → mục mang tên studio của bạn → API thu nhập. Khi cấp khóa, hãy chỉ định địa chỉ IP của máy chủ sẽ gửi yêu cầu. Khóa không hoạt động từ bất kỳ địa chỉ nào khác, kể cả khi bị đánh cắp.
- Bạn có thể chỉ định tối đa mười địa chỉ hoặc subnet. Subnet không được rộng hơn
/24đối với IPv4 và/48đối với IPv6. - Địa chỉ nội bộ và địa chỉ cục bộ (
127.0.0.1,10.x,192.168.x) không được chấp nhận: bạn cần địa chỉ công khai của máy chủ. - Khóa chỉ được hiển thị một lần. Hãy lưu nó trên máy chủ, trong biến môi trường hoặc trong kho lưu bí mật, và không bao giờ để lộ nó ra trình duyệt.
- Bạn có thể có tối đa năm khóa đang hoạt động. Nếu mất khóa hoặc đổi máy chủ, hãy thu hồi khóa cũ và cấp khóa mới. Khóa đã thu hồi sẽ ngừng hoạt động ngay lập tức.
Tất cả các endpoint đều có tiền tố https://api.millida.net/v2. Khóa được truyền trong header:
Authorization: Bearer mek_live_…
Tổng quan
GET /earnings-api/v1/summary?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z
from và to là ranh giới của khoảng thời gian theo định dạng ISO 8601. Cả hai tham số
đều không bắt buộc: nếu không có chúng, khoảng thời gian sẽ bao gồm toàn bộ thời gian.
{
"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
}
}
Tất cả số tiền đều tính bằng kopek: 1254000 nghĩa là 12 540 ₽.
| Trường | Ý nghĩa |
|---|---|
balance.balanceKopecks | toàn bộ số tiền trong ví, kể cả tiền bị đóng băng |
balance.availableKopecks | có thể chi tiêu trong Millida |
balance.withdrawableKopecks | có thể rút ngay bây giờ — đúng số tiền như trên nút “Rút tiền” |
balance.heldKopecks | bị đóng băng cho đến khi hết thời gian giữ |
period.earnedKopecks | thu nhập trong khoảng thời gian từ tất cả các dịch vụ |
period.earnedBySource | thu nhập trong khoảng thời gian theo dịch vụ, từ lớn đến nhỏ |
period.paidOutKopecks | số tiền đã rút trong khoảng thời gian |
period.truncated | true — có quá nhiều giao dịch trong khoảng thời gian và số tiền không đầy đủ: hãy thu hẹp khoảng thời gian |
subscriptions | số người đăng ký gói mod của bạn ngay bây giờ, tóm tắt; chi tiết trong mục “Người đăng ký” |
Các giá trị của source:
source | Dịch vụ |
|---|---|
catalog | danh mục gói mod: đăng ký và mua |
hosting | hosting |
trade | quyên góp Trade |
market | chợ |
skins | Millida Skins |
rating | đánh giá |
admin | các khoản cộng của Millida |
Các giá trị mới có thể được thêm vào theo thời gian. Nếu bạn không nhận ra một giá trị nào đó, hãy hiển thị nguyên văn và đừng coi đó là lỗi.
Người đăng ký
GET /earnings-api/v1/subscriptions?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z
Có bao nhiêu người hiện đang chơi gói mod của bạn theo đăng ký Millida và điều gì đã xảy ra với các đăng ký trong khoảng thời gian. Người đăng ký được tính theo quyền truy cập đang hoạt động, không phải theo thanh toán: một người được tính chừng nào họ còn có thể khởi chạy gói mod, kể cả ba ngày sau ngày thanh toán được dành cho lần thu lại. Quyền truy cập qua khóa trên trang web của bạn, quyền truy cập nhóm và mua một lần không được tính là đăng ký.
API chỉ trả về các con số. Bạn không thể biết chính xác ai đã đăng ký qua API.
from và to xác định khoảng thời gian giống như trong phần tổng quan. Chúng chỉ ảnh hưởng đến khối period; các khối total, active, renewal và packs luôn hiển thị trạng thái tại thời điểm yêu cầu.
{
"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 liệt kê tất cả gói mod của bạn, kể cả những gói không có người đăng ký.
| Trường | Ý nghĩa |
|---|---|
total.subscribers | có bao nhiêu người khác nhau hiện đang đăng ký ít nhất một gói mod của bạn |
total.bundleSubscribers | trong số đó, có đăng ký “Tất cả gói mod” |
total.packSubscribers | trong số đó, có đăng ký một gói mod riêng lẻ |
partners[] | một dòng cho mỗi studio bạn có; nếu bạn không phải đối tác, danh sách sẽ trống |
active.packSubscriptions | tổng số đăng ký các gói mod riêng lẻ: một người có thể có nhiều đăng ký |
renewal.autoRenewing | các đăng ký sẽ tự động gia hạn: thanh toán tự động đang bật |
renewal.canceledStillActive | thanh toán tự động đã tắt, nhưng thời hạn đã trả vẫn còn hiệu lực; quyền truy cập sẽ kết thúc sau đó |
packs[].activeSubscribers | có bao nhiêu người có thể chơi gói mod này theo đăng ký |
packs[].viaPack / packs[].viaBundle | trong số đó, theo đăng ký gói mod này và theo đăng ký “Tất cả gói mod” |
period.newSubscriptions | các đăng ký có lần thu tiền đầu tiên trong khoảng thời gian |
period.canceled | các đăng ký bị tắt thanh toán tự động trong khoảng thời gian |
period.expired | quyền truy cập đã kết thúc trong khoảng thời gian và không được gia hạn |
period.refunded | quyền truy cập đã bị đóng trong khoảng thời gian do hoàn tiền |
truncated | true — có quá nhiều dữ liệu và các con số không đầy đủ: hãy thu hẹp khoảng thời gian |
bundle đếm số người, còn packs đếm số đăng ký các gói mod riêng lẻ.
Nếu một đăng ký bị hủy, nó sẽ xuất hiện trong canceled vào ngày hủy, và trong
expired khi thời hạn đã trả kết thúc.
Lỗi
| Mã | code | Cần làm gì |
|---|---|---|
| 401 | INVALID_KEY | thiếu khóa, khóa bị sai chính tả hoặc là khóa thuộc loại khác |
| 401 | REVOKED | khóa đã bị thu hồi — hãy cấp khóa mới |
| 401 | OWNER_UNAVAILABLE | tài khoản của chủ khóa đã bị khóa hoặc xóa |
| 403 | IP_NOT_ALLOWED | yêu cầu không đến từ địa chỉ nằm trong khóa; nội dung lỗi hiển thị địa chỉ mà chúng tôi thấy |
| 429 | — | đã vượt giới hạn tần suất yêu cầu, hãy thử lại sau một phút |
Giới hạn
Một khóa có thể gửi tối đa 30 yêu cầu mỗi phút. Các con số thay đổi cùng với các khoản thanh toán, nên việc gọi API thường xuyên hơn một lần mỗi phút là vô nghĩa. Tốt hơn là lưu bộ nhớ đệm phản hồi trên máy chủ của bạn.
Ví dụ
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"