Skip to content
Dành cho nhà phát triển · Gói mod trong launcher

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.balanceKopeckstoàn bộ số tiền trong ví, kể cả tiền bị đóng băng
balance.availableKopeckscó thể chi tiêu trong Millida
balance.withdrawableKopeckscó thể rút ngay bây giờ — đúng số tiền như trên nút “Rút tiền”
balance.heldKopecksbị đóng băng cho đến khi hết thời gian giữ
period.earnedKopecksthu nhập trong khoảng thời gian từ tất cả các dịch vụ
period.earnedBySourcethu nhập trong khoảng thời gian theo dịch vụ, từ lớn đến nhỏ
period.paidOutKopeckssố tiền đã rút trong khoảng thời gian
period.truncatedtrue — 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
subscriptionssố 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:

sourceDịch vụ
catalogdanh mục gói mod: đăng ký và mua
hostinghosting
tradequyên góp Trade
marketchợ
skinsMillida Skins
ratingđánh giá
admincá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.subscriberscó 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.bundleSubscriberstrong số đó, có đăng ký “Tất cả gói mod”
total.packSubscriberstrong 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.packSubscriptionstổng số đăng ký các gói mod riêng lẻ: một người có thể có nhiều đăng ký
renewal.autoRenewingcác đăng ký sẽ tự động gia hạn: thanh toán tự động đang bật
renewal.canceledStillActivethanh 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[].activeSubscriberscó bao nhiêu người có thể chơi gói mod này theo đăng ký
packs[].viaPack / packs[].viaBundletrong số đó, theo đăng ký gói mod này và theo đăng ký “Tất cả gói mod”
period.newSubscriptionscác đăng ký có lần thu tiền đầu tiên trong khoảng thời gian
period.canceledcác đăng ký bị tắt thanh toán tự động trong khoảng thời gian
period.expiredquyền truy cập đã kết thúc trong khoảng thời gian và không được gia hạn
period.refundedquyền truy cập đã bị đóng trong khoảng thời gian do hoàn tiền
truncatedtrue — 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ãcodeCần làm gì
401INVALID_KEYthiếu khóa, khóa bị sai chính tả hoặc là khóa thuộc loại khác
401REVOKEDkhóa đã bị thu hồi — hãy cấp khóa mới
401OWNER_UNAVAILABLEtài khoản của chủ khóa đã bị khóa hoặc xóa
403IP_NOT_ALLOWEDyê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"