Grand SMS
Documentation API

Documentation API

Commencez par une seule demande

14 · Commandes APIREST + handler_api.phpJSON / plain text · Bearer

Créez une clé API dans votre tableau de bord, obtenez un numéro et vérifiez les messages toutes 10 secondes. Le paiement est crédité lorsqu’un SMS avec un code arrive ; le rélectrement ne affecte pas votre solde.

REST APIhttps://smscash.org/api/v1
Compatibilité API base URLhttps://smscash.org/stubs/handler_api.php
Le service est en vienuméros de téléphone, SMS Les revenus sont disponibles, les retraites sont disponibles USDT sur TRC20Les paiements se font entre 1 et 45 Les jours.
Exemple de demande · cURL
curl --get 'https://smscash.org/stubs/handler_api.php' \
  --data-urlencode 'api_key=YOUR_API_KEY' \
  --data-urlencode 'action=getNumber' \
  --data-urlencode 'service=go' \
  --data-urlencode 'country=86'

Adresse d'interface compatible alternative : /handler_api.php. Les intégrations REST existantes continuent de fonctionner.

API

Générateur de requêtes

cURL · Go · JS · Python
Compatibilité API base URLhttps://smscash.org/stubs/handler_api.php
cURL
curl --max-time 15 --fail-with-body 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'

La clé n’est pas enregistrée. Cette vérification n’attribue aucun numéro.

REST pour de nouvelles intégrations

Services et pays

Choisissez un service et un pays. La rémunération par SMS dépend du pays.

REST
GET /api/v1/catalog?service=go&country=86&page=1&page_size=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "offer_id": 42,
      "service": "go",
      "service_name": "Google",
      "country_id": 86,
      "country_name": "Italy",
      "provider_id": 1,
      "operator": 1,
      "provider_name": "operator=1",
      "reward": "0.00300000",
      "currency": "USD",
      "accounting_precision": 8,
      "earnings_hold_days": 45
    }
  ],
  "page": 1,
  "page_size": 100,
  "total": 1,
  "pages": 1,
  "has_more": false,
  "accounting_precision": 8
}

service · country · operator · q · page · page_size (1–100)

Obtenez un numéro
handler_api.php
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86

Sélection automatique : un opérateur disponible au hasard.

REST
ACCESS_NUMBER: session ID · phone number
service + country · session_duration: 20
ref: software owner code (optional)
operator: public ID (e.g. 1) or comma-separated IDs (e.g. "1,3")
optional · omitted/any/0: random eligible provider
country: integer · service: string · SMS code: string

Le nombre est valide pendant 20 minutes. SMS est vérifié tous les 10 secondes. Vous pouvez annuler immédiatement.

Vérifier plusieurs numéros
REST
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "id": 42,
      "found": true,
      "phone": "12025550123",
      "status": "received",
      "service": "go",
      "country_id": 86,
      "provider_id": 1,
      "operator": 1,
      "expires_at": "2026-10-10T12:15:00Z",
      "sms_count": 1,
      "code": "001234",
      "last_sms": {
        "id": 101,
        "code": "001234",
        "sender": "Service",
        "text": "Code: 001234",
        "received_at": "2026-10-10T12:01:00Z"
      }
    },
    {
      "id": 43,
      "found": false,
      "error": {
        "code": "NO_ACTIVATION",
        "message": "Session not found."
      }
    }
  ],
  "as_of": "2026-10-10T12:01:00Z",
  "poll_interval_seconds": 10
}
REST
ids: 1–100 positive session IDs, separated by commas
Input order preserved · duplicates removed
Foreign, unavailable or out-of-scope IDs: found=false
Read only · no supplier requests · last_sms is the latest message
Solde · Bloqué
REST
GET /api/v1/balance
Authorization: Bearer YOUR_API_KEY
JSON
{
  "currency": "USD",
  "accounting_precision": 8,
  "balance": "12.00000000",
  "held_balance": "34.50000001",
  "balance_minor": "1200000000",
  "held_minor": "3450000001",
  "as_of": "2026-10-12T20:00:00Z",
  "next_release_at": "2026-11-26T20:00:00Z"
}

