API de vérification SMS
L'API SNSSIM gère l'achat de numéros, la vérification de codes, l'annulation et la consultation de crédit et prix en une seule requête HTTP. Compatible avec le standard handler_api, il suffit de changer l'adresse et la clé API dans vos programmes existants.
GET /stubs/handler_api.php
?api_key=API_KEY&action=getNumber
&service=telegram&country=gb
ACCESS_NUMBER:SS8Q2K7:447700900123
GET ...&action=getStatus&id=SS8Q2K7
STATUS_OK:48215- Méthode standard de l'industrie
- handler_api
- Pour chaque clé API
- 300 fois par minute
- Pays / Service
- 145 / 1,255
- Remboursement automatique si aucun code
- 20 minutes
Méthode standard de l'industrie
Pour chaque clé API
Pays / Service
Remboursement automatique si aucun code
Comment obtenir une clé API ?
Générez votre clé dans le menu API de votre compte après connexion. La clé n'est affichée qu'une fois, sauvegardez-la. L'API utilise le même crédit et prix que l'interface web.
Quelle est l'adresse de base ?
Toutes les requêtes sont envoyées en GET à la même adresse avec api_key et action.
https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=...
Quelles requêtes puis-je envoyer ?
7 types de requêtes sont possibles, de l'achat de numéro à la vérification du code, l'annulation et la consultation du crédit.
| action | Rôle | Exemple de réponse |
|---|---|---|
| getBalance | Consulter le solde | ACCESS_BALANCE:12.50 |
| getPrices&service=telegram&country=gb | Prix et numéros disponibles par service et par pays | {"gb":{"telegram":{"cost":0.207,"count":8877728}}} |
| getNumber&service=telegram&country=gb | Achat de numéro | ACCESS_NUMBER:ID:PHONE |
| getStatus&id=ID | Vérifier le code | STATUS_WAIT_CODE / STATUS_OK:CODE |
| setStatus&id=ID&status=8 | Annulation du numéro (remboursement intégral si le code n'est pas reçu) | ACCESS_CANCEL |
| setStatus&id=ID&status=3 | Recevoir un autre code de vérification sur le même numéro | ACCESS_RETRY_GET |
| setStatus&id=ID&status=6 | Terminer | ACCESS_ACTIVATION |
Paramètre
| Nom | Requis | Description |
|---|---|---|
| api_key | Tous | Clé API créée sur l'écran du compte |
| action | Tous | getBalance, getPrices, getNumber, getStatus, setStatus |
| service | getNumber | Code du nom du service (exemple : telegram, whatsapp, google). Identique aux valeurs de la page de liste des services |
| country | getNumber | Code pays à 2 lettres (ex: gb, us, id) |
| id | getStatus, setStatus | ID du numéro obtenu via getNumber (commençant par N) |
| status | setStatus | 8 pour annuler, 3 pour redemander un code, 6 pour terminer, 1 pour prêt |
Texte de réponse et signification
Les réponses sont fournies sous forme de texte concis. La déduction de crédit est également indiquée.
| Réponse | Signification | Argent |
|---|---|---|
| ACCESS_NUMBER:ID:PHONE | Numéro obtenu | Le prix du numéro est débité |
| STATUS_WAIT_CODE | En attente du code | Inchangé |
| STATUS_OK:CODE | Code reçu | Paiement effectué |
| STATUS_WAIT_RETRY:CODE | En attente d'un code de vérification supplémentaire (code précédent inclus) | Sans frais supplémentaires |
| STATUS_CANCEL | Annulé ou délai écoulé | Remboursé en l'absence de code |
| ACCESS_CANCEL | Annulé | Remboursement total |
| ACCESS_RETRY_GET | En attente de réception d'un autre code sur le même numéro | Sans frais supplémentaires |
| ACCESS_ACTIVATION | Utilisation du numéro terminée | Inchangé |
| NO_BALANCE | Rechargez et recevez tout de suite | Non débité |
| NO_NUMBERS | Actuellement, nous ne pouvons pas fournir de numéros pour ce pays. | Non débité |
| NO_ACTIVATIONS | Vous avez 20 numéros ouverts | Non débité |
| EARLY_CANCEL_DENIED | Pour les numéros ayant reçu un code de vérification, choisissez Terminer (6) et non Annuler | Inchangé |
| BAD_KEY | Clé API incorrecte | Non débité |
| BAD_SERVICE / BAD_COUNTRY | Le code de service ou de pays est incorrect | Non débité |
| NO_ACTIVATION | ID de numéro introuvable | Inchangé |
| TOO_MANY_REQUESTS | Limite de 300 par minute dépassée | Non débité |
Quel est l'ordre pour recevoir un code via l'API ?
4 étapes pour recevoir un numéro, l'entrer, vérifier le code et finaliser.
- 1 étapes
Obtenir un numéro
Utilisez getNumber pour sélectionner service et pays afin d'obtenir un numéro.
action=getNumber&service=telegram&country=gb > ACCESS_NUMBER:SS8Q2K7:447700900123
- 2 étapes
Entrez le numéro
Entrez le numéro acheté sur la page d'inscription ou dans le programme.
+44 7700 900123
- 3 étapes
Vérifier le code
Vérifiez l'arrivée du code en appelant getStatus toutes les 5 secondes.
action=getStatus&id=SS8Q2K7 > STATUS_OK:48215
- 4 étapes
Terminer
Après avoir entré le code, terminez avec setStatus 6. Remboursement automatique si aucun code sous 20 minutes.
action=setStatus&id=SS8Q2K7&status=6 > ACCESS_ACTIVATION
Exemples par langage
Voici le processus complet pour recevoir un numéro, attendre le code et finaliser. Cliquez sur l'onglet pour changer la langue.
# Balance
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=getBalance"
# Get a number (Telegram, United Kingdom)
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=getNumber&service=telegram&country=gb"
# ACCESS_NUMBER:N-8Q2K7XLM:447700900123
# Check the code (every 5 seconds)
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=getStatus&id=N-8Q2K7XLM"
# STATUS_WAIT_CODE or STATUS_OK:48215
# Finish (6) / Cancel (8, full refund before a code)
curl "https://snssim.com/stubs/handler_api.php?api_key=API_KEY&action=setStatus&id=N-8Q2K7XLM&status=6"import time, requests
BASE = "https://snssim.com/stubs/handler_api.php"
KEY = "API_KEY"
def call(**p):
return requests.get(BASE, params={"api_key": KEY, **p}, timeout=30).text
r = call(action="getNumber", service="telegram", country="gb")
if not r.startswith("ACCESS_NUMBER"):
raise SystemExit(r)
_, num_id, phone = r.split(":")
print("Number:", phone)
for _ in range(240): # 20 minutes
s = call(action="getStatus", id=num_id)
if s.startswith("STATUS_OK"):
print("Code:", s.split(":")[1])
call(action="setStatus", id=num_id, status=6)
break
time.sleep(5)// Node.js 18+
const BASE = "https://snssim.com/stubs/handler_api.php";
const KEY = "API_KEY";
const call = (p) => fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...p })).then((r) => r.text());
const r = await call({ action: "getNumber", service: "telegram", country: "gb" });
if (!r.startsWith("ACCESS_NUMBER")) throw new Error(r);
const [, id, phone] = r.split(":");
console.log("Number:", phone);
for (let i = 0; i < 240; i++) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) {
console.log("Code:", s.split(":")[1]);
await call({ action: "setStatus", id, status: "6" });
break;
}
await new Promise((ok) => setTimeout(ok, 5000));
}<?php
$base = "https://snssim.com/stubs/handler_api.php";
$key = "API_KEY";
function call($p) { global $base, $key;
return file_get_contents($base . "?" . http_build_query(["api_key" => $key] + $p)); }
$r = call(["action" => "getNumber", "service" => "telegram", "country" => "gb"]);
if (strpos($r, "ACCESS_NUMBER") !== 0) exit($r);
[, $id, $phone] = explode(":", $r);
echo "Number: $phone\n";
for ($i = 0; $i < 240; $i++) {
$s = call(["action" => "getStatus", "id" => $id]);
if (strpos($s, "STATUS_OK") === 0) {
echo "Code: " . explode(":", $s)[1] . "\n";
call(["action" => "setStatus", "id" => $id, "status" => 6]);
break;
}
sleep(5);
}package main
import ("fmt"; "io"; "net/http"; "net/url"; "strings"; "time")
const base = "https://snssim.com/stubs/handler_api.php"
const key = "API_KEY"
func call(p url.Values) string {
p.Set("api_key", key)
r, _ := http.Get(base + "?" + p.Encode())
defer r.Body.Close()
b, _ := io.ReadAll(r.Body)
return string(b)
}
func main() {
r := call(url.Values{"action": {"getNumber"}, "service": {"telegram"}, "country": {"gb"}})
if !strings.HasPrefix(r, "ACCESS_NUMBER") { fmt.Println(r); return }
f := strings.Split(r, ":")
fmt.Println("Number:", f[2])
for i := 0; i < 240; i++ {
s := call(url.Values{"action": {"getStatus"}, "id": {f[1]}})
if strings.HasPrefix(s, "STATUS_OK") {
fmt.Println("Code:", strings.Split(s, ":")[1])
call(url.Values{"action": {"setStatus"}, "id": {f[1]}, "status": {"6"}})
return
}
time.Sleep(5 * time.Second)
}
}import java.net.URI; import java.net.URLEncoder; import java.net.http.*;
import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.stream.Collectors;
public class SNSSIM {
static final String BASE = "https://snssim.com/stubs/handler_api.php", KEY = "API_KEY";
static final HttpClient http = HttpClient.newHttpClient();
static String call(Map<String, String> p) throws Exception {
String q = p.entrySet().stream().map(e -> e.getKey() + "=" + URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8)).collect(Collectors.joining("&"));
return http.send(HttpRequest.newBuilder(URI.create(BASE + "?api_key=" + KEY + "&" + q)).build(), HttpResponse.BodyHandlers.ofString()).body();
}
public static void main(String[] a) throws Exception {
String r = call(Map.of("action", "getNumber", "service", "telegram", "country", "gb"));
if (!r.startsWith("ACCESS_NUMBER")) { System.out.println(r); return; }
String[] f = r.split(":");
System.out.println("Number: " + f[2]);
for (int i = 0; i < 240; i++) {
String s = call(Map.of("action", "getStatus", "id", f[1]));
if (s.startsWith("STATUS_OK")) { System.out.println("Code: " + s.split(":")[1]); call(Map.of("action", "setStatus", "id", f[1], "status", "6")); return; }
Thread.sleep(5000);
}
}
}using System.Net.Http;
const string Base = "https://snssim.com/stubs/handler_api.php";
const string Key = "API_KEY";
var http = new HttpClient();
async Task<string> Call(string q) => await http.GetStringAsync($"{Base}?api_key={Key}&{q}");
var r = await Call("action=getNumber&service=telegram&country=gb");
if (!r.StartsWith("ACCESS_NUMBER")) { Console.WriteLine(r); return; }
var f = r.Split(':');
Console.WriteLine($"Number: {f[2]}");
for (var i = 0; i < 240; i++)
{
var s = await Call($"action=getStatus&id={f[1]}");
if (s.StartsWith("STATUS_OK"))
{
Console.WriteLine($"Code: {s.Split(':')[1]}");
await Call($"action=setStatus&id={f[1]}&status=6");
break;
}
await Task.Delay(5000);
}FAQ sur l'API
L'API propose des numéros dans 145 pays et 1,255 services aux mêmes prix que l'interface web.
- Qu'est-ce qu'une API de vérification SMS ?
- Fonctionnalité pour acheter des numéros, vérifier des codes et annuler via requêtes HTTP. L'API SNSSIM utilise le standard handler_api.
- Puis-je utiliser le même programme que sur d'autres sites de vérification SMS ?
- Pour les programmes utilisant handler_api, modifiez simplement l'URL de base et la clé API pour vous connecter.
- Y a-t-il des frais supplémentaires pour l'API ?
- Aucune différence. L'API et l'interface web utilisent les mêmes crédits et prix.
- Combien de demandes sont possibles ?
- 300 requêtes maximum par minute par clé API. Dépassement : erreur TOO_MANY_REQUESTS sans déduction de crédit.
- Les numéros achetés via l'API sont-ils remboursables ?
- Oui. Si le code n'arrive pas dans les 20 minutes, le numéro acheté via API est automatiquement remboursé en crédit.
- Où créer une clé API ?
- Générez-la dans le menu API de votre compte après connexion. La clé n'est affichée qu'une fois à la création, sauvegardez-la immédiatement.
Créez une clé API et connectez-vous immédiatement
Après inscription et recharge de crédit, vous pouvez générer une clé API directement depuis votre compte.