208 applications154 pays

API v12026-11-04

Une API JSON pour commander des numéros de vérification et lire les codes SMS.

URL de base https://snsverify.com/api/v1

Tous les chemins sur cette page y sont relatifs. Les montants sont en dollars américains sous forme de chaînes avec deux décimales, les heures sont en UTC (ISO 8601).

Deux formats, un compte

Cette page décrit l'API REST avec JSON. Si votre outil utilise déjà le format d'activation SMS commun (handler_api.php avec les paramètres action=), utilisez l'API d'activation SMS. Les deux partagent votre clé API, les prix, les activations ouvertes et les remboursements.

Aperçu

Une API de vérification SMS permet à votre logiciel d'acheter un numéro de téléphone pour une application, d'attendre le SMS de vérification et de lire le code, sans ouvrir le site web. Chaque commande est une activation : un service, un pays, un numéro et une fenêtre de 20 minutes. Les commandes sans code sont intégralement remboursées à la fin de la fenêtre.

Les requêtes utilisent GET pour la lecture et POST pour les actions. Les corps POST peuvent être des champs de formulaire ou du JSON. Les réponses réussies sont des objets JSON ; les erreurs ont la même forme partout : {"error":{"code":"...","message":"..."}}.

Authentification

Créez une clé API dans la console sous Clé API. Elle n'est affichée qu'une fois ; nous ne conservons qu'une copie brouillée. Envoyez-la dans l'en-tête Authorization en tant que jeton porteur. Un paramètre key est également accepté pour les outils qui ne peuvent pas définir d'en-têtes.

Authorization: Bearer vfk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

La création d'une nouvelle clé remplace immédiatement l'ancienne. Les points de terminaison des services, des pays et des prix fonctionnent sans clé.

Erreurs

HTTPSignification
400Champ manquant ou incorrect (missing_filter, bad_json).
401Aucune clé ou clé incorrecte (no_key, bad_key).
402Crédit insuffisant (no_balance).
404Service, pays, commande ou point de terminaison inconnu.
409La commande ne peut pas faire cela maintenant (has_code, not_ready, too_many_open, no_numbers).
429Plus de 300 requêtes en une minute (rate_limited).

Démarrage rapide

Commander un numéro WhatsApp UK avec curl, puis interroger la commande toutes les quelques secondes jusqu'à ce que le code arrive.

curl -X POST https://snsverify.com/api/v1/orders \
  -H "Authorization: Bearer $SNSVERIFY_KEY" \
  -d service=whatsapp -d country=gb

Python

import os, time, requests

API = "https://snsverify.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSVERIFY_KEY']}"}

order = requests.post(f"{API}/orders", headers=H,
    data={"service": "whatsapp", "country": "gb"}).json()["order"]
print("Use this number:", order["phone"])

while True:
    o = requests.get(f"{API}/orders/{order['id']}", headers=H).json()["order"]
    if o["code"] or o["status"] in ("refunded", "canceled"):
        break
    time.sleep(4)
print("Code:", o["code"])

Node.js

const API = "https://snsverify.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSVERIFY_KEY}` };

const { order } = await fetch(`${API}/orders`, {
  method: "POST", headers: H,
  body: new URLSearchParams({ service: "telegram", country: "nl" }),
}).then((r) => r.json());
console.log("Use this number:", order.phone);

let o = order;
while (!o.code && !["refunded", "canceled"].includes(o.status)) {
  await new Promise((r) => setTimeout(r, 4000));
  ({ order: o } = await fetch(`${API}/orders/${order.id}`, { headers: H }).then((r) => r.json()));
}
console.log("Code:", o.code);

Limites de taux

300 requêtes par minute par clé, et jusqu'à 20 commandes en cours par compte. Interroger une commande toutes les 3 à 5 secondes est largement suffisant : la plupart des codes arrivent en moins d'une minute.

Statuts de commande

  • waiting Le numéro est ouvert et aucun code n'est encore arrivé.
  • received Au moins un code est arrivé ; demandez-en un autre avec resend tant que la fenêtre est ouverte.
  • finished Fermé après un code, par vous ou à la fin de la fenêtre.
  • refunded La fenêtre s'est terminée sans code ; le montant total est revenu sur votre crédit.
  • canceled Vous avez annulé avant qu'un code n'arrive ; le montant total est revenu sur votre crédit.

Points de terminaison

GET/services

Chaque code de service avec son nom, sa catégorie et son prix le plus bas. Aucune clé nécessaire.

{"services":[{"code":"whatsapp","name":"WhatsApp","category":"social","from":"0.31"}]}

GET/countries

Chaque code de pays (ISO, minuscules) avec nom et indicatif. Aucune clé nécessaire.

{"countries":[{"code":"gb","name":"United Kingdom","dial_code":"44"}]}

GET/prices?service=whatsapp&country=gb

Prix en USD. Filtrez par service, pays ou les deux. Aucune clé nécessaire.

{"prices":[{"service":"whatsapp","country":"gb","price":"0.94"}]}

GET/balance

Votre crédit en USD.

{"balance":"25.00","currency":"USD"}

POST/orders

Achète un numéro (HTTP 201). Renvoie la commande avec le numéro de téléphone et l'heure de fin de la fenêtre.

Corps: service=whatsapp&country=gb

{"order":{"id":"AC-7K2M9QX4PB","service":"whatsapp","country":"gb","phone":"+447700900123","price":"0.94","status":"waiting","code":null,"expires_at":"2026-11-04T12:20:00.000Z"},"window_minutes":20}

GET/orders/AC-7K2M9QX4PB

Une commande avec son statut et chaque code reçu. Statuts : waiting, received, finished, refunded, canceled.

{"order":{"id":"AC-7K2M9QX4PB","status":"received","code":"482915","sms":"Your WhatsApp code: 482-915"}}

GET/orders?status=open

Vos commandes en cours ; status=all renvoie les 100 dernières.

{"orders":[{"id":"AC-7K2M9QX4PB","status":"waiting"}]}

POST/orders/AC-7K2M9QX4PB/resend

Demande un autre code sur le même numéro après le premier code, tant que la fenêtre est ouverte. Sans frais supplémentaires.

{"order":{"status":"received","waiting_for_resend":true}}

POST/orders/AC-7K2M9QX4PB/finish

Ferme une commande qui a reçu son code.

{"order":{"status":"finished"}}

POST/orders/AC-7K2M9QX4PB/cancel

Annule avant qu'un code n'arrive. Le montant total revient sur votre crédit.

{"order":{"status":"canceled","refunded":"0.94"}}
API de vérification SMS : REST JSON pour les numéros WhatsApp, Telegram et Google | SNSVerify