balance — Disponible; held_balance — Bloqué. USD · 8

Seuls les fonds dont la durée de blocage est terminée peuvent être retirés.

Clients prêts à l’emploi

JavaScript · Node.js 18+
import {SmScash, SmScashError} from './smscash.mjs';

const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);

const messages = await api.sms(42, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([42]);
const held = await api.holdBalance();
console.log(held); // Exact USD string
Python 3.9+
import os
from smscash import SmScash, SmScashError

api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])

messages = api.sms(42, after_id=0)
print(messages['sms'])
statuses = api.batch([42])
held = api.hold_balance()
print(held) # Exact USD string
SDK
me() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
setStatus(id, "cancel") / set_status(id, "cancel")
Timeout: 15 s · no dependencies · no automatic retries
Error: code · status · hint · requestId/request_id · retryable
ALLOCATION_UNCERTAIN: contact support with request_id; never retry automatically.

SMS-Activate / HeroSMS

SMS-Activate · Compatibilité API base URLhttps://smscash.org/sms-activate/stubs/handler_api.php
HeroSMS · Compatibilité API base URLhttps://smscash.org/hero-sms/stubs/handler_api.php

Clé API personnelle de l’utilisateur.

Choisissez un service et un pays. La rémunération par SMS dépend du pays.

CoderDescriptif
getNumber / getNumberV2Obtenez un numéro
getStatus / getStatusV2Obtenez le dernier code
setStatus / finishActivation / cancelActivationGérer la session
getPrices / getNumbersStatusVérifier la disponibilité
getRewards (SMScash)Récompense pour SMS
getServicesList / getServicesPrestations
getCountries / getOperatorsServices et pays
getActiveActivationsSéances
getBalanceSolde de l’utilisateur
getHoldBalance (SMScash)Bloqué

cost = 0 USD · activationCost = 0 USD
reward — Récompense pour SMS

HeroSMS · cURL
curl --get 'https://smscash.org/hero-sms/stubs/handler_api.php' \
  --data-urlencode 'api_key=YOUR_API_KEY' \
  --data-urlencode 'action=getNumberV2' \
  --data-urlencode 'service=go' \
  --data-urlencode 'country=86'
Réponses
{
  "activationId": "42",
  "phoneNumber": "393331234567",
  "activationCost": 0,
  "currency": 840,
  "countryCode": 86,
  "canGetAnotherSms": true,
  "activationTime": "2026-10-11T12:00:00Z",
  "activationEndTime": "2026-10-11T12:15:00Z",
  "reward": "0.00300000"
}
SMS-Activate / HeroSMS
GET or POST application/x-www-form-urlencoded
api_key · action · service · country · ref (optional)
setStatus: 1 → ACCESS_READY · 3 → ACCESS_RETRY_GET
           6 → ACCESS_ACTIVATION · 8 → ACCESS_CANCEL
getStatus: STATUS_WAIT_CODE · STATUS_OK:001234 · STATUS_CANCEL
getStatusV2: {"verificationType":1,"sms":null,"call":null}
getServicesList: {"status":"success","services":[{"code":"go","name":"Google"}]}
getCountries: {"86":{"id":86,"eng":"Italy","visible":1,"retry":1,"rent":0}}
getPrices: {"86":{"go":{"cost":0,"count":12,"reward":"0.00300000","currency":"USD"}}}
getRewards: {"59":{"vi":{"1":"0.01000000"}}}
getRewards filters: country · service · operator (optional, e.g. 1,3); any/0: all permitted providers
getActiveActivations: start=0 · limit=1–100 · activeActivations / data
Business/key errors: HTTP 200 + plain text · server errors: HTTP 500
Availability: actual supplier pool, shared cache up to 20 s; not a reservation
No automatic retries after a transport error or ALLOCATION_UNCERTAIN.
Unsupported: rent · calls · forwarding · multiple services per number · prolong
Unsupported options return BAD_REQUEST; unsupported actions return BAD_ACTION.
SMScash keys and country/service codes; configure this base URL in your software.

Le nombre est valide pendant 20 minutes. SMS est vérifié tous les 10 secondes. Vous pouvez annuler immédiatement.

