Intégrez ALLMEDIAPAYS à vos applications. Accédez à l'API REST, aux webhooks et aux ressources techniques pour diffuser des campagnes, gérer des comptes et récupérer des statistiques en temps réel.
L'API ALLMEDIAPAYS vous permet d'automatiser la création de campagnes, de récupérer des statistiques de diffusion et de gérer les comptes de vos monétiseurs directement depuis votre application. En quelques minutes, vous pouvez réaliser votre premier appel.
# Récupérer les infos de votre compte curl -X GET "https://api.allmediapays.com/v1/me" \ -H "Authorization: Bearer VOTRE_CLE_API" \ -H "Content-Type: application/json"
{
"status": "success",
"data": {
"id": "usr_abc123",
"username": "mon_compte",
"email": "contact@exemple.com",
"ad_balance": 45.00,
"withdrawal_balance": 12.50,
"role": "publisher",
"certified_partner": false,
"created_at": "2026-01-15T10:23:00Z"
}
}
Toutes les requêtes à l'API ALLMEDIAPAYS nécessitent une authentification par Bearer Token. Votre clé API doit être incluse dans le header Authorization de chaque requête.
Authorization: Bearer amp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
| Préfixe | Environnement | Description |
|---|---|---|
amp_test_ | Test | Clé de test — aucune transaction réelle. Utilisez-la pendant le développement. |
amp_live_ | Production | Clé de production — les campagnes et transactions sont réelles et facturées. |
Voici la liste complète des ressources accessibles via l'API v1. Tous les endpoints retournent du JSON et acceptent des paramètres JSON dans le corps de la requête.
La création d'une campagne via l'API suit les mêmes règles que l'interface web (voir les Articles 7 et 8 des CGU) : modération préalable, délai de brouillon de 15 minutes, règles de contenu strictes.
{
"name": "Lancement Produit Été 2026",
"objectives": ["awareness", "traffic"],
"account_type": "business", // "personal" | "business"
"networks": ["tiktok", "x"],
"targeting": {
"countries": ["SN", "CI", "CM"],
"age_min": 18,
"age_max": 35,
"gender": "all", // "all" | "male" | "female"
"interests": ["tech", "business"]
},
"budget": {
"mode": "views", // "views" | "duration"
"views_target": 50000,
"currency": "USD"
},
"creative": {
"title": "Découvrez notre nouvelle app",
"description": "Gérez vos finances en 1 clic...",
"media_url": "https://cdn.exemple.com/pub.mp4",
"cta": "En savoir plus",
"destination_url": "https://exemple.com"
},
"publish": true // false = brouillon (15 min max)
}
publish: false, la campagne est enregistrée comme brouillon et supprimée automatiquement et définitivement après 15 minutes si elle n'est pas publiée. Aucune récupération n'est possible après ce délai (voir Article 7.11 des CGU).
{
"status": "success",
"data": {
"id": "cmp_xyz789",
"name": "Lancement Produit Été 2026",
"status": "pending_review", // modération en cours
"estimated_review": "2026-06-22T11:30:00Z",
"budget_spent": 0,
"views_delivered": 0,
"created_at": "2026-06-22T11:00:00Z"
}
}
| Statut | Description |
|---|---|
| draft | Brouillon — sera supprimé dans 15 min si non publié. |
| pending_review | En cours de modération (15 min à 48h ouvrables). |
| active | Campagne approuvée et en cours de diffusion. |
| completed | Objectif atteint — diffusion terminée. |
| rejected | Refusée pour non-conformité aux règles (Art. 8 CGU). |
| paused | Mise en pause par l'annonceur ou la plateforme. |
L'API de monétisation vous permet de consulter vos revenus, les campagnes actives sur vos comptes et de gérer vos réseaux connectés. La formule de calcul des revenus est définie à l'Article 9.5 des CGU.
curl -X GET "https://api.allmediapays.com/v1/monetization/earnings?from=2026-06-01&to=2026-06-22" \ -H "Authorization: Bearer amp_live_xxxx"
{
"status": "success",
"data": {
"total_earned": 34.72,
"period": {
"from": "2026-06-01",
"to": "2026-06-22"
},
"sessions": [
{
"campaign_id": "cmp_xyz789",
"network": "tiktok",
"views_generated": 12400,
"duration_minutes": 47,
"earned": 8.14,
"date": "2026-06-15T14:00:00Z"
}
]
}
}
Les webhooks permettent à ALLMEDIAPAYS d'envoyer des notifications en temps réel à votre serveur lorsque des événements importants surviennent : fin d'une campagne, paiement reçu, retrait traité, etc.
| Événement | Description |
|---|---|
campaign.approved | La campagne a passé la modération et est en cours de diffusion. |
campaign.rejected | La campagne a été refusée lors de la modération. |
campaign.completed | L'objectif de vues ou la durée est atteint. |
earning.credited | Un gain de monétisation a été crédité sur votre solde. |
withdrawal.completed | Un retrait a été exécuté avec succès. |
withdrawal.rejected | Un retrait a été rejeté (adresse invalide, fraude suspectée, etc.). |
referral.commission | Une commission de parrainage a été créditée. |
{
"event": "earning.credited",
"timestamp": "2026-06-22T14:30:00Z",
"signature": "sha256=a3f9...", // vérifiez toujours cette signature
"data": {
"campaign_id": "cmp_xyz789",
"network": "tiktok",
"amount": 8.14,
"currency": "USD",
"new_balance": 45.86
}
}
L'API utilise les codes HTTP standards et retourne toujours un objet JSON décrivant l'erreur.
{
"status": "error",
"code": "INSUFFICIENT_BALANCE",
"message": "Votre solde publicitaire est insuffisant pour lancer cette campagne.",
"details": {
"required": 25.00,
"available": 12.50
}
}
| HTTP | Code | Description |
|---|---|---|
| 200 | success | Requête réussie. |
| 201 | created | Ressource créée avec succès. |
| 400 | INVALID_PARAMS | Paramètres manquants ou invalides dans la requête. |
| 401 | UNAUTHORIZED | Clé API manquante, invalide ou révoquée. |
| 403 | FORBIDDEN | Action non autorisée pour votre rôle ou votre niveau de compte. |
| 422 | INSUFFICIENT_BALANCE | Solde publicitaire insuffisant pour l'opération demandée. |
| 422 | CONTENT_REJECTED | Contenu refusé lors de la modération (Article 8 CGU). |
| 429 | RATE_LIMITED | Trop de requêtes. Respectez les limites de débit. |
| 500 | SERVER_ERROR | Erreur interne. Signalez-la à contact@allmediapays.com. |
Des limites de débit s'appliquent par clé API pour protéger la stabilité de la plateforme. Les headers de réponse X-RateLimit-Remaining et X-RateLimit-Reset vous indiquent votre quota restant.
const crypto = require('crypto'); function verifyWebhook(payload, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(payload, 'utf8') .digest('hex'); const received = signature.replace('sha256=', ''); return crypto.timingSafeEqual( Buffer.from(expected), Buffer.from(received) ); } // Dans votre route Express : app.post('/webhook/amp', (req, res) => { const valid = verifyWebhook( req.rawBody, req.headers['x-amp-signature'], process.env.AMP_WEBHOOK_SECRET ); if (!valid) return res.status(401).end(); // Traitez l'événement... res.status(200).end(); });
L'accès à l'API ALLMEDIAPAYS est soumis aux Conditions Générales d'Utilisation de la plateforme dans leur intégralité. En utilisant l'API, vous vous engagez notamment à :
| Version | Date | Changements |
|---|---|---|
| v1.0 Actuelle | Juin 2026 | Publication initiale — endpoints campagnes, monétisation, retraits, parrainage, webhooks. |
| v1.1 Prévue | T3 2026 | Ajout de l'endpoint partenariat entreprise sur mesure (Article 7bis CGU), pagination curseur, filtres avancés. |
Toute modification rétro-incompatible fera l'objet d'un préavis de 30 jours minimum par e-mail et dans la bannière du tableau de bord.