Skip to content
개발자용 · 런처의 모드팩

파트너 수익 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.availableKopecksMillida 내에서 사용할 수 있는 금액
balance.withdrawableKopecks지금 바로 출금할 수 있는 금액 — “출금” 버튼에 표시되는 것과 동일한 금액
balance.heldKopecks보류 기간이 끝날 때까지 동결된 금액
period.earnedKopecks해당 기간 동안 모든 서비스에서 얻은 수익
period.earnedBySource해당 기간 동안 서비스별 수익, 큰 순서에서 작은 순서로
period.paidOutKopecks해당 기간 동안 출금한 금액
period.truncatedtrue — 해당 기간에 트랜잭션이 너무 많아 금액이 불완전합니다: 기간을 좁히세요
subscriptions현재 본인의 모드팩을 구독 중인 구독자 수, 간략히; 자세한 내용은 “구독자” 섹션에 있습니다

source 값:

source서비스
catalog모드팩 카탈로그: 구독 및 구매
hosting호스팅
tradeTrade 후원
market마켓
skinsMillida Skins
rating평점
adminMillida 적립금

시간이 지나면서 새로운 값이 추가될 수 있습니다. 인식하지 못하는 값이 있다면 그대로 표시하고 오류로 처리하지 마세요.

구독자

GET /earnings-api/v1/subscriptions?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z

현재 Millida 구독으로 본인의 모드팩을 플레이하는 사람이 몇 명인지, 그리고 해당 기간 동안 구독에 어떤 일이 있었는지입니다. 구독자는 결제가 아니라 활성 접근 권한으로 집계됩니다: 재시도 청구를 위해 결제일 이후 3일을 포함하여 모드팩을 실행할 수 있는 동안은 구독자로 집계됩니다. 본인 웹사이트의 키를 통한 접근, 팀 접근, 일회성 구매는 구독으로 집계되지 않습니다.

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해당 기간에 환불로 인해 접근이 종료된 구독
truncatedtrue — 데이터가 너무 많아 수치가 불완전합니다: 기간을 좁히세요

bundle은 사람을 집계하고, packs는 개별 모드팩 구독을 집계합니다. 구독이 취소되면 취소한 날에 canceled에 나타나고, 유료 기간이 끝나면 expired에 나타납니다.

오류

코드code해야 할 일
401INVALID_KEY키가 없거나, 오타가 있거나, 다른 유형의 키입니다
401REVOKED키가 폐기되었습니다 — 새 키를 발급하세요
401OWNER_UNAVAILABLE키 소유자의 계정이 차단되었거나 삭제되었습니다
403IP_NOT_ALLOWED요청이 키에 등록된 주소에서 오지 않았습니다; 오류 텍스트에 저희가 확인한 주소가 표시됩니다
429—요청 속도 제한을 초과했습니다, 1분 후에 요청을 다시 시도하세요

제한

단일 키는 분당 최대 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"