À retenir
Le format des requêtes de l'API v2 standard des panels SMM, ses 6 actions, des exemples de réponses, les messages d'erreur et les limites de requêtes, pour les revendeurs.
L'API d'un panel SMM est une connexion qui passe des commandes et vérifie leur statut automatiquement depuis un autre panel ou votre propre logiciel. 1PANEL PLUS utilise l'API v2 standard des panels SMM : si vous avez déjà du code connecté à un autre panel, changez simplement l'adresse et la clé pour vous connecter tout de suite. L'API et le site utilisent les mêmes services, les mêmes prix pour 1 000 et le même solde.
Qui utilise l'API d'un panel SMM ?
- Revendeurs : proposent les services sur leur propre panel et transmettent automatiquement les commandes de leurs clients
- Agences : passent d'un coup les commandes de nombreuses chaînes à heures fixes
- Développeurs : créent des scripts qui commandent au lancement d'un direct ou à la mise en ligne d'une vidéo
- Gestionnaires : réunissent le solde et le statut des commandes dans leur propre tableau de bord
Comment obtenir une clé API ?
Créez-la sur l'écran Clé API de votre tableau de bord une fois votre première recharge créditée. La clé ne s'affiche qu'une fois, au moment de sa création : copiez-la tout de suite et conservez-la en lieu sûr. Quand vous créez une nouvelle clé, l'ancienne cesse aussitôt de fonctionner : si vous pensez qu'une clé a été exposée, créez-en simplement une nouvelle pour la remplacer.
Comment envoyer des requêtes API ?
Envoyez chaque requête en POST à l'adresse unique https://1panelplus.com/api/v2. Utilisez au choix des champs de formulaire (application/x-www-form-urlencoded ou multipart) ou un corps JSON (Content-Type: application/json), et incluez key et action dans chaque requête. Toutes les réponses sont en JSON.
Exemple de requête (champs de formulaire) : key=YOUR_API_KEY&action=balance
Exemple de requête (JSON) : {"key": "YOUR_API_KEY", "action": "balance"}
| action | Valeurs à envoyer | Valeurs renvoyées |
|---|---|---|
| services | Aucune | Liste des services |
| add | service, link, quantity ou comments | order (numéro de commande) |
| status | Un order, ou orders (jusqu'à 100, séparés par des virgules) | charge, start_count, status, remains, currency |
| refill | order | refill (numéro de refill) |
| refill_status | refill | status |
| balance | Aucune | balance, currency |
- action
- services
- Valeurs à envoyer
- Aucune
- Valeurs renvoyées
- Liste des services
- action
- add
- Valeurs à envoyer
- service, link, quantity ou comments
- Valeurs renvoyées
- order (numéro de commande)
- action
- status
- Valeurs à envoyer
- Un order, ou orders (jusqu'à 100, séparés par des virgules)
- Valeurs renvoyées
- charge, start_count, status, remains, currency
- action
- refill
- Valeurs à envoyer
- order
- Valeurs renvoyées
- refill (numéro de refill)
- action
- refill_status
- Valeurs à envoyer
- refill
- Valeurs renvoyées
- status
- action
- balance
- Valeurs à envoyer
- Aucune
- Valeurs renvoyées
- balance, currency
Comment obtenir la liste des services avec services ?
Envoyez action=services et vous recevez tous les services en vente sous forme de tableau. Chaque service comprend service (numéro de service), name, type, category, rate, min, max, refill et cancel. rate est le prix pour 1 000 (USD) ; quand type vaut Package, c'est le prix d'un pack. refill vaut true pour les services avec période de refill, et cancel vaut toujours false. category contient le nom de la plateforme et la catégorie : vous pouvez recréer telles quelles les catégories sur votre propre panel.
Exemple de réponse : [{"service": SERVICE_ID, "name": "Nom du service", "type": "Default", "category": "YouTube - Nom de la catégorie", "rate": "Prix pour 1 000", "min": "Quantité minimum", "max": "Quantité maximum", "refill": true, "cancel": false}]
Les prix et les services peuvent changer : en tant que revendeur, il est judicieux de récupérer services à intervalle régulier pour garder synchronisés les prix et les quantités minimum et maximum de votre panel.
Comment passer une commande avec add ?
Envoyez action=add avec service (numéro de service), link (lien public) et quantity : la commande est passée et le coût aussitôt déduit de votre solde. Le champ order de la réponse est le numéro de commande ; enregistrez-le pour l'utiliser avec status et refill. Les commandes peuvent être passées depuis les comptes dont la première recharge a été créditée.
- Services classiques : envoyez service, link et quantity
- Services Custom Comments : envoyez comments à la place de quantity. Un commentaire par ligne, jusqu'à 500 caractères par ligne, et le nombre de lignes est la quantité
- Services Package : aucune quantité nécessaire. La commande porte sur un pack
Exemple de requête : key=YOUR_API_KEY&action=add&service=SERVICE_ID&link=https://www.youtube.com/watch?v=videoid&quantity=1000
Exemple de réponse : {"order": ORDER_ID}
Comment vérifier le statut d'une commande avec status ?
Envoyez action=status avec order (un seul numéro de commande) pour obtenir le statut de cette commande, ou envoyez orders avec des numéros de commande séparés par des virgules pour en consulter jusqu'à 100 à la fois. Si vous gérez beaucoup de commandes, les regrouper avec orders économise de nombreuses requêtes.
Exemple de réponse (une commande) : {"charge": "Montant facturé", "start_count": "Compteur de départ", "status": "In progress", "remains": "Quantité restante", "currency": "USD"}
Exemple de réponse (plusieurs) : {"ORDER_ID_1": {"charge": "...", "start_count": "...", "status": "Completed", "remains": "0", "currency": "USD"}, "ORDER_ID_2": {"error": "Incorrect order ID"}}
| Valeur de status | Signification |
|---|---|
| Pending | Reçue et en attente de démarrage, ou en passage en traitement |
| In progress | En cours de livraison |
| Completed | Entièrement livrée |
| Partial | Une partie a été livrée et le reste du montant est revenu sur votre solde |
| Canceled | N'a pas pu être traitée et le montant total est revenu sur votre solde |
- Valeur de status
- Pending
- Signification
- Reçue et en attente de démarrage, ou en passage en traitement
- Valeur de status
- In progress
- Signification
- En cours de livraison
- Valeur de status
- Completed
- Signification
- Entièrement livrée
- Valeur de status
- Partial
- Signification
- Une partie a été livrée et le reste du montant est revenu sur votre solde
- Valeur de status
- Canceled
- Signification
- N'a pas pu être traitée et le montant total est revenu sur votre solde
charge correspond au montant payé moins les montants remboursés : après une commande partielle ou annulée, vous voyez tout de suite le montant réellement dépensé. Les statuts de commande se mettent à jour automatiquement environ toutes les minutes : interroger status à peu près toutes les minutes suffit largement.
Comment utiliser refill et refill_status ?
Envoyez action=refill avec order pour demander un refill, et vous recevez refill (le numéro de refill). La demande est acceptée pour les commandes terminées ou partielles de services avec période de refill, pendant la période de refill comptée à partir du jour où la commande s'est terminée, lorsqu'aucun refill n'est en cours et que 24 heures se sont écoulées depuis la dernière demande. Envoyez action=refill_status avec refill, et vous obtenez le statut parmi Pending, In progress, Completed ou Rejected.
Exemples de réponses : {"refill": REFILL_ID} et {"status": "Completed"}
Les règles de refill sont les mêmes que sur le site. Les conditions détaillées sont dans Les périodes de refill expliquées.
Comment vérifier mon solde avec balance ?
Envoyez action=balance et vous recevez votre solde actuel et la devise (USD). En tant que revendeur, vérifiez votre solde avant de transmettre des commandes et configurez une alerte quand il passe sous un montant défini : vos commandes continuent ainsi sans interruption.
Exemple de réponse : {"balance": "Solde actuel", "currency": "USD"}
Que signifient les messages d'erreur de l'API ?
Les erreurs sont renvoyées en JSON avec une phrase en anglais dans le champ error. Chaque phrase correspond à une cause fixe : votre logiciel peut la comparer telle quelle et la traiter.
| Valeur de error | Signification |
|---|---|
| Invalid API key | La clé est absente ou incorrecte |
| Too many requests | Vous avez dépassé la limite de requêtes par minute. Renvoyez un peu plus tard |
| Add funds first | Vous pouvez commander une fois votre première recharge créditée |
| Incorrect service ID | Ce n'est pas le numéro d'un service en vente |
| Incorrect link | Le format du lien n'est pas valide |
| Quantity out of range | La quantité est hors de la fourchette min et max du service |
| Incorrect comments | Les lignes de commentaires sont vides ou une ligne dépasse 500 caractères |
| Not enough funds on balance | Votre solde est inférieur au coût de la commande |
| Incorrect order ID | Ce n'est pas un numéro de commande de ce compte |
| Incorrect refill ID | Ce n'est pas un numéro de refill de ce compte |
| Incorrect action | La valeur action ne fait pas partie des 6 actions |
- Valeur de error
- Invalid API key
- Signification
- La clé est absente ou incorrecte
- Valeur de error
- Too many requests
- Signification
- Vous avez dépassé la limite de requêtes par minute. Renvoyez un peu plus tard
- Valeur de error
- Add funds first
- Signification
- Vous pouvez commander une fois votre première recharge créditée
- Valeur de error
- Incorrect service ID
- Signification
- Ce n'est pas le numéro d'un service en vente
- Valeur de error
- Incorrect link
- Signification
- Le format du lien n'est pas valide
- Valeur de error
- Quantity out of range
- Signification
- La quantité est hors de la fourchette min et max du service
- Valeur de error
- Incorrect comments
- Signification
- Les lignes de commentaires sont vides ou une ligne dépasse 500 caractères
- Valeur de error
- Not enough funds on balance
- Signification
- Votre solde est inférieur au coût de la commande
- Valeur de error
- Incorrect order ID
- Signification
- Ce n'est pas un numéro de commande de ce compte
- Valeur de error
- Incorrect refill ID
- Signification
- Ce n'est pas un numéro de refill de ce compte
- Valeur de error
- Incorrect action
- Signification
- La valeur action ne fait pas partie des 6 actions
Les demandes de refill peuvent renvoyer Refill is not available for this service (le service n'a pas de période de refill), Order is not finished yet (la commande n'est pas terminée), Refill period has ended (la période de refill est dépassée) ou Refill already requested, try again later (un refill est en cours ou 24 heures ne se sont pas écoulées).
Combien de requêtes API puis-je envoyer ?
Chaque clé peut envoyer jusqu'à 300 requêtes par minute. Regroupez les consultations de statut par lots de 100 avec orders et ne récupérez la liste des services que lorsque c'est nécessaire : vous aurez une large marge. Par exemple, avec 1 000 commandes en cours, 10 requêtes une fois par minute suffisent à toutes les vérifier.
Comment les revendeurs fixent-ils leurs prix de vente ?
Le rate obtenu via l'API est le prix pour 1 000 de 1PANEL PLUS, et les revendeurs fixent eux-mêmes le prix de vente sur leur propre panel. Par exemple, si vous ajoutez 25% à un service dont le rate est de $2.00, vous vendez à $2.50 pour 1 000 ; quand un client commande 4 000, votre vente est de $10.00 et $8.00 sont déduits chez 1PANEL PLUS. Ces prix sont des exemples pour montrer le calcul.
Dans quel ordre mettre en place la connexion API ?
- Rechargez votre solde et créez une clé API dans votre tableau de bord
- Vérifiez la clé et la connexion avec balance
- Récupérez la liste des services avec services et publiez-la sur votre panel
- Envoyez un add avec la plus petite quantité et récupérez un numéro de commande
- Vérifiez avec status que le statut évolue, puis activez les commandes automatiques
Des exemples curl, PHP, Python et Node.js et la description complète des champs se trouvent dans la documentation API, et les autres questions dans le thème API de la FAQ.