sms.tcsms.tc

Documentation de l'API

Automatisez l'achat de numéros et la vérification par SMS sur sms.tc. Deux interfaces : une API REST moderne et un endpoint compatible SMS-Activate prêt à l'emploi — connectez votre logiciel SMS-Activate existant à sms.tc sans modifier une ligne de code.

Présentation

sms.tc est un agrégateur multi-fournisseurs : une seule API vous donne accès aux numéros de plusieurs fournisseurs en amont, avec nos tarifs appliqués. Vous pouvez utiliser l'interface la mieux adaptée à votre stack.

REST API

JSON via HTTP. Recommandé pour les nouvelles intégrations.

https://sms.tc/api/v1
SMS-Activate

Protocole en texte brut compatible avec les clients SMS-Activate.

https://sms.tc/stubs/handler_api.php

Obtenir une clé API

  1. 1Connectez-vous et ouvrez la page Profil → API.
  2. 2Générez une clé. Elle n'est affichée qu'une seule fois — copiez-la et conservez-la en lieu sûr.
  3. 3La régénération révoque l'ancienne clé et vous envoie la nouvelle par e-mail. Vous pouvez éventuellement restreindre une clé à certaines adresses IP et définir une date d'expiration.
Obtenir votre clé API

Authentification

Chaque requête doit inclure votre clé API. L'API REST la lit depuis un en-tête ; l'endpoint SMS-Activate la lit depuis le paramètre de requête api_key.

REST

Authorization: Bearer smstc_live_xxxX-Api-Key: smstc_live_xxx

SMS-Activate

?api_key=smstc_live_xxx

Concepts clés

Codes canoniques

Les pays utilisent les identifiants numériques de SMS-Activate (0=Russie, 1=Ukraine…) et les services des codes courts (tg, wa, ig…). Retrouvez-les via les endpoints catalog / getCountries / getServicesList.

Devise

Tous les prix et soldes sont exprimés en USD (ISO 840).

Solde

Les achats sont débités de votre solde sms.tc. Les activations échouées ou expirées sont remboursées automatiquement.

Taux de réussite SMS (rate)

Les réponses des offres peuvent inclure rate : la part de nos propres activations clôturées ayant reçu un SMS (en %, ou null). Calculé par fournisseur + service + pays, affiché uniquement à partir de 10 activations clôturées, actualisé une fois par jour. Utilisez /activations/offers/providers pour le détail par fournisseur.

API REST

URL de base https://sms.tc/api/v1. Authentifiez-vous avec un en-tête Bearer / X-Api-Key. Les réponses sont au format JSON.

GET/activations/offersList available numbers (service → country → price/count/rate).
GET/activations/offers/providersPer-provider offers (provider, operator, price, stock, SMS success rate). Requires service + country.
POST/activationsBuy a number. Body: { service, country, operator? }.
GET/activations/{id}Get activation status + received SMS code.
GET/emailsList email activations.
POST/emailsBuy an email activation. Body: { site, domain }.
POST/emails/batchBuy email activations in bulk (count 1–10).
GET/emails/{id}Check an email activation.
DELETE/emails/{id}Cancel an email activation.
POST/emails/{id}/reorderReorder an email activation.
GET/emails/domainsList available email domains.
GET/catalog/countriesCanonical country list (SMS-Activate ids).
GET/catalog/servicesCanonical service list (short codes).
GET/catalog/pricesPrices by country/service, incl. SMS success rate (rate).
GET/rent/offersRentable services for a country + duration.
POST/rentRent a number. Body: { service, country, duration }.
GET/rent/{id}Get a rent order + its SMS.
POST/rent/{id}/prolongExtend a rent. Body: { duration }.
Exemple · cURL
# 1) Lister les numéros disponibles
curl https://sms.tc/api/v1/activations/offers \
  -H "Authorization: Bearer smstc_live_xxx"

# 2) Acheter un numéro (Telegram, pays 6)
curl -X POST https://sms.tc/api/v1/activations \
  -H "Authorization: Bearer smstc_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"service":"tg","country":6}'

# 3) Vérifier le code
curl https://sms.tc/api/v1/activations/123456 \
  -H "X-Api-Key: smstc_live_xxx"

API compatible SMS-Activate

Un endpoint unique, /stubs/handler_api.php, piloté par le paramètre de requête action — il reproduit le protocole SMS-Activate afin que les logiciels partenaires existants fonctionnent sans modification. Les réponses sont en texte brut (ou en JSON pour les actions V2 / de liste).

actionRetourne
getBalanceACCESS_BALANCE:12.50
getNumberACCESS_NUMBER:<id>:<phone>
getNumberV2JSON (activationId, phoneNumber, …)
getStatusSTATUS_WAIT_CODE · STATUS_OK:<code>
getStatusV2JSON (sms, call, …)
setStatusACCESS_READY · ACCESS_RETRY_GET · ACCESS_ACTIVATION · ACCESS_CANCEL
getActiveActivationsJSON (active list)
getHistoryJSON (history)
getPricesJSON (prices by country/service)
getCountriesJSON (countries)
getServicesListJSON (services)
getOperatorsJSON (operators)
getAllSmsJSON (all SMS for an activation)
finishActivation204
cancelActivation204
reactivate / reactivateOptionsJSON · provider-dependent
getRentNumber / getRentServicesAndCountries / serviceCountRentJSON · provider-dependent
prolong / prolongOptions / prolongHistoryJSON · rent only

setStatus

1 signaler prêt3 demander un autre SMS6 terminer l'activation8 annuler et rembourser
Exemple
# Obtenir un numéro
GET https://sms.tc/stubs/handler_api.php?api_key=smstc_live_xxx&action=getNumber&service=tg&country=6
→ ACCESS_NUMBER:123456:628712345678

# Vérifier le statut / le code
GET https://sms.tc/stubs/handler_api.php?api_key=smstc_live_xxx&action=getStatus&id=123456
→ STATUS_OK:12345

# Terminer (6) ou annuler (8)
GET https://sms.tc/stubs/handler_api.php?api_key=smstc_live_xxx&action=setStatus&id=123456&status=8
→ ACCESS_CANCEL

Codes d'erreur

L'endpoint SMS-Activate renvoie des jetons en texte brut (HTTP 200). L'API REST renvoie du JSON avec un statut HTTP et un code d'erreur.

NO_KEYLa clé API est manquante.
BAD_KEYLa clé API est invalide, expirée ou non autorisée pour votre adresse IP.
BAD_ACTIONParamètre action inconnu.
BAD_SERVICECode de service inconnu.
NO_NUMBERSAucun numéro disponible pour ce service/pays.
NO_BALANCESolde insuffisant.
WRONG_ACTIVATION_IDL'identifiant d'activation est manquant ou mal formé.
NO_ACTIVATIONActivation introuvable pour votre compte.
BAD_STATUSValeur setStatus invalide.
EARLY_CANCEL_DENIEDAnnulation impossible pour le moment (durée minimale de réservation non écoulée).
ACTION_NOT_AVAILABLECette action n'est pas disponible pour le fournisseur sélectionné.

Spécification

La spécification complète lisible par machine et un guide de démarrage sont disponibles ci-dessous.