Authentification et nouvelles tentatives

REST: en-tête Authorization: Bearer YOUR_API_KEY. Interfaces compatibles : paramètres api_key et action. Utilisez HTTPS.

Pour gérer les clés API, entrez votre compte.

∞requêtes/min par compte
∞séances simultanées

La fréquence des requêtes et le nombre de numéros de téléphone sont illimités. Il n’existe aucun quota journalier ou horaire.

Le nombre est valide pendant 20 minutes. SMS est vérifié tous les 10 secondes. Vous pouvez annuler immédiatement.

Portée de la clé API

Vous pouvez associer une clé à des services, pays et fournisseurs précis. Les listes vides autorisent toutes les options disponibles.

JSON
{
  "label": "Mon logiciel",
  "policy": {
    "services": [
      "go"
    ],
    "countries": [
      86
    ],
    "providers": [
      1
    ]
  }
}

PATCH /api/v1/keys/{id} change entièrement le nom et policy. Le secret n'est affiché qu'une fois créé.

10% au total. 5% + 5% avec code logiciel.

Lors de l'émission d'un numéro, veuillez fournir ref propriétaire du logiciel. La demande est autorisée par la clé de l'utilisateur testamentaire. Le code est dans la section "Références" et dans GET /api/v1/referrals → software_ref.

DemandeParrainLogiciel
Sans ref10%—
Avec ref5%5%
Avec ref, pas de référent—5%

La plateforme verse la prime sans réduire les revenus du utilisateur. Le propriétaire du logiciel et le référent peuvent être la même personne. Un utilisateur ne peut pas utiliser son propre code.

Les termes sont fixés lors de la création d’une session ; la lecture de SMS et retry ne les modifie pas. Passer ref à nouveau permet une nouvelle session de répétition. Dans le calcul du tarif, une récompense pour le utilisateur de USD 0.003 donne USD 0.00015 chacun au propriétaire et au référent du logiciel. Le bonus total est USD 0.00030.

Commandes API

11 méthodes de style XVBC plus votre balance SMScash.

GETgetNumberObtenez un numéro

Crée une session et réserve un numéro disponible pour l’utilisateur. Le tarif et les bénéficiaires des primes de parrainage sont fixés lors de l’attribution ; la rémunération est créditée à la réception d’un SMS contenant un code.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
service*stringCodes de service disponibles. La réponse est limitée à la zone de la clé API.
country*integerPrenez ID de getCountries.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0
session_durationintegerLa séance dure 20 minutes. Passer 20 ou omettre ce paramètre.
with_operatorinteger1 ajoute l’ID de l’opérateur à la réponse ; 0 ou son omission renvoie trois segments.
refstringПубличный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getNumber.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'

Réponses

Numéro émis
ACCESS_NUMBER:42:380670000000:1
Aucun numéro disponible
EMPTY_POOL
  • Sélection automatique : un opérateur disponible au hasard.
  • Un pays numérique sans pool donne EMPTY_POOL ; le mauvais format de pays est BAD_COUNTRY.
  • La clé d’une session supprimée reste utilisée : la réinitialisation de l’allocation avec cette clé renvoie SESSION_CLOSED et ne génère pas un autre numéro.
  • Le résultat de l’attribution n’est pas confirmé. La relance automatique est désactivée pour éviter d’attribuer un deuxième numéro.
GETgetNumbersStatusVérifier la disponibilité

Nombre de numéros de téléphone disponibles par service et pays.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
country*integerPrenez ID de getCountries.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getNumbersStatus.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86'

Réponses

Numéros disponibles
{
  "go_0": 0
}
  • Le suffixe _0 signifie un choix sans opérateur spécifique.
  • La disponibilité concerne l’ensemble des numéros du fournisseur. Le canal choisi est vérifié lors de l’attribution.
GETgetStatusObtenez le dernier code

Demande facile de l'état de la session et du dernier code SMS. Les zéros non significatifs du code sont conservés.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
id*integerID de votre session, reçu lors de l'émission du numéro.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getStatus.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42'

Réponses

