API dokumentation
Börja med ett begäran
Skapa en API-nyckel i din dashboard, få ett nummer och kolla in meddelanden var 10 sekunder.Payment krediteras när en SMS med en kod anländer; läs den igen påverkar inte din balans.
https://smscash.org/api/v1https://smscash.org/stubs/handler_api.phpcurl --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'Alternativt kompatibelt gränssnitt: /handler_api.php. befintliga REST-integrationer fortsätter att fungera.
Skapa förfrågningar
https://smscash.org/stubs/handler_api.phpcurl --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'package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
)
func main() {
endpoint, err := url.Parse("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1")
if err != nil { panic(err) }
query := endpoint.Query()
query.Set("api_key", os.Getenv("SMSCASH_API_KEY"))
endpoint.RawQuery = query.Encode()
req, err := http.NewRequest("GET", endpoint.String(), nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second, CheckRedirect: func(_ *http.Request, _ []*http.Request) error { return http.ErrUseLastResponse }}
res, err := client.Do(req)
if err != nil { panic(err) }
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
fmt.Println(res.StatusCode, string(body))
}// Node.js 18+: set SMSCASH_API_KEY in your environment.
const url = new URL("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1");
url.searchParams.set("api_key", process.env.SMSCASH_API_KEY);
const response = await fetch(url, {
method: 'GET',
signal: AbortSignal.timeout(15000),
redirect: 'error',
});
const result = await response.text();
console.log(response.status, result);
// SMS codes are strings: keep leading zeros. Never repeat issuance automatically.import json
import os
import urllib.error
import urllib.parse
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
url = "https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1"
parts = urllib.parse.urlsplit(url)
params = dict(urllib.parse.parse_qsl(parts.query))
params["api_key"] = os.environ["SMSCASH_API_KEY"]
url = urllib.parse.urlunsplit(parts._replace(query=urllib.parse.urlencode(params)))
request = urllib.request.Request(url, method='GET')
try:
with urllib.request.build_opener(NoRedirect).open(request, timeout=15) as response:
result = response.read().decode("utf-8")
print(response.status, result)
except urllib.error.HTTPError as error:
print(error.code, error.read().decode('utf-8'))
raise
# No automatic retries; SMS codes remain strings.Nyckeln sparas inte. Denna kontroll tilldelar inga nummer.
Rester för nya integrationer
Tjänster och länder
Välj en tjänst och land. Betalning via SMS beror på landet.
GET /api/v1/catalog?service=go&country=86&page=1&page_size=100
Authorization: Bearer YOUR_API_KEY{
"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)
Få ett nummer
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86Automatiskt val: en slumpmässig tillgänglig leverantör.
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: stringAntalet är giltigt i 20 minuter. SMS kontrolleras var 10 sekunder. Du kan avbryta omedelbart.
Kontrollera flera nummer
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY{
"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
}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 messageSaldo · Reserverat
GET /api/v1/balance
Authorization: Bearer YOUR_API_KEY{
"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 — Tillgängligt; held_balance — Reserverat. USD · 8
Du kan bara ta ut pengar vars väntetid har löpt ut.
Färdiga klienter
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 stringimport 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 stringme() · 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
https://smscash.org/sms-activate/stubs/handler_api.phphttps://smscash.org/hero-sms/stubs/handler_api.phpAnvändarens personliga API-nyckel.
Välj en tjänst och land. Betalning via SMS beror på landet.
| koden | Beskrivning |
|---|---|
getNumber / getNumberV2 | Få ett nummer |
getStatus / getStatusV2 | Få den senaste koden |
setStatus / finishActivation / cancelActivation | Förvaltning session |
getPrices / getNumbersStatus | Kontrollera tillgänglighet |
getRewards (SMScash) | Belöning för SMS |
getServicesList / getServices | Tjänster |
getCountries / getOperators | Tjänster och länder |
getActiveActivations | Sessioner |
getBalance | Användarsaldo |
getHoldBalance (SMScash) | Reserverat |
cost = 0 USD · activationCost = 0 USDreward — Belöning för SMS
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'{
"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"
}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.Antalet är giltigt i 20 minuter. SMS kontrolleras var 10 sekunder. Du kan avbryta omedelbart.
Autentisering och returer
REST: header Authorization: Bearer YOUR_API_KEY. Kompatibel gränssnitt: Parameter api_key och actionAnvänd HTTPS.
För att hantera API-nycklar, logga in ditt konto.
API-förfrågan frekvens och antalet telefonnummer är obegränsade. Det finns inga dagliga eller timmars kvoter.
Antalet är giltigt i 20 minuter. SMS kontrolleras var 10 sekunder. Du kan avbryta omedelbart.
API nyckelområde
Du kan begränsa en nyckel till specifika tjänster, länder och leverantörer. tomma listor tillåter alla tillgängliga alternativ.
{
"label": "Min programvara",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} ändrar namnet och policyn helt. hemligheten visas endast när den skapades.
10% i totalt. 5% + 5% med programkod.
När du utfärdar ett nummer, vänligen ge ref ägaren av programvaran. begäran är auktoriserad av exekutivnyckeln. koden finns i avsnittet "Referrals" och i GET /api/v1/referrals → software_ref.
| begäran | Inbjudan | Programvara |
|---|---|---|
| Utan ref | 10% | — |
| Med ref | 5% | 5% |
| Med ref, ingen referrer | — | 5% |
Plattformen betalar bonusen utan att minska användarens intäkter. programvaruägare och referensgivare kan vara samma person.
Termerna är fixerade när en session skapas; läs SMS och återkallande ändrar inte dem. Pass ref igen för en ny upprepade session. I avgiftsberäkningen ger en användares belöning av USD 0.003 USD 0.00015 var och en till programvaruägare och referrer. Den totala bonusen är USD 0.00030.
API kommandon
11 XVBC-stilmetoder plus din SMScash-balans.
GETgetNumberFå ett nummer+
Skapa en session och reserverar ett tillgängligt nummer för användaren. belöningsraten och referensmottagarna är fasta vid tilldelning; belöningen krediteras när en SMS med kod anländer.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
service* | string | Tillgängliga servicekoder. Svaret är begränsat till API-nyckeln. |
country* | integer | Ta ID från getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | Sessionen varar 20 minuter. pass 20 eller missar denna parameter. |
with_operator | integer | 1 lägger till operatörens ID i svaret; 0 eller utelämnad parameter ger tre delar. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getNumber.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1",
timeout=15,
)
print(response.status_code, response.text)Svar
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- Automatiskt val: en slumpmässig tillgänglig leverantör.
- Ett numeriskt land utan pool ger EMPTY_POOL; det felaktiga landformatet är BAD_COUNTRY.
- Nyckeln till en raderad session används fortfarande: återspeglar tilldelningen med den nyckeln returnerar SESSION_CLOSED och utfärdar inte ett annat nummer.
- Det automatiska uttaget är inaktiverat för att undvika att tilldela ett andra nummer.
GETgetNumbersStatusKontrollera tillgänglighet+
Tillgängliga telefonnummer per service och land.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
country* | integer | Ta ID från getCountries. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getNumbersStatus.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86",
timeout=15,
)
print(response.status_code, response.json())Svar
{
"go_0": 0
}- _0 suffix betyder ett val utan en specifik operatör.
- Tillgänglighet hänvisar till leverantörens totala pool. Den valda kanalen kontrolleras när ett nummer tilldelas.
GETgetStatusFå den senaste koden+
Enkel begäran om sessionstatus och sista SMS-kod. Ledande zeros i koden bevaras.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
id* | integer | ID av din session, som erhålls när numret utfärdades. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getStatus.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42",
timeout=15,
)
print(response.status_code, response.text)Svar
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- Poll varje 20 sekunder.Läsning av ett meddelande igen skapar inte en annan betalning.
- Efter återkallande returneras inte den gamla koden: getStatus väntar på nästa SMS.
- Efter ett antal utan SMS är borttagna, getStatus och getSms återvända STATUS_CANCEL; getSmsFull returnerar stängd status, en tom telefon och en tom sms och listan. REST /activations/{id} och /sms återvända 404 NO_ACTIVATION.
GETsetStatusFörvaltning session+
Slutar, avbryter eller återställer väntan på SMS. Sessionen löper ut förblir densamma.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
id* | integer | ID av din session, som erhålls när numret utfärdades. |
status* | integer | 3 - vänta på nästa kod utan att förlänga sessionen; 6 - slut efter SMS; 8 - avbryta omedelbart. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=setStatus.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3",
timeout=15,
)
print(response.status_code, response.text)Svar
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- Retry väntar på nästa kod inom de ursprungliga 20 minuter. utgången och utgångstiderna ändras inte.
- Annullering tar inte bort redan erhållna belöningar.
- Endast siffror med en SMS-kod sparas i historien. Annullerade och utgångsrika siffror utan kod raderas.
GETgetRepeatNumberFår samma nummer igen+
Öppna en ny session med ett specifikt nummer från din historia. Du kan välja en annan tillgänglig tjänst i samma land.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
number* | string | Endast siffror och en valfri ledare + är tillåten. |
service* | string | Tillgängliga servicekoder. Svaret är begränsat till API-nyckeln. |
session_duration | integer | Sessionen varar 20 minuter. pass 20 eller missar denna parameter. |
with_operator | integer | 1 lägger till operatörens ID i svaret; 0 eller utelämnad parameter ger tre delar. |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getRepeatNumber.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go",
timeout=15,
)
print(response.status_code, response.text)Svar
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- Först avsluta eller avbryta din nuvarande session. Om numret är upptagen, uttag inte utförs.
- Den nya sessionen får ett nytt ID och den aktuella tariff. Gamla SMS kopieras inte in i den. ref ställs in igen.
- SMScash tillåter att endast siffror upprepas från kontothistorien.
- Nyckeln till en raderad session används fortfarande: återspeglar tilldelningen med den nyckeln returnerar SESSION_CLOSED och utfärdar inte ett annat nummer.
GETgetSmsFullFå SMS som JSON+
Strukturerad historia av alla meddelanden med ID, avsändare, kod, text och land, service och leverantör data.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
id* | integer | ID av din session, som erhålls när numret utfärdades. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getSmsFull.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42",
timeout=15,
)
print(response.status_code, response.json())Svar
{
"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"
}- Företrädesformat för integration. Kom ihåg sms[].id för att endast behandla nya meddelanden.
- Numerisk status SMScash: 1 - aktiv, 6 - fullbordad, 8 - avbeställd eller utgångstid. status_name skiljer mellan väntar, mottagit, slutfört, avbeställd, utgångstid.
- De mottagna koderna förblir tillgängliga efter en session stängs. För stora volymer, använd REST /activations/{id}/sms med after_id.
- Efter ett antal utan SMS är borttagna, getStatus och getSms återvända STATUS_CANCEL; getSmsFull returnerar stängd status, en tom telefon och en tom sms och listan. REST /activations/{id} och /sms återvända 404 NO_ACTIVATION.
GETgetSmsFå SMS som textsträng+
Returnerar hela SMS-historien i strängformat för befintliga kunder.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
id* | integer | ID av din session, som erhålls när numret utfärdades. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getSms.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42",
timeout=15,
)
print(response.status_code, response.text)Svar
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- Meddelande format: tidssnittskod text.Många meddelanden är separerade av en kolumn.
- Text SMS kan innehålla kolumner och vertikala rader. För tillförlitlig parsing, använd getSmsFull.
GETgetServicesTjänster+
Tillgängliga servicekoder. Svaret är begränsat till API-nyckeln.
Direktor
Publicering…
| Namn | Service kod service |
|---|
Servicedirektorn delas över leverantören. nummer tillgänglighet kontrolleras separat.
Du kan begränsa en nyckel till specifika tjänster, länder och leverantörer. tomma listor tillåter alla tillgängliga alternativ.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
country | integer | Ta ID från getCountries. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getServices.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.json())Svar
{
"go": {
"name": "Google",
"code": "go"
}
}- Servicedirektorn delas över leverantören. nummer tillgänglighet kontrolleras separat.
GETgetCountriesLänder+
ID, namn och samtalskoder för länder i den valda kanalen.
Direktor
Publicering…
| Namn | Land ID country |
|---|
Du kan begränsa en nyckel till specifika tjänster, länder och leverantörer. tomma listor tillåter alla tillgängliga alternativ.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getCountries.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.json())Svar
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsOperatörer+
Tillgängliga operatörer: API-ID, namn och innehållningsperiod.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
country | integer | Ta ID från getCountries. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getOperators.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.json())Svar
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "operator=1",
"earnings_hold_days": 45
}
}- Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsBelöning för SMS+
Räntor beror på landet. Alla tabellbelopp är per betald SMS.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
country | integer | Ta ID från getCountries. |
service | string | Tillgängliga servicekoder. Svaret är begränsat till API-nyckeln. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getRewards.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi",
timeout=15,
)
print(response.status_code, response.json())Svar
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- USD-tariffbelopp returneras som exakta decimalsträngar med 8 decimal platser:
- Tillåtna leverantörer tillgängliga för din nyckel.
- country ID → service code → operator ID → reward (USD)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
service* | string | Код сервиса из getServices. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getTopCountriesByService.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go");
const result = await response.json();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getTopCountriesByService&api_key=YOUR_API_KEY&service=go",
timeout=15,
)
print(response.status_code, response.json())Svar
Структура ответа
| Ключ в примере | Beskrivning | Direktor |
|---|---|---|
["12"], ["36"] | Land ID Первый, внешний уровень JSON. Каждая запись объединяет операторов одной страны. | getCountries |
["12"]["1"], ["12"]["3"] | ID оператора Второй уровень JSON, внутри страны. Это публичный ID оператора (поставщика), который передаётся в параметре operator. | getOperators |
{
"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 не задаёт места в рейтинге.
GETgetBalanceAnvändarsaldo+
SMScash: tillgänglig balans med hänsyn till akrualer, referensbonusar och betalningsförfrågningar.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getBalance.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.text)Svar
ACCESS_BALANCE:0.00- getBalance returnerar den tillgängliga USD-balansen med upp till 8 decimal platser.
- Du kan bara ta ut pengar vars väntetid har löpt ut.
GETgetHoldBalanceReserverat+
När ett SMS har tagits emot hålls intäkterna inne under den tid som leverantören anger. På det angivna datumet blir beloppet automatiskt tillgängligt för uttag.
Parameter
| Parameter | Typ | Beskrivning |
|---|---|---|
api_key* | string | Användarens personliga API-nyckel. |
* Det krävs parameter. i alla begäranden passerar även åtgärd=getHoldBalance.
Exempelförfrågan
curl 'https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY'package main
import (
"fmt"
"io"
"net/http"
"time"
)
func main() {
req, err := http.NewRequest("GET", "https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY", nil)
if err != nil { panic(err) }
client := &http.Client{Timeout: 15 * time.Second}
resp, err := client.Do(req)
if err != nil { panic(err) }
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil { panic(err) }
fmt.Println(resp.StatusCode, string(body))
}const response = await fetch("https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY");
const result = await response.text();
console.log(response.status, result);import requests
response = requests.get(
"https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY",
timeout=15,
)
print(response.status_code, response.text)Svar
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- Du kan bara ta ut pengar vars väntetid har löpt ut.
Svarkoder och upprepade begäranden
In handler_api.fp affärsresultat kommer vanligtvis med HTTP 200. Kolla kroppstexten. kataloger och getSmsFull tillbaka JSON om framgångsrikt; fel är alltid text.
| koden | HTTP | Orsak och nästa steg |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | Räntorna är ännu inte fastställdaAntal tilldelning börjar när SMS-priserna är konfigurerade. |
COUNTRY_BLOCKED | 200 | Antal tilldelningar för detta land är blockerade.Välj ett annat land. |
BAD_SERVICE | 200 | Antal tilldelning för denna tjänst är blockerat.Välj en annan tjänst. |
PROVIDER_NOT_READY | 200 | Antal tilldelning är tillfälligt inte tillgängligtUppdatera API-katalogerna |
BAD_KEY | 400 | Nej api_key eller ugyldig format.Kontrollera nyckeln i begäran. |
INVALID_API_KEY | 401 | Nyckeln är okänd, återkallad eller kontot är inaktiverat.Skapa en giltig API-nyckel. |
BAD_COUNTRY | 400 | Det är ett positivt nummer som saknas eller inte.Ta ID från getCountries. |
BAD_SESSION_DURATION | 400 | Telefonnummer utfärdas i exakt 20 minuter.Korrekt session_duration. |
BAD_REQUEST | 400 | Kolla in begäran fält.Vänligen korrigera din begäran. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | Okända eller funktionshindrade kataloger.Uppdatera API-katalogerna |
BAD_NUMBER | 200 | felaktig antal format.Ange numret i siffror. |
BAD_ACTION / BAD_STATUS | 200 | Okänd kommando, ID eller operation.Kolla in inställningarna. |
EMPTY_POOL | 200 | Inga matchande telefonnummer finns för närvarande.Upprepa efter 10-30 sekunder eller ändra filter. |
NUMBER_IN_USE | 200 | Ett specifikt nummer är besatt av en aktiv session.Avsluta sessionen eller välj ett annat nummer. |
NO_ACTIVATION | 200 | Sessionen eller föregående nummer tillhör inte ditt konto.Kontrollera ID och nyckel. |
SESSION_CLOSED / SMS_REQUIRED | 200 | Statsövergången är för närvarande inte tillgänglig.Kontrollera villkoren och tillgängligheten av SMS. |
SCOPE_BLOCKED | 200 | Tjänsten, landet eller leverantören är inte auktoriserad för nyckeln.Uppdatera API-nyckeln. |
INTERNAL_ERROR | 500 | Tillfällig server eller leverantörsfel.Kontakt och support · X-Request-ID |
ALLOCATION_PENDING | 200 | VäntargetActiveActivations · getStatus |
ALLOCATION_UNCERTAIN | 200 | Det automatiska uttaget är inaktiverat för att undvika att tilldela ett andra nummer.Det automatiska uttaget är inaktiverat för att undvika att tilldela ett andra nummer. |
REST returnerar ett objekt {"error":{"code":"…","message":"…"}} och regelbundet HTTP statuser 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "Kolla in begäran fält.",
"request_id": "req_…",
"hint": "Use the documented JSON type; numbers must not be quoted.",
"retryable": false,
"details": {
"field": "country",
"expected": "integer"
}
}
}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.Rester för nya integrationer
USD-tariffbelopp returneras som exakta decimalsträngar med 8 decimal platser: 0.00300000 USD.
Balansvärdet är USD. Begäran och svar scheman finns i OpenAPI.
/api/v1/catalogTjänster och länder/api/v1/tariffsSMS belöning priser per land/api/v1/offersRäntor och belöningar/api/v1/servicesDirektor/api/v1/countriesDirektor/api/v1/operatorsDirektor/api/v1/availability?country=1Antal tillgänglighet/api/v1/activationsNy session/api/v1/activations/batch?ids=42,43Kontrollera flera nummer/api/v1/activationsSenaste 200 sessioner: scope=history, väntar eller allt/api/v1/activations/{id}Session och meddelanden/api/v1/activations/{id}/sms?after_id=0&limit=100Ny SMS med kursor/api/v1/activations/{id}/retryVäntar på SMS/api/v1/activations/{id}/finishKomplettering/api/v1/activations/{id}/cancelAvbryt/api/v1/activations/repeatAntal återvänder/api/v1/keysAPI Nycklar/api/v1/keysSkapa en nyckel/api/v1/keys/{id}Ändra namn eller politik/api/v1/keys/{id}Återkallande nyckel/api/v1/referralsReferenskod och intäkter/api/v1/summaryBalans och sammanfattning/api/v1/balanceReserverat/api/v1/ledgerFördelar Ledger/api/v1/withdrawalsBetalningsförfrågningar/api/v1/withdrawalsSkapa en begäran/api/v1/statisticsAllmän statistik/api/v1/earnings/holdsVäntetid för intäkterBara att få nya SMS
GET /api/v1/activations/42/sms?after_id=0&limit=100
Authorization: Bearer YOUR_API_KEY{
"session_id": 42,
"sms": [
{
"id": 101,
"code": "001234",
"text": "Kode: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}Spara next_cursor och överlämna den som after_id. Även has_more=true, nästa sidan kan läsas omedelbart. gräns: 1–200. Sessioner och SMS Det finns endast tillgängligt för ägaren.