Développeurs · Interface machine
API REST v2
La même API qu'un agent appelle, et que vous pouvez appeler aussi. Un seul endpoint JSON, clé + action. Votre code cherche le catalogue, confirme le prix, puis passe la commande. Le tableau de bord et le serveur MCP tournent sur exactement cette interface.
Boîte à outils sur GitHub : serveur MCP, CLI et SDK pour que votre agent lise le catalogue, vérifie le prix avec get_service et ne passe la commande qu'après votre confirmation.
Open source sur GitHubVue d'ensemble
C'est l'interface qu'un agent IA pilote. Chaque appel est un verbe choisi par action, pour qu'un agent cherche le catalogue, relise le tarif et les limites, puis agisse : chercher-puis-agir, avec le prix confirmé avant que le moindre argent ne bouge. Le serveur MCP et la CLI enveloppent ces mêmes appels ; cette page est le protocole brut en dessous.
L'API suit la forme largement adoptée de la SMM API v2, de sorte que les logiciels de panel, scripts et intégrations d'agents existants fonctionnent avec un minimum de modifications. Chaque opération passe par un endpoint unique et choisit le verbe avec le paramètre action. Les réponses sont en JSON. Faciles à analyser et à enchaîner pour un script ou un LLM.
Endpoint
POST https://api.socialgo.com/api/v2
Authentification
L'authentification se fait par requête, pas de session, pas de handshake, c'est exactement ce qui la rend appelable par un agent. Envoyez votre key secrète à chaque appel. Trouvez-la et faites-la pivoter dans le tableau de bord, sous Compte → API. Traitez la clé comme un mot de passe : gardez-la côté serveur, jamais dans le code client ni dans un prompt d'agent.
Format de la requête
Envoyez des paramètres de formulaire application/x-www-form-urlencoded en POST. Chaque réponse est en JSON. Deux paramètres sont présents à chaque appel :
key: votre clé API (obligatoire)action: le verbe à exécuter (obligatoire)
Format d'erreur
En cas d'échec, la réponse contient un champ error avec un message lisible, et le code de statut HTTP reflète le problème (par exemple 400 requête incorrecte, 401 clé invalide). Une seule forme prévisible, pour qu'un script ou un agent puisse brancher dessus sans deviner.
{
"error": "Incorrect request"
}Actions
Chaque verbe fait une seule chose. Un agent les enchaîne dans l'ordre : services pour trouver quoi acheter, add pour l'acheter, status pour le suivre. Les appels de lecture (services, status, balance) lui permettent de confirmer prix et fonds avant que les appels d'écriture (add, refill, cancel) ne dépensent quoi que ce soit.
1. Liste des services
Le catalogue qu'un agent lit en premier : chaque service qu'il peut commander, avec l'ID du service, la catégorie, le tarif (prix pour 1000) et les quantités min/max. Il utilise les ID service renvoyés pour passer des commandes, et le tarif pour confirmer le coût avant de dépenser.
Requête
key=YOUR_API_KEY action=services
Réponse
[
{
"service": 1,
"name": "Instagram Followers",
"type": "Default",
"category": "Instagram",
"rate": "0.90",
"min": "50",
"max": "10000",
"refill": true,
"cancel": true
},
{
"service": 2,
"name": "Instagram Likes",
"type": "Default",
"category": "Instagram",
"rate": "0.40",
"min": "10",
"max": "20000",
"refill": false,
"cancel": true
}
]2. Ajouter une commande
L'appel d'écriture. Passe une commande pour un service. Fournissez l'ID service, le link cible et la quantity. La réponse renvoie le nouvel ID order à suivre. Un agent ne l'exécute qu'après avoir confirmé le tarif et les limites.
Paramètres
service: ID du service issu de la liste des serviceslink: l'URL de la publication / du profil / de la chaînequantity: nombre d'unités à livrer
Requête
key=YOUR_API_KEY action=add service=1 link=https://instagram.com/example quantity=1000
Réponse
{
"order": 23501
}3. Ajouter une commande : drip-feed
Répartit une commande en plusieurs livraisons plus petites étalées dans le temps, pour une courbe plus régulière. Définissez runs (combien de livraisons) et interval (minutes entre chacune). Le total livré est quantity × runs : le calcul qu'un agent utilise pour dimensionner une campagne sans que vous le fassiez à la main.
Paramètres supplémentaires
runs: nombre de cycles de livraisoninterval: minutes entre chaque cycle
Requête
key=YOUR_API_KEY action=add service=1 link=https://instagram.com/example quantity=1000 runs=10 interval=60
Réponse
{
"order": 23502
}4. Statut de la commande
Renvoie l'état actuel d'une commande : montant débité, compteur de départ, statut, quantité restante et devise. C'est ainsi qu'un agent surveille une commande sans que vous rafraîchissiez le tableau de bord, et qu'il repère une baisse à signaler pour recharge.
Requête
key=YOUR_API_KEY action=status order=23501
Réponse
{
"charge": "0.90",
"start_count": "4250",
"status": "In progress",
"remains": "200",
"currency": "USD"
}Valeurs possibles de status : Pending, In progress, Processing, Completed, Partial, Canceled.
5. Statut de plusieurs commandes
Vérifiez plusieurs commandes en un seul appel. Passez une liste d'ID séparés par des virgules dans le paramètre orders. La réponse est indexée par ID de commande, pour qu'un agent interroge toute une campagne en un seul aller-retour au lieu d'un appel par commande.
Requête
key=YOUR_API_KEY action=status orders=23501,23502,23503
Réponse
{
"23501": {
"charge": "0.90",
"start_count": "4250",
"status": "Completed",
"remains": "0",
"currency": "USD"
},
"23502": {
"charge": "9.00",
"start_count": "1200",
"status": "In progress",
"remains": "500",
"currency": "USD"
},
"23503": {
"error": "Incorrect order ID"
}
}6. Recharge
Demande une recharge pour une commande dont le service la prend en charge (refill: true dans la liste des services) et renvoie un ID de recharge à suivre. Passez une seule order ou une liste orders séparée par des virgules, pour qu'un agent puisse demander des recharges en masse après qu'une vérification de statut a signalé des baisses.
Requête (unique)
key=YOUR_API_KEY action=refill order=23501
Réponse
{
"refill": 4001
}Requête (multiple)
key=YOUR_API_KEY action=refill orders=23501,23502
Réponse
[
{ "order": 23501, "refill": 4001 },
{ "order": 23502, "refill": { "error": "Refill not available" } }
]7. Annuler
Demande l'annulation de commandes pas encore traitées (services avec cancel: true). Passez une liste orders séparée par des virgules ; la réponse indique le résultat pour chaque commande. L'annulation qu'un agent dégaine quand quelque chose est mis en file par erreur.
Requête
key=YOUR_API_KEY action=cancel orders=23501,23502
Réponse
[
{ "order": 23501, "cancel": 1 },
{ "order": 23502, "cancel": { "error": "Incorrect order ID" } }
]8. Solde
Renvoie le solde et la devise de votre compte. Un agent le lit pour conditionner la dépense avant de passer une commande, et votre propre panel le lit pour afficher les fonds. L'appel le moins coûteux pour confirmer qu'il y a de quoi dépenser.
Requête
key=YOUR_API_KEY action=balance
Réponse
{
"balance": "182.45",
"currency": "USD"
}Appelez-la depuis n'importe quoi
Un seul endpoint, de simples paramètres de formulaire, pour qu'un shell, une tâche cron ou un agent puisse le piloter de la même façon. Voici une commande complète passée depuis la ligne de commande :
curl -X POST https://api.socialgo.com/api/v2 \ -d "key=YOUR_API_KEY" \ -d "action=add" \ -d "service=1" \ -d "link=https://instagram.com/example" \ -d "quantity=1000"
Notes et bonnes pratiques
- Lisez avant d'écrire. Appelez
services(oubalance) pour confirmer le tarif, les limites et les fonds, puis appelezadd: le même garde-fou chercher-puis-agir qu'utilisent le tableau de bord et le serveur MCP pour que rien ne dépense sans un prix confirmé. - Mettez en cache la liste des services et actualisez-la régulièrement, les ID, tarifs et limites changent.
- Validez les quantités
min/maxavant de soumettre une commande pour éviter les appels rejetés. - Interrogez le statut par lots avec l'appel multi-commandes plutôt qu'une requête par commande.
- Gardez votre clé côté serveur. Si elle est jamais exposée, faites-la pivoter immédiatement depuis le tableau de bord.