API des gains partenaires
Clé privée en lecture seule mek_live_ : solde, disponible au retrait, gains sur une période pour tous les services Millida et abonnés à vos modpacks. La clé ne fonctionne que depuis l'IP de votre serveur.
Mis à jour le 28 septembre 2026
Si vous souhaitez consulter vos revenus sur votre propre site web ou dans un panneau, connectez l'API des revenus. Elle renvoie les mêmes chiffres que votre portefeuille sur Millida : le solde, le montant disponible au retrait et les revenus de la période sélectionnée, ventilés par service : abonnements aux modpacks, hébergement, dons, market et autres.
L'API est en lecture seule. Vous ne pouvez pas retirer d'argent, modifier vos coordonnées de paiement ni payer quoi que ce soit par son intermédiaire. La clé ne voit que votre portefeuille ; vous ne pouvez pas accéder aux données d'autres personnes avec elle.
Clé
La clé est délivrée dans le tableau de bord partenaire : Profil → section portant le nom de votre studio → API des revenus. Lors de son émission, indiquez l'adresse IP du serveur depuis lequel les requêtes seront envoyées. La clé ne fonctionne depuis aucune autre adresse, même si elle est volée.
- Vous pouvez indiquer jusqu'à dix adresses ou sous-réseaux. Le sous-réseau ne doit pas être plus large que
/24pour IPv4 et/48pour IPv6. - Les adresses domestiques et locales (
127.0.0.1,10.x,192.168.x) ne sont pas acceptées : vous avez besoin de l'adresse publique du serveur. - La clé n'est affichée qu'une seule fois. Conservez-la sur le serveur, dans des variables d'environnement ou dans un coffre de secrets, et ne l'exposez jamais au navigateur.
- Vous pouvez avoir jusqu'à cinq clés actives. Si vous perdez une clé ou changez de serveur, révoquez l'ancienne clé et émettez-en une nouvelle. Une clé révoquée cesse de fonctionner immédiatement.
Tous les endpoints sont relatifs à https://api.millida.net/v2. La clé est transmise dans l'en-tête :
Authorization: Bearer mek_live_…
Résumé
GET /earnings-api/v1/summary?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z
from et to sont les bornes de la période au format ISO 8601. Ces deux paramètres
sont facultatifs : sans eux, la période couvre tout l'historique.
{
"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
}
}
Tous les montants sont en kopecks : 1254000 signifie 12 540 ₽.
| Champ | Signification |
|---|---|
balance.balanceKopecks | tout ce qui se trouve dans le portefeuille, y compris les fonds gelés |
balance.availableKopecks | peut être dépensé au sein de Millida |
balance.withdrawableKopecks | peut être retiré dès maintenant — le même montant que sur le bouton « Retirer » |
balance.heldKopecks | gelé jusqu'à la fin de la période de rétention |
period.earnedKopecks | gagné pendant la période, tous services confondus |
period.earnedBySource | revenus de la période par service, du plus élevé au plus faible |
period.paidOutKopecks | retiré pendant la période |
period.truncated | true — il y a trop de transactions sur la période et les montants sont incomplets : réduisez la période |
subscriptions | abonnés à vos modpacks à l'instant présent, en bref ; détails dans la section « Abonnés » |
Les valeurs de source :
source | Service |
|---|---|
catalog | catalogue de modpacks : abonnements et achats |
hosting | hébergement |
trade | dons Trade |
market | market |
skins | Millida Skins |
rating | rating |
admin | crédits Millida |
De nouvelles valeurs peuvent être ajoutées au fil du temps. Si vous ne reconnaissez pas une valeur, affichez-la telle quelle et ne la traitez pas comme une erreur.
Abonnés
GET /earnings-api/v1/subscriptions?from=2026-09-01T00:00:00.000Z&to=2026-09-30T23:59:59.999Z
Combien de personnes jouent actuellement à vos modpacks avec un abonnement Millida et ce qui est arrivé aux abonnements pendant la période. Les abonnés sont comptés par accès actif, et non par paiements : une personne compte tant qu'elle peut lancer le modpack, y compris les trois jours suivant la date de paiement accordés pour la nouvelle tentative de prélèvement. L'accès via les clés de votre site web, l'accès d'équipe et les achats uniques ne comptent pas comme des abonnements.
L'API ne renvoie que des chiffres. Vous ne pouvez pas savoir qui exactement est abonné par son intermédiaire.
from et to définissent la période de la même manière que dans le résumé. Ils n'affectent que le bloc period ; les blocs total, active, renewal et packs affichent toujours l'état au moment de la requête.
{
"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 liste tous vos modpacks, y compris ceux sans abonnés.
| Champ | Signification |
|---|---|
total.subscribers | combien de personnes distinctes sont actuellement abonnées à au moins un de vos modpacks |
total.bundleSubscribers | parmi elles, avec un abonnement « Tous les modpacks » |
total.packSubscribers | parmi elles, avec un abonnement à un modpack individuel |
partners[] | une ligne par studio que vous possédez ; si vous n'êtes pas partenaire, la liste est vide |
active.packSubscriptions | total des abonnements à des modpacks individuels : une personne peut en avoir plusieurs |
renewal.autoRenewing | abonnements qui se renouvelleront automatiquement : le paiement automatique est activé |
renewal.canceledStillActive | le paiement automatique est désactivé, mais la période payée est encore active ; l'accès prendra fin après celle-ci |
packs[].activeSubscribers | combien de personnes peuvent jouer à ce modpack par abonnement |
packs[].viaPack / packs[].viaBundle | parmi elles, par abonnement à ce modpack et par abonnement « Tous les modpacks » |
period.newSubscriptions | abonnements dont le premier prélèvement a eu lieu pendant la période |
period.canceled | abonnements pour lesquels le paiement automatique a été désactivé pendant la période |
period.expired | l'accès a pris fin pendant la période et n'a pas été renouvelé |
period.refunded | l'accès a été fermé pendant la période en raison d'un remboursement |
truncated | true — il y a trop de données et les chiffres sont incomplets : réduisez la période |
bundle compte des personnes, tandis que packs compte les abonnements à des modpacks individuels.
Si un abonnement est annulé, il apparaît dans canceled le jour de l'annulation, et dans
expired lorsque la période payée prend fin.
Erreurs
| Code | code | Que faire |
|---|---|---|
| 401 | INVALID_KEY | la clé est absente, comporte une faute de frappe ou est une clé d'un autre type |
| 401 | REVOKED | la clé a été révoquée — émettez-en une nouvelle |
| 401 | OWNER_UNAVAILABLE | le compte du propriétaire de la clé est bloqué ou supprimé |
| 403 | IP_NOT_ALLOWED | la requête ne provient pas d'une adresse autorisée dans la clé ; le texte de l'erreur affiche l'adresse que nous avons vue |
| 429 | — | limite de fréquence des requêtes dépassée, réessayez la requête dans une minute |
Limites
Une même clé peut envoyer jusqu'à 30 requêtes par minute. Les chiffres changent au rythme des paiements, il est donc inutile d'interroger l'API plus d'une fois par minute. Il est préférable de mettre en cache la réponse sur votre serveur.
Exemple
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"