En attente
STATUS_WAIT_CODE
Code reçu
STATUS_OK:001234
Annulation ou expiration
STATUS_CANCEL
Pas trouvé
NO_ACTIVATION
  • Vérifiez toutes les 20 secondes. Lire un message à nouveau ne génère pas de nouvelle paiement.
  • Après retry, l'ancien code n'est pas renvoyé : getStatus attend le prochain SMS.
  • Après que un nombre sans SMS soit supprimé, getStatus et getSms retournent à STATUS_CANCEL ; getSmsFull retourne l’état fermé, un téléphone vide et une liste SMS vide. REST /activations/{id} et /sms retournent 404 NO_ACTIVATION.
GETsetStatusGérer la session

Terminaisons, annulation ou reprise de l’attente pour SMS. Expiration de la session reste inchangée.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
id*integerID de votre session, reçu lors de l'émission du numéro.
status*integer3 — attendez le prochain code sans prolonger la session ; 6 — terminez après SMS ; 8 — annulez immédiatement.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=setStatus.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3'

Réponses

En attendant SMS
ACCESS_RETRY_GET
Terminé
ACCESS_ACTIVATION
Annulé
ACCESS_CANCEL
  • Réessayer, attendre le prochain code dans les 20 minutes initiales. Les horaires de problème et d'expiration ne changent pas.
  • L’annulation ne retire pas les gains déjà acquis.
  • Seuls les numéros portant un code SMS sont conservés dans l’histoire. Les numéros annulés et expirés sans code sont supprimés.
GETgetRepeatNumberÉmettez à nouveau le même numéro

Ouvre une nouvelle session avec un numéro spécifique de votre historique. Vous pouvez sélectionner un autre service disponible dans le même pays.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
number*stringVotre ancien numéro. Seuls les chiffres et un + facultatif sont autorisés.
service*stringCodes de service disponibles. La réponse est limitée à la zone de la clé API.
session_durationintegerLa séance dure 20 minutes. Passer 20 ou omettre ce paramètre.
with_operatorinteger1 ajoute l’ID de l’opérateur à la réponse ; 0 ou son omission renvoie trois segments.
refstringПубличный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getRepeatNumber.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go'

Réponses

Nouvelle séance
ACCESS_NUMBER:43:380670000000
Le numéro est toujours occupé
NUMBER_IN_USE
  • Tout d’abord, terminez ou annulez votre session en cours. Si le numéro est occupé, la réémission n'est pas effectuée.
  • La nouvelle session reçoit un nouveau ID et le tarif en vigueur. Les anciens SMS n'y sont pas copiés. ref est à nouveau défini.
  • SMScash permet de répéter uniquement les numéros de l'historique de ce compte. Le pays est identifié par un numéro.
  • La clé d’une session supprimée reste utilisée : la réinitialisation de l’allocation avec cette clé renvoie SESSION_CLOSED et ne génère pas un autre numéro.
GETgetSmsFullObtenez SMS en tant que JSON

Historique structuré de tous les messages avec ID, expéditeur, code, texte et données de pays, de service et de fournisseur.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
id*integerID de votre session, reçu lors de l'émission du numéro.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getSmsFull.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42'

Réponses

JSON
{
  "success": true,
  "session_id": 42,
  "phone": "380670000000",
  "status": 1,
  "status_name": "received",
  "sms_count": 1,
  "sms": [
    {
      "id": 101,
      "external_id": "message-101",
      "sender": "Service",
      "code": "001234",
      "text": "Код подтверждения: 001234",
      "received_at": "2026-10-09T12:00:00Z",
      "country": {
        "id": 86,
        "name": "Italy"
      },
      "service": {
        "code": "go",
        "name": "Google"
      },
      "provider": {
        "id": 1,
        "name": "operator=1"
      }
    }
  ],
  "expires_at": "2026-10-09T12:20:00Z"
}
  • Format préféré pour l'intégration. N'oubliez pas sms[].id pour traiter uniquement les nouveaux messages.
  • Statut numérique SMScash : 1 - actif, 6 - terminé, 8 - annulé ou expiré. status_name fait la distinction entre en attente, reçu, terminé, annulé, expiré.
  • Les codes reçus restent disponibles après la fin d’une session. Pour de grandes quantités, utilisez REST /activations/{id}/sms avec after_id.
  • Après que un nombre sans SMS soit supprimé, getStatus et getSms retournent à STATUS_CANCEL ; getSmsFull retourne l’état fermé, un téléphone vide et une liste SMS vide. REST /activations/{id} et /sms retournent 404 NO_ACTIVATION.
