Panel SMM API : documentation
Panel SMM avec API v2 standard : commandez les services 4SNS PLUS depuis votre bot Telegram ou votre propre panel.
Qu'est-ce que l'API d'un panel SMM ?
L'API d'un panel SMM permet à un programme de récupérer la liste des services, de passer des commandes et de consulter le statut des commandes et le solde sans passer par le site. 4SNS PLUS prend en charge le format standard d'API v2 pour panels SMM utilisé par de nombreux panels et bots : le code déjà connecté à un autre panel fonctionne aussitôt en changeant simplement l'URL et la clé.
Les prix et le solde de l'API sont les mêmes que sur le site. Le rate de la réponse services correspond au prix pour 1,000 (dollars américains) de la liste de prix, et les commandes passées avec add sont débitées de votre solde exactement comme les commandes web et apparaissent aussi dans l'historique des commandes de votre espace. Les montants rendus par les commandes annulées ou partielles reviennent sur ce même solde.
L'essentiel
| Endpoint | https://4snsplus.com/api/v2 |
| Méthode | POST |
| Format de requête | Champs de formulaire (application/x-www-form-urlencoded, multipart) ou corps JSON |
| Réponse | JSON ; les erreurs arrivent aussi en HTTP 200 avec un champ error |
| Authentification | Paramètre key (votre clé API) à chaque requête |
| Limite de requêtes | 300 requêtes par minute et par clé |
| Devise | Dollar américain (USD) |
Exemple de requête
curl -X POST https://4snsplus.com/api/v2 \ -d key=YOUR_API_KEY \ -d action=balance
import requests
r = requests.post("https://4snsplus.com/api/v2", data={
"key": "YOUR_API_KEY",
"action": "add",
"service": 2210,
"link": "https://t.me/yourchannel",
"quantity": 1000,
})
print(r.json()) # {"order": 31877} or {"error": "..."}Comment obtenir une clé API ?
Dès que votre première recharge est créditée sur votre solde, vous pouvez créer une clé API depuis le menu Clé API de votre espace. La clé ne s'affiche qu'une seule fois à sa création : conservez-la en lieu sûr. Créer une nouvelle clé désactive immédiatement la précédente.
La clé est distincte du jeton de votre compte. Mettez uniquement la clé API dans votre bot ou votre serveur, jamais le jeton du compte. Si vous pensez que votre clé a été exposée, créez-en simplement une nouvelle sur l'écran Clé API.
Liste des services (services)
Renvoie tous les services que vous pouvez commander. rate est le prix pour 1,000 (USD) et, lorsque type vaut Package, le prix d'un pack. Lorsque type vaut Custom Comments, vous envoyez une liste de commentaires au lieu d'une quantité. category est le nom de la plateforme suivi du nom du groupe.
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | services |
Exemple de réponse
[
{
"service": 2210,
"name": "Members - 30 Days Non Drop - 30 Days Refill",
"type": "Default",
"category": "Telegram - Members (30 Days Non Drop)",
"rate": "1.4300",
"min": "100",
"max": "50000",
"refill": true,
"cancel": false
}
]Passer une commande (add)
Passe une commande et débite le montant de votre solde. Le montant est le prix pour 1,000 multiplié par la quantité ; pour Package c'est le prix du pack, et pour Custom Comments le nombre de lignes de commentaires fait office de quantité. Les commandes sont possibles sur les comptes dont la première recharge est créditée. Le champ order de la réponse est l'ID de votre commande.
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | add |
| service | ID du service (service issu de services) |
| link | Lien public. Pour Telegram : t.me/name, lien d'invitation privé t.me/+code, publication t.me/name/123, bot t.me/botname. @name est aussi accepté |
| quantity | Quantité (entre min et max). Inutile pour Package et Custom Comments |
| comments | Custom Comments uniquement. Un commentaire par ligne, jusqu'à 10,000 lignes et 500 caractères par ligne |
Exemple de réponse
{
"order": 31877
}Statut d'une commande (status)
Le statut d'une commande. charge est le montant réellement payé après remboursements (USD, 6 décimales), start_count le compteur au démarrage de la commande et remains la quantité pas encore livrée.
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | status |
| order | ID de la commande |
Exemple de réponse
{
"charge": "1.430000",
"start_count": "8120",
"status": "In progress",
"remains": "410",
"currency": "USD"
}Statut de plusieurs commandes (status, orders)
Vérifie jusqu'à 100 commandes à la fois, avec les ID de commande séparés par des virgules. Les ID inexistants ou qui n'appartiennent pas à votre compte reçoivent une erreur à leur place.
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | status |
| orders | Liste d'ID de commande, par exemple 1,10,100 |
Exemple de réponse
{
"1": { "charge": "0.300000", "start_count": "120", "status": "Completed", "remains": "0", "currency": "USD" },
"10": { "error": "Incorrect order ID" }
}Demander un remplacement (refill)
Pour la commande d'un service avec période de remplacement terminée en Completed ou Partial, faites la demande pendant la période de remplacement comptée à partir de la fin. Chaque commande peut avoir une demande ouverte, avec 24 heures entre deux demandes.
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | refill |
| order | ID de la commande |
Exemple de réponse
{
"refill": 512
}Statut du remplacement (refill_status)
Le statut d'une demande de remplacement.
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | refill_status |
| refill | ID du remplacement (refill issu de la réponse refill) |
Exemple de réponse
{
"status": "Completed"
}Solde (balance)
Votre solde (USD, 6 décimales).
| Paramètre | Description |
|---|---|
| key | Votre clé API |
| action | balance |
Exemple de réponse
{
"balance": "84.120000",
"currency": "USD"
}Valeurs de statut des commandes
| Pending | Reçue. En cours de transmission, en attente de démarrage ou un opérateur vérifie le résultat de la transmission |
| In progress | En cours de livraison |
| Completed | Entièrement livrée |
| Partial | Partiellement livrée. La partie non livrée est remboursée sur votre solde |
| Canceled | Non livrée. Remboursement intégral sur votre solde |
Valeurs de statut du remplacement
| Pending | Demande de remplacement reçue |
| In progress | Remplacement en cours de livraison |
| Completed | Remplacement livré |
| Rejected | La demande de remplacement n'a pas été acceptée |
Messages d'erreur
Les erreurs arrivent en JSON avec un champ error dans une réponse HTTP 200. Dans votre code, vérifiez d'abord le champ error.
{
"error": "Not enough funds on balance"
}| Invalid API key | Clé absente, incorrecte ou remplacée par une nouvelle clé |
| Too many requests | Plus de 300 requêtes par minute. Réessayez dans un instant |
| Incorrect action | La valeur de action ne figure pas dans la liste ci-dessus |
| Add funds first | Commande depuis un compte dont la première recharge n'est pas encore créditée |
| Incorrect service ID | Aucun service disponible avec cet ID |
| Incorrect link | Lien vide ou qui n'est pas une adresse web |
| Quantity out of range | Sous la quantité minimale ou au-dessus de la quantité maximale |
| Incorrect comments | Custom Comments vide ou au-delà de 10,000 lignes ou de 500 caractères par ligne |
| Not enough funds on balance | Solde inférieur au montant de la commande. Rechargez puis commandez à nouveau |
| Incorrect order ID | Cet ID de commande n'appartient pas à votre compte |
| Refill is not available for this service | Le service n'a pas de période de remplacement |
| Order is not finished yet | Le remplacement est possible une fois la commande en Completed ou Partial |
| Refill period has ended | La période de remplacement, comptée à partir de la fin de la commande, est écoulée |
| Refill already requested | Cette commande a déjà une demande de remplacement ouverte |
| Refill already requested, try again later | 24 heures ne se sont pas encore écoulées depuis la dernière demande |
| Incorrect refill ID | Cet ID de remplacement n'appartient pas à votre compte |
Comment connecter l'API d'un panel SMM à un bot Telegram ?
1. Enregistrez la liste des services
Appelez services quelques fois par jour et enregistrez dans vos propres données l'ID, le nom, le rate, le min et le max de chaque service. Calculez le prix affiché à vos clients en ajoutant votre marge au rate, et utilisez l'ID de service enregistré tel quel pour commander.
2. Vérifiez la quantité et le lien avant de commander
Vérifier d'abord que la quantité est entre min et max et que le lien est au format t.me réduit les erreurs Quantity out of range et Incorrect link. Il est aussi utile de consulter votre solde avec balance à l'avance.
3. Vérifiez le statut par lots
Vérifiez les commandes en cours toutes les quelques minutes par lots de 100 avec le paramètre orders. Vous restez ainsi largement sous la limite de 300 requêtes par minute et par clé. Quand une commande passe en Completed, Partial ou Canceled, informez votre client du résultat.
4. Remplacement uniquement pour les commandes terminées
Quand la commande d'un service avec remplacement passe en Completed ou Partial, vous pouvez envoyer refill. Enregistrez l'ID de remplacement de la réponse et suivez l'avancement avec refill_status.
