Documentation
Tout ce qu'il faut pour intégrer l'API mym
Une API REST en JSON pour lire vos fans, messages, transactions et statistiques, recevoir des webhooks signés et envoyer vos conversions aux régies publicitaires.
Démarrage rapide
L'URL de base est https://api.apimym.com/v1. Créez votre compte, récupérez votre clé, puis faites votre premier appel en moins de deux minutes.
curl https://api.apimym.com/v1/creators/me \
-H "Authorization: Bearer $MYM_API_KEY"Premier appel : récupérer le profil du créateur
Authentification
Chaque requête doit contenir l'en-tête Authorization: Bearer MYM_API_KEY. Les clés mym_live_ accèdent aux données réelles, les clés mym_test_ à un environnement de démonstration.
Les clés sont limitées à des scopes (fans:read, messages:write, transactions:read...) et à un ou plusieurs créateurs via MYM_CREATOR_SCOPE. Gardez-les côté serveur et renouvelez-les depuis votre espace en cas de fuite.
Requêtes et réponses
Les corps de requête et de réponse sont en JSON UTF-8. Les montants sont en centimes, les dates au format ISO 8601 UTC. Chaque réponse contient un request_id à nous transmettre en cas de support.
{
"data": {
"id": "crt_8f2k1",
"username": "lea.studio",
"subscribers_count": 1284,
"created_at": "2025-03-14T09:12:44Z"
},
"meta": { "request_id": "req_01J9X4" }
}Pour les requêtes POST, ajoutez un en-tête Idempotency-Key afin de pouvoir réessayer sans créer de doublon.
Endpoints
| Méthode | Route | Description |
|---|---|---|
| GET | /v1/creators/me | Profil du créateur lié à la clé |
| GET | /v1/fans | Liste paginée des fans et abonnés |
| GET | /v1/fans/{id} | Détail d'un fan, dépenses et historique |
| GET | /v1/messages | Conversations et messages |
| POST | /v1/messages | Envoyer un message ou un média privé |
| GET | /v1/transactions | Ventes, abonnements, pourboires et remboursements |
| GET | /v1/stats/revenue | Revenus agrégés par période |
| GET | /v1/posts | Publications et performances |
| POST | /v1/exports | Lancer un export CSV ou JSON |
| GET | /v1/exports/{id} | Statut et lien de téléchargement d'un export |
| POST | /v1/webhooks | Créer un endpoint webhook |
| POST | /v1/tracking/links | Créer un lien de tracking publicitaire |
Pagination
Les listes utilisent une pagination par curseur. Passez limit (1 à 100, 25 par défaut) et reprenez avec la valeur next_cursor reçue.
GET /v1/fans?limit=50&cursor=eyJpZCI6ImZhbl85MWFiIn0
{ "data": [ ... ], "meta": { "next_cursor": "eyJpZCI6ImZhbl9hMjAxIn0", "has_more": true } }Erreurs
Les erreurs renvoient un code HTTP standard et un objet explicite :
{ "error": { "code": "invalid_request", "message": "Le paramètre limit doit être compris entre 1 et 100.", "request_id": "req_01J9X4" } }| HTTP | Code | Signification |
|---|---|---|
| 400 | invalid_request | Paramètre manquant ou mal formé |
| 401 | unauthorized | Clé absente, invalide ou révoquée |
| 403 | forbidden | La clé n'a pas accès à ce créateur ou à ce scope |
| 404 | not_found | Ressource introuvable |
| 409 | conflict | Requête en double (clé d'idempotence déjà utilisée) |
| 429 | rate_limited | Limite de débit dépassée, réessayez après Retry-After |
| 500 | server_error | Erreur interne, réessayez avec un backoff exponentiel |
Limites de débit
Par défaut, chaque clé dispose de 120 requêtes par minute. Les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset indiquent votre consommation. En cas de 429, attendez la durée indiquée par Retry-After.
Webhooks
Enregistrez une URL HTTPS pour recevoir les événements en temps réel. Chaque livraison est signée en HMAC SHA-256 dans l'en-tête X-Mym-Signature. Répondez en 2xx sous 10 secondes, sinon nous réessayons jusqu'à 8 fois sur 24 heures avec un backoff exponentiel.
{
"id": "evt_01J9X7",
"type": "transaction.created",
"created_at": "2026-09-24T21:04:11Z",
"data": {
"transaction_id": "txn_4k2p",
"fan_id": "fan_91ab",
"kind": "subscription",
"amount": 1499,
"currency": "EUR"
}
}import { createHmac, timingSafeEqual } from "node:crypto";
export function verify(rawBody: string, signature: string, secret: string) {
const expected = createHmac("sha256", secret).update(rawBody).digest("hex");
return timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}
// En-tête : X-Mym-SignatureVérifier la signature d'un webhook
Postbacks publicitaires
Créez un lien de tracking avec POST /v1/tracking/links. Les identifiants de clic (fbclid, ttclid, gclid, ScCid) sont capturés puis associés au fan lors de son abonnement ou de son achat.
Les conversions sont envoyées côté serveur à Meta, TikTok, Snapchat et Google Ads avec un event_id partagé pour la déduplication avec le pixel.
POST /v1/tracking/links
{ "name": "Campagne septembre", "destinations": ["meta", "tiktok"], "events": ["subscription", "purchase"] }Serveur MCP
Connectez l'API à Claude, ChatGPT, Cursor ou Manus avec notre serveur MCP. Ajoutez cette configuration à votre client puis posez vos questions en langage naturel.
{
"mcpServers": {
"mym": {
"command": "npx",
"args": ["-y", "@apimym/mcp"],
"env": { "MYM_API_KEY": "mym_live_..." }
}
}
}Questions fréquentes
- Votre clé est disponible dans votre espace après validation de votre compte. Stockez-la côté serveur dans la variable MYM_API_KEY et ne l'exposez jamais dans un navigateur.
- Oui. Toutes les routes sont préfixées par /v1. Les changements incompatibles sont publiés dans une nouvelle version avec un préavis.
- Utilisez une clé de test préfixée par mym_test_. Les appels renvoient des données de démonstration et les webhooks peuvent être rejoués depuis le tableau de bord.
- L'API est REST et JSON, donc tout langage capable d'envoyer une requête HTTPS fonctionne. Nous fournissons des exemples en cURL, TypeScript, Python, PHP, Go et Ruby.
Développez sur mym dès aujourd'hui
Demandez un accès anticipé à mym API et dites-nous ce que vous souhaitez créer pour vos créateurs.