GETgetSmsObtenez SMS sous forme de chaîne de texte

Renvoie l'intégralité de l'historique SMS au format chaîne pour les clients existants.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
id*integerID de votre session, reçu lors de l'émission du numéro.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getSms.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42'

Réponses

Message
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234
En attente
STATUS_WAIT_CODE
Annulation ou expiration
STATUS_CANCEL
  • Format du message : heure|code|texte. Plusieurs messages sont séparés par deux points.
  • Le texte SMS lui-même peut contenir des deux-points et des barres verticales. Pour une analyse fiable, utilisez getSmsFull.
GETgetServicesPrestations

Codes de service disponibles. La réponse est limitée à la zone de la clé API.

Annuaire

Publication…

JSON ↗

Le répertoire de services est partagé par tous les fournisseurs. L’disponibilité du nombre est vérifiée séparément.

Vous pouvez associer une clé à des services, pays et fournisseurs précis. Les listes vides autorisent toutes les options disponibles.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
countryintegerPrenez ID de getCountries.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getServices.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY'

Réponses

Prestations
{
  "go": {
    "name": "Google",
    "code": "go"
  }
}
  • Le répertoire de services est partagé par tous les fournisseurs. L’disponibilité du nombre est vérifiée séparément.
GETgetCountriesPays

Identifiants, noms et codes de appel pour les pays dans le canal sélectionné.

Annuaire

Publication…

JSON ↗

Vous pouvez associer une clé à des services, pays et fournisseurs précis. Les listes vides autorisent toutes les options disponibles.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getCountries.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY'

Réponses

Pays
{
  "86": {
    "id": 86,
    "name": "Italy",
    "phone_code": "39"
  }
}
GETgetOperatorsOpérateurs

Opérateurs disponibles : identifiant API, nom et durée de retenue.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
countryintegerPrenez ID de getCountries.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getOperators.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY'

Réponses

Opérateurs
{
  "1": {
    "id": 1,
    "provider_id": 1,
    "operator": 1,
    "name": "operator=1",
    "earnings_hold_days": 45
  }
}
  • Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsRécompense pour SMS

Les taux dépendent du pays. Toutes les montants indiqués dans le tableau sont pour un paiement SMS.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
countryintegerPrenez ID de getCountries.
servicestringCodes de service disponibles. La réponse est limitée à la zone de la clé API.
operatorstringВозьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getRewards.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi'

Réponses

JSON
{
  "59": {
    "vi": {
      "1": "0.01000000",
      "3": "0.00500000"
    }
  }
}
{}
{}
  • USD Les montants de tarif sont renvoyés sous forme de chaînes décimales exactes avec 8 décimales :
  • Fournisseurs activés disponibles pour votre clé.
  • country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису

До 10 стран с лучшей доставкой смс кодов за последние 24 часа

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.
service*stringКод сервиса из getServices.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getTopCountriesByService.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go'

Réponses

Структура ответа

Ключ в примереDescriptifAnnuaire
["12"], ["36"]ID du pays
Первый, внешний уровень JSON. Каждая запись объединяет операторов одной страны.
getCountries
["12"]["1"], ["12"]["3"]ID оператора
Второй уровень JSON, внутри страны. Это публичный ID оператора (поставщика), который передаётся в параметре operator.
getOperators
JSON
{
  "12": {
    "1": {
      "reward": 0.012,
      "count": 542
    },
    "3": {
      "reward": 0.014,
      "count": 301
    }
  },
  "36": {
    "1": {
      "reward": 0.011,
      "count": 190
    }
  }
}
{}
{}
  • В примере ["12"]["1"] — данные оператора 1 в стране 12. ID стран берутся из getCountries, ID операторов — из getOperators.
  • reward — действующее личное вознаграждение в USD, JSON-число. count — количество выданных номеров за последние 24 часа, включая сессии без кода.
  • Рейтинг рассчитывается как все полученные непустые коды, делённые на все выдачи номеров за последние 24 часа для выбранного сервиса.
  • Повторные непустые коды увеличивают числитель; конверсия может превышать 100%. Начальные нули сохраняются.
  • Суточная статистика сервиса кэшируется на 10 минут. Тарифы и ограничения ключа проверяются при каждом запросе. Момент среза — в заголовке X-Statistics-As-Of.
  • Нет данных или доступных связок — пустой объект {}. Страны с выдачами и нулём кодов имеют нулевую конверсию. Порядок ключей JSON не задаёт места в рейтинге.
