পার্টনার আর্নিংস API
প্রাইভেট রিড-অনলি mek_live_ কী: ব্যালান্স, উইথড্রর জন্য উপলব্ধ, সব Millida সার্ভিসে নির্দিষ্ট সময়ের আয় এবং আপনার মডপ্যাকের সাবস্ক্রাইবার। কী শুধু আপনার সার্ভারের IP থেকে কাজ করে।
আপডেট: ২৮ সেপ্টেম্বর, ২০২৬
আপনি যদি নিজের ওয়েবসাইটে বা প্যানেলে আপনার আয় দেখতে চান, তাহলে আর্নিংস API কানেক্ট করুন। এটি Millida-র আপনার ওয়ালেটের মতোই একই সংখ্যা ফেরত দেয়: ব্যালান্স, উইথড্রয়ের জন্য উপলব্ধ পরিমাণ, এবং নির্বাচিত সময়ের আয় — সার্ভিস অনুযায়ী ভাগ করা: মডপ্যাক সাবস্ক্রিপশন, হোস্টিং, ডোনেশন, মার্কেট এবং অন্যান্য।
API শুধুমাত্র রিড-অনলি। এটি দিয়ে আপনি টাকা উইথড্র করতে, পেআউটের তথ্য পরিবর্তন করতে বা কোনো কিছু কিনতে পারবেন না। কী শুধু আপনার ওয়ালেটই দেখতে পারে; এটি দিয়ে আপনি অন্যের ডেটা অ্যাক্সেস করতে পারবেন না।
কী
কী ইস্যু করা হয় পার্টনার ড্যাশবোর্ডে: Profile → আপনার স্টুডিওর নামে থাকা সেকশন → Earnings 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 | এখনই উইথড্র করা যাবে — “Withdraw” বাটনে থাকা একই পরিমাণ |
balance.heldKopecks | হোল্ড পিরিয়ড শেষ হওয়া পর্যন্ত ফ্রোজেন |
period.earnedKopecks | সময়কালে সব সার্ভিস মিলিয়ে অর্জিত |
period.earnedBySource | সময়কালে সার্ভিস অনুযায়ী আয়, বড় থেকে ছোট ক্রমে |
period.paidOutKopecks | সময়কালে উইথড্র করা হয়েছে |
period.truncated | true — সময়কালে অনেক বেশি ট্রানজেকশন আছে এবং পরিমাণ অসম্পূর্ণ: সময়কাল সংকুচিত করুন |
subscriptions | এই মুহূর্তে আপনার মডপ্যাকের সাবস্ক্রাইবার, সংক্ষেপে; বিস্তারিত “Subscribers” সেকশনে |
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 | তাদের মধ্যে, “All modpacks” সাবস্ক্রিপশনসহ |
total.packSubscribers | তাদের মধ্যে, আলাদা মডপ্যাকের সাবস্ক্রিপশনসহ |
partners[] | আপনার যত স্টুডিও আছে তার প্রতি সারিতে একটি; আপনি পার্টনার না হলে তালিকাটি খালি |
active.packSubscriptions | আলাদা মডপ্যাকের মোট সাবস্ক্রিপশন: একজনের একাধিক থাকতে পারে |
renewal.autoRenewing | যে সাবস্ক্রিপশন স্বয়ংক্রিয়ভাবে রিনিউ হবে: অটো-পেমেন্ট চালু আছে |
renewal.canceledStillActive | অটো-পেমেন্ট বন্ধ, কিন্তু পরিশোধিত মেয়াদ এখনো সক্রিয়; এটি শেষ হলে অ্যাক্সেস বন্ধ হবে |
packs[].activeSubscribers | কতজন সাবস্ক্রিপশন দিয়ে এই মডপ্যাক খেলতে পারেন |
packs[].viaPack / packs[].viaBundle | তাদের মধ্যে, এই মডপ্যাকের সাবস্ক্রিপশন দিয়ে এবং “All modpacks” সাবস্ক্রিপশন দিয়ে |
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 | — | রিকোয়েস্ট রেট লিমিট ছাড়িয়েছে, এক মিনিট পরে রিকোয়েস্টটি আবার পাঠান |
সীমা
একটি কী প্রতি মিনিটে সর্বোচ্চ ৩০টি রিকোয়েস্ট পাঠাতে পারে। পেমেন্টের সাথে সাথে সংখ্যাগুলো বদলায়, তাই মিনিটে একবারের বেশি 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"