SMS Nitro

Vérification par SMS en Python

Un script complet avec la bibliothèque requests : il achète un numéro temporaire, attend le code et clôture la commande. Aucun SDK nécessaire.

Comment recevoir un code de vérification par SMS en Python ?

Utilisez requests avec l’en-tête X-Api-Key : POST /v1/orders pour obtenir le numéro, interrogez GET /v1/orders/{id} toutes les 4 secondes jusqu’à ce que messages contienne le SMS, lisez messages[-1]["code"] puis appelez POST finish. Si rien n’arrive à temps, appelez POST cancel pour libérer le montant réservé.

Préparation

  • Python 3.8 ou plus récent.
  • pip install requests
  • Exportez la clé : export SMSNITRO_API_KEY=...

Script complet

activation.py
import os
import time
import requests

API = "https://smsnitro.com/api/v1"
session = requests.Session()
session.headers["X-Api-Key"] = os.environ["SMSNITRO_API_KEY"]


def api(method, path, **kw):
    r = session.request(method, API + path, timeout=30, **kw)
    if r.status_code >= 400:
        raise RuntimeError(f"{r.status_code}: {r.json().get('detail')}")
    return r.json()


print("Balance:", api("GET", "/balance")["balance"], "USD")

order = api("POST", "/orders", json={"product": "telegram", "country": "usa"})
print("Number:", order["phone"], "order", order["id"])

deadline = time.time() + 600  # numbers stay reserved for up to 20 minutes
while time.time() < deadline:
    order = api("GET", f"/orders/{order['id']}")
    if order["messages"]:
        print("Code:", order["messages"][-1]["code"])
        api("POST", f"/orders/{order['id']}/finish")
        break
    if order["status"] in ("CANCELED", "TIMEOUT", "BANNED", "FINISHED"):
        print("Ended without SMS:", order["status"], "(not charged)")
        break
    time.sleep(4)  # poll every 3 to 5 seconds
else:
    api("POST", f"/orders/{order['id']}/cancel")  # refund the frozen amount
    print("No SMS: cancelled and refunded")

Fonctionnement du script

  • Une requests.Session conserve la connexion et l’en-tête de la clé pour tous les appels.
  • Toute réponse 4xx ou 5xx lève une exception avec le message detail de l’API.
  • Il interroge toutes les 4 secondes pendant 10 minutes au plus, puis annule : un SMS qui n’arrive pas ne coûte rien.
  • Remplacez product et country par l’application et le pays voulus ; GET /v1/services liste les options.

Pages associées

Recevez votre code de vérification maintenant

Créditez à partir de 5 USD, choisissez l'application et le pays, lisez le SMS dans votre navigateur. Débité uniquement quand le code arrive.

Obtenir un numéro