API de vérification SMS
Achetez des numéros et lisez les codes SMS avec des requêtes HTTP GET ou POST simples. Les réponses utilisent le format texte des outils d'activation SMS courants, les appels pour numéros privés répondent en JSON.
Premiers pas
- Adresse
- https://snscodes.com/stubs/handler_api.php
- Authentification
- Paramètre api_key. Créez la clé sur la page API de votre compte ; elle n'est affichée qu'une seule fois.
- Limite de débit
- 300 requêtes par minute par clé
- Argent
- Prix et crédit en dollars américains, déduits du même crédit que le site web.
curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getNumber&service=telegram&country=us" # ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123 curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getStatus&id=N-7KQ2M9XWD4" # STATUS_OK:482913
import time, requests
BASE = "https://snscodes.com/stubs/handler_api.php"
KEY = "YOUR_KEY"
r = requests.get(BASE, params={"api_key": KEY, "action": "getNumber", "service": "telegram", "country": "us"}).text
_, num_id, phone = r.split(":")
print("number", phone)
while True:
s = requests.get(BASE, params={"api_key": KEY, "action": "getStatus", "id": num_id}).text
if s.startswith("STATUS_OK"):
print("code", s.split(":")[1]); break
if s == "STATUS_CANCEL":
break
time.sleep(5)const BASE = "https://snscodes.com/stubs/handler_api.php";
const KEY = process.env.SNSCODES_KEY;
const call = async (q) => (await fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...q }))).text();
const [, id, phone] = (await call({ action: "getNumber", service: "telegram", country: "us" })).split(":");
console.log("number", phone);
for (;;) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) { console.log("code", s.split(":")[1]); break; }
if (s === "STATUS_CANCEL") break;
await new Promise((r) => setTimeout(r, 5000));
}Obtenir du crédit action=getBalance
Retourne le crédit de votre compte en dollars américains.
ACCESS_BALANCE:42.50
BAD_KEYLa clé est manquante ou incorrecte.
Prix des codes action=getPrices
Prix par code par pays et service. Les deux filtres sont optionnels.
| Paramètre | Requis | Description |
|---|---|---|
| service | non | Code du service, par exemple telegram |
| country | non | us, gb ou au |
{"us":{"telegram":{"cost":3,"count":100}}}Acheter un numéro pour code action=getNumber
Achète un numéro pour une application. Le prix est déduit de votre crédit immédiatement et remboursé si aucun code n'arrive dans les 20 minutes.
| Paramètre | Requis | Description |
|---|---|---|
| service | oui | Code du service de getPrices |
| country | oui | us, gb ou au |
ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123
BAD_SERVICECode de service inconnu.BAD_COUNTRYLe service n'est pas vendu pour ce pays.NO_BALANCECrédit insuffisant. Aucun prélèvement n'est effectué.NO_NUMBERSAucun numéro disponible actuellement. Aucun prélèvement n'est effectué.NO_ACTIVATIONSVous avez déjà 20 numéros pour code en attente.
Lire le code action=getStatus
Interrogez toutes les 5 à 10 secondes jusqu'à l'arrivée du code.
| Paramètre | Requis | Description |
|---|---|---|
| id | oui | L'id de getNumber |
STATUS_OK:482913
STATUS_WAIT_CODEPas encore de SMS.STATUS_WAIT_RETRY:482913En attente d'un autre code ; le dernier est affiché.STATUS_CANCELAnnulé ou remboursé.NO_ACTIVATIONId inconnu.
Annuler, réessayer ou terminer action=setStatus
status=8 annule un numéro sans code (remboursement intégral), status=3 demande un autre code sur le même numéro, status=6 le termine.
| Paramètre | Requis | Description |
|---|---|---|
| id | oui | L'id de getNumber |
| status | oui | 8, 3 ou 6 |
ACCESS_CANCEL
EARLY_CANCEL_DENIEDUn code est déjà arrivé ; terminez au lieu d'annuler.ACCESS_RETRY_GETEn attente d'un autre code.ACCESS_ACTIVATIONTerminé.
Prix des numéros privés action=getRentPrices
Prix pour toute la période par pays et durée. Retourne du JSON.
| Paramètre | Requis | Description |
|---|---|---|
| country | non | Code pays à deux lettres |
{"us":{"sixMonths":35.99,"twelveMonths":59.99}}Acheter un numéro privé action=getRentNumber
Achète un numéro privé pour une durée. Retourne du JSON.
| Paramètre | Requis | Description |
|---|---|---|
| country | oui | Code pays à deux lettres |
| period | oui | oneMonth, threeMonths, sixMonths, twelveMonths, twoYears ou threeYears |
{"status":"success","id":"N-3HV8QZ2K5M","phone":"14155550123","until":"2027-05-02T10:00:00.000Z"}BAD_PERIODCette durée n'est pas disponible pour ce pays.NO_BALANCECrédit insuffisant.
Lire les SMS d'un numéro privé action=getRentStatus
Tous les SMS reçus par le numéro privé jusqu'à présent. Retourne du JSON.
| Paramètre | Requis | Description |
|---|---|---|
| id | oui | L'id de getRentNumber |
{"status":"success","state":"active","messages":[{"code":"482913","text":"Your code is 482913","from":"Telegram","at":"..."}]}Annuler un numéro privé action=setRentStatus
status=2 annule un numéro privé avec remboursement complet si aucun SMS n'est arrivé et qu'il a moins de 20 minutes.
| Paramètre | Requis | Description |
|---|---|---|
| id | oui | L'id de getRentNumber |
| status | oui | 2 |
{"status":"success"}EARLY_CANCEL_DENIEDUn SMS est arrivé ou 20 minutes se sont écoulées.