GETgetBalanceSolde de l’utilisateur

Ajout SMScash : solde disponible prenant en compte les cumuls, les primes de parrainage et les demandes de paiement.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getBalance.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY'

Réponses

Solde
ACCESS_BALANCE:0.00
  • getBalance renvoie le solde disponible en USD avec jusqu’à 8 décimales.
  • Seuls les fonds dont la durée de blocage est terminée peuvent être retirés.
GETgetHoldBalanceBloqué

Après réception d’un SMS, les gains sont bloqués pendant la durée définie par le fournisseur. À la date indiquée, le montant devient automatiquement disponible au retrait.

Paramètres

ParamètreTapezDescriptif
api_key*stringClé API personnelle de l’utilisateur.

* Paramètre obligatoire. Dans toutes les requêtes, transmettez également action=getHoldBalance.

Exemple de demande

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY'

Réponses

Bloqué
ACCESS_HOLD_BALANCE:34.50000001
  • SMScash · getHoldBalance · USD · 8
  • Seuls les fonds dont la durée de blocage est terminée peuvent être retirés.

Codes de réponse et demandes répétées

Dans handler_api.php, les résultats commerciaux sont généralement accompagnés de HTTP 200. Vérifiez le corps du texte. Les répertoires et getSmsFull renvoient JSON en cas de succès ; les erreurs sont toujours du texte.

CoderHTTPCause et prochaine étape
TARIFF_NOT_CONFIGURED200Les tarifs ne sont pas encore fixésL’attribution des numéros commencera dès que les récompenses SMS sont configurées.
COUNTRY_BLOCKED200L’attribution des numéros pour ce pays est bloquée.Choisissez un autre pays.
BAD_SERVICE200L’attribution de numéros pour ce service est bloquée.Choisissez un autre service.
PROVIDER_NOT_READY200L’attribution des numéros est temporairement indisponibleActualisez les catalogues d'API.
BAD_KEY400Pas de api_key ou format invalide.Vérifiez la clé dans la demande.
INVALID_API_KEY401La clé est inconnue, révoquée ou le compte est désactivé.Créez une clé API valide.
BAD_COUNTRY400le pays manque ou n'est pas un nombre positif.Prenez ID de getCountries.
BAD_SESSION_DURATION400Les numéros de téléphone sont délivrés pour exactement 20 minutes.Corrigez session_duration.
BAD_REQUEST400Vérifiez les champs de la demande.Merci de corriger votre demande.
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER200Élément de répertoire inconnu ou désactivé.Actualisez les catalogues d'API.
BAD_NUMBER200Format de numéro incorrect.Donnez le numéro en chiffres.
BAD_ACTION / BAD_STATUS200Commande, ID ou opération inconnue.Vérifiez les paramètres.
EMPTY_POOL200Aucun numéro de téléphone correspondant n’est actuellement disponible.Répétez après 10 à 30 secondes ou changez les filtres.
NUMBER_IN_USE200Un numéro spécifique est occupé par une session active.Terminez votre session ou sélectionnez un autre numéro.
NO_ACTIVATION200La session ou le numéro précédent n'appartient pas à votre compte.Vérifiez ID et la clé.
SESSION_CLOSED / SMS_REQUIRED200La transition d’état n’est actuellement pas disponible.Vérifiez l'état et la disponibilité du SMS.
SCOPE_BLOCKED200Le service, le pays ou le fournisseur n'est pas autorisé à utiliser la clé.Mettez à jour la portée de la clé API.
INTERNAL_ERROR500Erreur temporaire du serveur ou du fournisseur.Contact et assistance · X-Request-ID
ALLOCATION_PENDING200En attentegetActiveActivations · getStatus
ALLOCATION_UNCERTAIN200Le résultat de l’attribution n’est pas confirmé. La relance automatique est désactivée pour éviter d’attribuer un deuxième numéro.Le résultat de l’attribution n’est pas confirmé. La relance automatique est désactivée pour éviter d’attribuer un deuxième numéro.

REST renvoie un objet {"error":{"code":"…","message":"…"}} et statuts HTTP réguliers 400/401/403/404/409/503.

JSON
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Vérifiez les champs de la demande.",
    "request_id": "req_…",
    "hint": "Use the documented JSON type; numbers must not be quoted.",
    "retryable": false,
    "details": {
      "field": "country",
      "expected": "integer"
    }
  }
}
REST
X-Request-ID: included in every API response
405: Allow lists the supported HTTP methods
ALLOCATION_PENDING: retryable=true · Retry-After=3 · same operation key
ALLOCATION_UNCERTAIN: retryable=false · contact support
Transport errors: check the operation before another write; keep the original key.

REST pour de nouvelles intégrations

USD Les montants de tarif sont renvoyés sous forme de chaînes décimales exactes avec 8 décimales : 0.00300000 USD.

Le solde est exprimé en USD. Les schémas de requête et de réponse sont disponibles dans OpenAPI.

Retrait en USDT · TRC20Le délai de paiement est de 1 à 45 jours. Les frais de retrait sont de 4 $. Ils sont déduits du montant demandé. Après réception d’un SMS, les gains sont bloqués pendant la durée définie par le fournisseur. À la date indiquée, le montant devient automatiquement disponible au retrait. Seuls les fonds dont la durée de blocage est terminée peuvent être retirés.
GET/api/v1/catalogServices et pays
GET/api/v1/tariffsSMS taux de récompense par pays
GET/api/v1/offersTarifs et récompenses
GET/api/v1/servicesAnnuaire
GET/api/v1/countriesAnnuaire
GET/api/v1/operatorsAnnuaire
GET/api/v1/availability?country=1Disponibilité du numéro
POST/api/v1/activationsNouvelle séance
GET/api/v1/activations/batch?ids=42,43Vérifier plusieurs numéros
GET/api/v1/activationsDernières 200 sessions : scope=history, en attente ou toutes
GET/api/v1/activations/{id}Séance et messages
GET/api/v1/activations/{id}/sms?after_id=0&limit=100Nouveau SMS avec curseur
POST/api/v1/activations/{id}/retryEn attendant SMS
POST/api/v1/activations/{id}/finishAchèvement
POST/api/v1/activations/{id}/cancelAnnuler
POST/api/v1/activations/repeatRéédition du numéro
GET/api/v1/keysClés API
POST/api/v1/keysCréer une clé
PATCH/api/v1/keys/{id}Changer de nom ou policy
DELETE/api/v1/keys/{id}Révoquer la clé
GET/api/v1/referralsCode de parrainage et gains
GET/api/v1/summarySolde et résumé
GET/api/v1/balanceBloqué
GET/api/v1/ledgerGrand livre des bénéfices
GET/api/v1/withdrawalsDemandes de paiement
POST/api/v1/withdrawalsCréer une demande
GET/api/v1/statisticsStatistiques générales
GET/api/v1/earnings/holdsGains bloqués

Recevoir uniquement le nouveau SMS

REST
GET /api/v1/activations/42/sms?after_id=0&limit=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "session_id": 42,
  "sms": [
    {
      "id": 101,
      "code": "001234",
      "text": "Code : 001234",
      "sender": "Service",
      "received_at": "2026-10-09T12:00:00Z"
    }
  ],
  "next_cursor": 101,
  "has_more": false
}

Enregistrez next_cursor et transmettez-le sous le nom after_id. Si has_more=true, la page suivante peut être lue immédiatement. limit : 1 à 200. Les sessions et SMS sont disponibles uniquement pour le propriétaire.