API दस्तावेज़
नंबर, संदेश और कमाई, सीधे आपके ऐप से।
एक अनुरोध से शुरुआत करें
अपने डैशबोर्ड में एक API कुंजी बनाएं, एक संख्या प्राप्त करें एवं हर 20 सेकंड में संदेशों की जाँच करें। जब कोड वाला एक SMS आता है तो भुगतान क्रेडिट हो जाता है; इसे फिर से पढ़ने से आपके बैलेंस पर कोई प्रभाव नहीं पड़ता।
https://smscash.org/api/v1https://smscash.org/stubs/handler_api.phpcurl -X POST 'https://smscash.org/api/v1/activations' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: request-unique-001' \
-d '{"service":"go","country":86}'वैकल्पिक संगत इंटरफ़ेस पता: /handler_api.php. मौजूदा REST एकीकरण काम करना जारी रखता है।
अनुरोध बनाने का उपकरण
Idempotency-Key: UUID · POST · 8–128
स्वचालित चयन: पिछले घंटे में, फिर 24 घंटों में सबसे अधिक कोड। नंबर न हों तो अगला ऑपरेटर।
curl --max-time 15 --fail-with-body -X POST 'https://smscash.org/api/v1/activations' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: request-unique-001' \
--data '{"service":"go","country":86}'package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
"time"
)
func main() {
payload := []byte("{\"service\":\"go\",\"country\":86}")
req, err := http.NewRequest("POST", "https://smscash.org/api/v1/activations", bytes.NewReader(payload))
if err != nil { panic(err) }
req.Header.Set("Authorization", "Bearer " + os.Getenv("SMSCASH_API_KEY"))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Idempotency-Key", "request-unique-001")
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) } // Keep the same operation key after a network error.
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil { panic(err) }
if res.StatusCode >= 300 {
fmt.Fprintf(os.Stderr, "HTTP %d, request_id=%s\n%s\n", res.StatusCode, res.Header.Get("X-Request-ID"), body)
os.Exit(1)
}
fmt.Println(string(body))
}// Node.js 18+: set SMSCASH_API_KEY in your environment.
const response = await fetch("https://smscash.org/api/v1/activations", {
method: "POST",
headers: {
Authorization: 'Bearer ' + process.env.SMSCASH_API_KEY,
'Content-Type': 'application/json',
'Idempotency-Key': "request-unique-001",
},
body: JSON.stringify({
"service": "go",
"country": 86
}),
signal: AbortSignal.timeout(15000),
redirect: 'error',
});
const result = await response.json();
if (!response.ok) {
const error = result.error || {};
console.error(response.status, error.code, error.hint, error.request_id);
throw new Error(error.message || 'API error');
}
console.log(result);
// SMS codes are strings: keep leading zeros. Never retry writes automatically.import json
import os
import urllib.error
import urllib.request
class NoRedirect(urllib.request.HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
headers = {
'Authorization': 'Bearer ' + os.environ['SMSCASH_API_KEY'],
'Content-Type': 'application/json',
'Idempotency-Key': "request-unique-001",
}
request = urllib.request.Request(
"https://smscash.org/api/v1/activations",
headers=headers,
data="{\"service\":\"go\",\"country\":86}".encode('utf-8'),
method="POST",
)
try:
with urllib.request.build_opener(NoRedirect).open(request, timeout=15) as response:
result = json.load(response)
print(result)
except urllib.error.HTTPError as error:
details = json.load(error).get('error', {})
print(error.code, details.get('code'), details.get('hint'), details.get('request_id'))
raise
# No automatic retries; SMS codes remain strings.कुंजी सहेजी नहीं जाती। यह जाँच नंबर जारी नहीं करती।
नए एकीकरण के लिए REST
सेवाएँ और देश
सेवा और देश चुनें। प्रति SMS भुगतान देश पर निर्भर करता है।
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)
एक नंबर प्राप्त करें
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001
{
"service": "go",
"country": 86
}स्वचालित चयन: पिछले घंटे में, फिर 24 घंटों में सबसे अधिक कोड। नंबर न हों तो अगला ऑपरेटर।
201: new session · 200: replay of the same operation
service + country OR offer_id · duration_minutes: 20
ref: software owner code (optional)
operator: public ID (e.g. 1 for Operator 1), optional · any/0: automatic
country: integer · service: string · SMS code: stringफ़ोन नंबर 20 मिनट तक मान्य रहता है। हर 20 सेकंड में SMS की जाँच होती है। आप तुरंत रद्द कर सकते हैं।
कई नंबर जाँचें
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": 20
}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शेष राशि · होल्ड पर
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 — उपलब्ध; held_balance — होल्ड पर. USD · 8
केवल वही राशि निकाली जा सकती है जिसकी होल्ड अवधि समाप्त हो चुकी है।
तैयार क्लाइंट
import {SmScash, SmScashError} from './smscash.mjs';
import {randomUUID} from 'node:crypto';
const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);
// Save this key before sending; keep it for retries of this operation.
const requestKey = randomUUID();
const session = await api.createNumber({service: 'go', country: 86}, requestKey);
// After 20 seconds:
const messages = await api.sms(session.id, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([session.id]);
const held = await api.holdBalance();
console.log(held); // Exact USD stringimport os
import uuid
from smscash import SmScash, SmScashError
api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])
# Save this key before sending; keep it for retries of this operation.
request_key = str(uuid.uuid4())
session = api.create_number({'service': 'go', 'country': 86}, request_key)
# After 20 seconds:
messages = api.sms(session['id'], after_id=0)
print(messages['sms'])
statuses = api.batch([session['id']])
held = api.hold_balance()
print(held) # Exact USD stringme() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
createNumber(parameters, requestKey) / create_number(parameters, request_key)
setStatus(id, "cancel") / set_status(id, "cancel")
setStatus(id, "retry", requestKey) / set_status(id, "retry", request_key)
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.phpउपयोगकर्ता की व्यक्तिगत API कुंजी।
सेवा और देश चुनें। प्रति SMS भुगतान देश पर निर्भर करता है।
| कोड | विवरण |
|---|---|
getNumber / getNumberV2 | एक नंबर प्राप्त करें |
getStatus / getStatusV2 | नवीनतम कोड प्राप्त करें |
setStatus / finishActivation / cancelActivation | सत्र प्रबंधित करें |
getPrices / getNumbersStatus | उपलब्धता जांचें |
getRewards (SMScash) | SMS के लिए इनाम |
getServicesList / getServices | सेवाएँ |
getCountries / getOperators | सेवाएँ और देश |
getActiveActivations | सत्र |
getBalance | उपयोगकर्ता की शेष राशि |
getHoldBalance (SMScash) | होल्ड पर |
cost = 0 USD · activationCost = 0 USDreward — 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' \
-H 'Idempotency-Key: request-unique-001'{
"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); 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.
Keep the original Idempotency-Key and parameters.
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.फ़ोन नंबर 20 मिनट तक मान्य रहता है। हर 20 सेकंड में SMS की जाँच होती है। आप तुरंत रद्द कर सकते हैं।
प्रमाणीकरण और दोबारा प्रयास
REST: शीर्षक Authorization: Bearer YOUR_API_KEY. संगत इंटरफ़ेस: पैरामीटर api_key और action. HTTPS का प्रयोग करें।
API कुंजियाँ प्रबंधित करने के लिए, अपना खाता दर्ज करें।
अनुरोधों की आवृत्ति और फ़ोन नंबरों की संख्या पर कोई सीमा नहीं है। दैनिक या प्रति घंटे का कोई कोटा नहीं है।
फ़ोन नंबर 20 मिनट तक मान्य रहता है। हर 20 सेकंड में SMS की जाँच होती है। आप तुरंत रद्द कर सकते हैं।
REST में, एक अद्वितीय Idempotency-Key नंबर आवंटन, दोबारा आवंटन, retry और भुगतान अनुरोधों के लिए आवश्यक है। यह वैकल्पिक है लेकिन handler_api.php में अनुशंसित है। नेटवर्क अनुरोध पुनः प्रयास करते समय कुंजी का पुन: उपयोग करें; किसी नए ऑपरेशन के लिए नई कुंजी का उपयोग करें.
API कुंजी का दायरा
कुंजी को खास सेवाओं, देशों और प्रदाताओं से जोड़ा जा सकता है। खाली सूची सभी उपलब्ध विकल्पों की अनुमति देती है।
{
"label": "मेरा सॉफ्टवेयर",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} नाम और policy को पूरी तरह से बदल देता है। रहस्य केवल निर्मित होने पर ही दिखाया जाता है।
कुल मिलाकर 10%. सॉफ्टवेयर कोड के साथ 5% + 5%।
नंबर जारी करते समय, कृपया प्रदान करें ref सॉफ़्टवेयर का स्वामी. अनुरोध उपयोगकर्ता की कुंजी द्वारा अधिकृत है। कोड "रेफ़रल" अनुभाग में है GET /api/v1/referrals → software_ref.
| निवेदन | आमंत्रित करने वाला | सॉफ्टवेयर |
|---|---|---|
| ref के बिना | 10% | — |
| ref के साथ | 5% | 5% |
| ref के साथ, कोई रेफरर नहीं | — | 5% |
प्लेटफ़ॉर्म उपयोगकर्ता की कमाई कम किए बिना बोनस का भुगतान करता है। सॉफ़्टवेयर स्वामी और रेफ़रलकर्ता एक ही व्यक्ति हो सकते हैं. कोई उपयोगकर्ता अपने स्वयं के कोड का उपयोग नहीं कर सकता.
शर्तें तब निश्चित होती हैं जब एक सत्र बनाया जाता है; SMS और retry को पढ़ने से वे नहीं बदलतीं। नए सत्र के लिए फिर से ref भेजें। शुल्क की गणना में, USD 0.003 का उपयोगकर्ता वेतन USD 0.00015 प्रति सॉफ्टवेयर मालिक और संदर्भकर्ता को दिया जाता है। कुल बोनस USD 0.00030 है।
API आदेश
11 XVBC-शैली विधियाँ और आपका SMScash शेष राशि।
GETgetNumberएक नंबर प्राप्त करें+
सत्र बनाता है और उपयोगकर्ता के लिए उपलब्ध फ़ोन नंबर आरक्षित करता है। भुगतान की दर और रेफ़रल हिस्सों के प्राप्तकर्ता आवंटन के समय तय होते हैं; कोड वाला SMS मिलने पर कमाई जमा होती है।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
service* | string | उपलब्ध सेवा कोड. उत्तर API कुंजी के क्षेत्र तक सीमित है। |
country* | integer | getCountries से ID लें। |
operator | string | operators/getOperators (API) से ID लें। operator=1 · any/0 |
session_duration | integer | सत्र 20 मिनट तक चलता है। 20 पास करें, या इस पैरामीटर को छोड़ दें। |
with_operator | integer | 1 उत्तर में ऑपरेटर ID जोड़ता है; 0 या पैरामीटर न देने पर तीन भाग मिलते हैं। |
ref | string | सॉफ़्टवेयर स्वामी का सार्वजनिक कोड: उसके लिए 5% और आमंत्रितकर्ता के लिए 5%। ref के बिना - आमंत्रितकर्ता को 10%। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getNumber भी पास करें।
उदाहरण अनुरोध
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1' \
-H 'Idempotency-Key: request-unique-001'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) }
req.Header.Set("Idempotency-Key", "request-unique-001")
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", {
headers: {"Idempotency-Key": "request-unique-001"}
});
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",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)प्रतिक्रियाएँ
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- स्वचालित चयन: पिछले घंटे में, फिर 24 घंटों में सबसे अधिक कोड। नंबर न हों तो अगला ऑपरेटर।
- Idempotency-Key पास करें: समान कुंजी के साथ वही अनुरोध पिछले सत्र को लौटाता है। पैरामीटर बदलने से IDEMPOTENCY_CONFLICT कॉल आता है।
- पूल के बिना एक संख्यात्मक देश EMPTY_POOL देता है; गलत देश प्रारूप BAD_COUNTRY है।
- हटाए गए सत्र की कुंजी अभी भी उपयोग में है: उस कुंजी के साथ पुनः आवंटन करने से SESSION_CLOSED प्राप्त होता है, और कोई अन्य संख्या नहीं दी जाती।
- आवंटन का परिणाम पुष्ट नहीं है। दूसरा नंबर आवंटित होने से रोकने के लिए स्वचालित पुनः प्रयास बंद है।
GETgetNumbersStatusउपलब्धता जांचें+
सेवा और देश के अनुसार उपलब्ध फ़ोन नंबरों की संख्या।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
country* | integer | getCountries से ID लें। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getNumbersStatus भी पास करें।
उदाहरण अनुरोध
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())प्रतिक्रियाएँ
{
"go_0": 0
}- _0 प्रत्यय का अर्थ किसी विशिष्ट ऑपरेटर के बिना एक विकल्प है।
- उपलब्धता प्रदाता के पूरे नंबर पूल की है। चुने गए चैनल की उपलब्धता नंबर आवंटन के समय जाँची जाती है।
GETgetStatusनवीनतम कोड प्राप्त करें+
सत्र स्थिति और अंतिम SMS कोड के लिए आसान अनुरोध। कोड में अग्रणी शून्य संरक्षित हैं।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
id* | integer | आपके सत्र का ID, नंबर जारी होने पर प्राप्त हुआ। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getStatus भी पास करें।
उदाहरण अनुरोध
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)प्रतिक्रियाएँ
STATUS_WAIT_CODESTATUS_OK:001234STATUS_CANCELNO_ACTIVATION- हर 20 सेकंड में पोल करें। किसी संदेश को फिर से पढ़ने से कोई नया भुगतान नहीं होगा।
- retry के बाद पुराना कोड वापस नहीं आता: getStatus अगले SMS की प्रतीक्षा करता है।
- SMS के बिना किसी संख्या को हटाने के बाद, getStatus एवं getSms STATUS_CANCEL में वापस आ जाते हैं; getSmsFull बंद स्थिति, खाली फोन एवं खाली SMS सूची को लौटाता है। REST /activations/{id} एवं /sms 404 NO_ACTIVATION में वापस आ जाते हैं।
GETsetStatusसत्र प्रबंधित करें+
SMS के लिए प्रतीक्षा समाप्त हो जाएगी, रद्द हो जाएगी या फिर पुनः शुरू हो जाएगी। सत्र की अवधि वैसी ही रहेगी।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
id* | integer | आपके सत्र का ID, नंबर जारी होने पर प्राप्त हुआ। |
status* | integer | 3 — सत्र को विस्तारित न करते हुए अगले कोड का इंतजार करें; 6 — SMS के बाद पूरा करें; 8 — तुरंत रद्द करें। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=setStatus भी पास करें।
उदाहरण अनुरोध
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3' \
-H 'Idempotency-Key: request-unique-001'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) }
req.Header.Set("Idempotency-Key", "request-unique-001")
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", {
headers: {"Idempotency-Key": "request-unique-001"}
});
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",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)प्रतिक्रियाएँ
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- 20 मिनटों के भीतर अगले कोड की प्रतीक्षा में पुनः प्रयास करें। समस्या एवं समाप्ति समय में कोई बदलाव नहीं होगा।
- स्थिति=3 के लिए Idempotency-Key का उपयोग करें: अनुरोध दोहराने से पहले से प्राप्त नया कोड रीसेट नहीं होगा। SMS का इतिहास उपलब्ध रहता है।
- रद्द करने पर पहले से अर्जित कमाई नहीं काटी जाती।
- केवल SMS कोड वाले नंबर ही इतिहास में संरक्षित रहते हैं। कोड के बिना रद्द एवं समाप्त हुए नंबर मिट जाते हैं।
GETgetRepeatNumberदोबारा वही नंबर जारी करें+
आपके इतिहास से एक विशिष्ट संख्या के साथ एक नया सत्र खोलता है। आप उसी देश में उपलब्ध किसी अन्य सेवा का चयन कर सकते हैं.
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
number* | string | आपका पुराना नंबर. केवल संख्याओं और एक वैकल्पिक अग्रणी + की अनुमति है। |
service* | string | उपलब्ध सेवा कोड. उत्तर API कुंजी के क्षेत्र तक सीमित है। |
session_duration | integer | सत्र 20 मिनट तक चलता है। 20 पास करें, या इस पैरामीटर को छोड़ दें। |
with_operator | integer | 1 उत्तर में ऑपरेटर ID जोड़ता है; 0 या पैरामीटर न देने पर तीन भाग मिलते हैं। |
ref | string | सॉफ़्टवेयर स्वामी का सार्वजनिक कोड: उसके लिए 5% और आमंत्रितकर्ता के लिए 5%। ref के बिना - आमंत्रितकर्ता को 10%। |
operator | string | operators/getOperators (API) से ID लें। operator=1 · any/0 |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getRepeatNumber भी पास करें।
उदाहरण अनुरोध
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go' \
-H 'Idempotency-Key: request-unique-001'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) }
req.Header.Set("Idempotency-Key", "request-unique-001")
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", {
headers: {"Idempotency-Key": "request-unique-001"}
});
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",
headers={"Idempotency-Key": "request-unique-001"},
timeout=15,
)
print(response.status_code, response.text)प्रतिक्रियाएँ
ACCESS_NUMBER:43:380670000000NUMBER_IN_USE- सबसे पहले, अपना वर्तमान सत्र समाप्त करें या रद्द करें। यदि नंबर व्यस्त है, तो पुनः जारी नहीं किया जाता है।
- नए सत्र में एक नया ID और वर्तमान टैरिफ प्राप्त होता है। पुराने SMS को इसमें कॉपी नहीं किया गया है। ref फिर से सेट है।
- SMScash इस खाते के इतिहास से केवल संख्याओं को दोहराने की अनुमति देता है। देश की पहचान नंबर से होती है.
- हटाए गए सत्र की कुंजी अभी भी उपयोग में है: उस कुंजी के साथ पुनः आवंटन करने से SESSION_CLOSED प्राप्त होता है, और कोई अन्य संख्या नहीं दी जाती।
GETgetSmsFullSMS को JSON के रूप में प्राप्त करें+
ID, प्रेषक, कोड, पाठ और देश, सेवा और आपूर्तिकर्ता डेटा के साथ सभी संदेशों का संरचित इतिहास।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
id* | integer | आपके सत्र का ID, नंबर जारी होने पर प्राप्त हुआ। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getSmsFull भी पास करें।
उदाहरण अनुरोध
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())प्रतिक्रियाएँ
{
"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": "Оператор 1"
}
}
],
"expires_at": "2026-10-09T12:20:00Z"
}- एकीकरण के लिए पसंदीदा प्रारूप. केवल नए संदेशों को संसाधित करने के लिए sms[].id याद रखें।
- संख्यात्मक स्थिति SMScash: 1 - सक्रिय, 6 - पूर्ण, 8 - रद्द या समाप्त। status_name प्रतीक्षा, प्राप्त, समाप्त, रद्द, समाप्त के बीच अंतर करता है।
- सत्र समाप्त होने के बाद प्राप्त किए गए कोड अभी भी उपलब्ध रहते हैं। बड़ी मात्रा के लिए, after_id के साथ REST /activations/{id}/sms का उपयोग करें।
- SMS के बिना किसी संख्या को हटाने के बाद, getStatus एवं getSms STATUS_CANCEL में वापस आ जाते हैं; getSmsFull बंद स्थिति, खाली फोन एवं खाली SMS सूची को लौटाता है। REST /activations/{id} एवं /sms 404 NO_ACTIVATION में वापस आ जाते हैं।
GETgetSmsSMS को टेक्स्ट स्ट्रिंग के रूप में प्राप्त करें+
मौजूदा क्लाइंट के लिए संपूर्ण SMS इतिहास को स्ट्रिंग प्रारूप में लौटाता है।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
id* | integer | आपके सत्र का ID, नंबर जारी होने पर प्राप्त हुआ। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getSms भी पास करें।
उदाहरण अनुरोध
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)प्रतिक्रियाएँ
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234STATUS_WAIT_CODESTATUS_CANCEL- संदेश प्रारूप: समय|कोड|पाठ। अनेक संदेशों को एक कोलन द्वारा अलग किया जाता है.
- पाठ SMS में स्वयं कोलन और लंबवत पट्टियाँ हो सकती हैं। विश्वसनीय पार्सिंग के लिए, getSmsFull का उपयोग करें।
GETgetServicesसेवाएँ+
उपलब्ध सेवा कोड. उत्तर API कुंजी के क्षेत्र तक सीमित है।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
country | integer | getCountries से ID लें। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getServices भी पास करें।
उदाहरण अनुरोध
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())प्रतिक्रियाएँ
{
"go": {
"name": "Google",
"code": "go"
}
}- सेवा डायरेक्टरी को सभी सप्लायर्स के बीच साझा किया गया है। उपलब्ध संख्या की जाँच अलग से की जाती है।
GETgetCountriesदेश+
चयनित चैनल में विभिन्न देशों के आईडी, नाम एवं कॉल कोड।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getCountries भी पास करें।
उदाहरण अनुरोध
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())प्रतिक्रियाएँ
{
"86": {
"id": 86,
"name": "Italy",
"phone_code": "39"
}
}GETgetOperatorsसंचालक+
उपलब्ध ऑपरेटर: API आईडी, नाम और राशि रोकने की अवधि।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
country | integer | getCountries से ID लें। |
operator | string | operators/getOperators (API) से ID लें। operator=1 · any/0 |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getOperators भी पास करें।
उदाहरण अनुरोध
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())प्रतिक्रियाएँ
{
"1": {
"id": 1,
"provider_id": 1,
"operator": 1,
"name": "Оператор 1",
"earnings_hold_days": 45
}
}- operators/getOperators (API) से ID लें।
GETgetRewardsSMS के लिए इनाम+
दरें देश पर निर्भर हैं। सभी तालिका मूल्य, भुगतान किए गए SMS के हिसाब से हैं।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
country | integer | getCountries से ID लें। |
service | string | उपलब्ध सेवा कोड. उत्तर API कुंजी के क्षेत्र तक सीमित है। |
operator | string | operators/getOperators (API) से ID लें। operator=1 · any/0 |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getRewards भी पास करें।
उदाहरण अनुरोध
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())प्रतिक्रियाएँ
{
"59": {
"vi": {
"1": "0.01000000",
"3": "0.00500000"
}
}
}{}- USD शुल्क राशियाँ 8 दशमान स्थानों के साथ सटीक दशमान स्ट्रिंग के रूप में लौटाई जाती हैं:
- सक्षम प्रदाता आपकी कुंजी के लिए उपलब्ध हैं।
- country ID → service code → operator ID → reward (USD)
GETgetBalanceउपयोगकर्ता की शेष राशि+
अतिरिक्त SMScash: उपार्जन, रेफरल बोनस और भुगतान अनुरोधों को ध्यान में रखते हुए उपलब्ध शेष राशि।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getBalance भी पास करें।
उदाहरण अनुरोध
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)प्रतिक्रियाएँ
ACCESS_BALANCE:0.00- getBalance उपलब्ध USD शेष राशि अधिकतम 8 दशमलव स्थानों के साथ लौटाता है।
- केवल वही राशि निकाली जा सकती है जिसकी होल्ड अवधि समाप्त हो चुकी है।
GETgetHoldBalanceहोल्ड पर+
SMS मिलने के बाद कमाई को प्रदाता की तय अवधि तक होल्ड पर रखा जाता है। तय तारीख पर राशि अपने आप निकासी के लिए उपलब्ध हो जाती है।
पैरामीटर्स
| पैरामीटर | प्रकार | विवरण |
|---|---|---|
api_key* | string | उपयोगकर्ता की व्यक्तिगत API कुंजी। |
* आवश्यक पैरामीटर. सभी अनुरोधों में action=getHoldBalance भी पास करें।
उदाहरण अनुरोध
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)प्रतिक्रियाएँ
ACCESS_HOLD_BALANCE:34.50000001- SMScash · getHoldBalance · USD · 8
- केवल वही राशि निकाली जा सकती है जिसकी होल्ड अवधि समाप्त हो चुकी है।
प्रतिक्रिया कोड और बार-बार अनुरोध
handler_api.php में व्यावसायिक परिणाम आमतौर पर HTTP 200 के साथ आते हैं। मुख्य भाग की जाँच करें। निर्देशिकाएँ और getSmsFull सफल होने पर JSON लौटाते हैं; त्रुटियाँ हमेशा पाठ्य होती हैं।
| कोड | HTTP | कारण और अगला कदम |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | दर अभी तय नहीं किए गए हैंसंख्या आवंटन तब शुरू होगा जब SMS पुरस्कारों को सेट किया जाए। |
COUNTRY_BLOCKED | 200 | इस देश के लिए संख्या आवंटन ब्लॉक है।कोई अन्य देश चुनें। |
BAD_SERVICE | 200 | इस सेवा के लिए नंबर आवंटन प्रतिबंधित है।कोई दूसरी सेवा चुनें। |
PROVIDER_NOT_READY | 200 | संख्या आवंटन अस्थायी रूप से उपलब्ध नहीं हैएपीआई कैटलॉग ताज़ा करें। |
BAD_KEY | 400 | कोई api_key या अमान्य प्रारूप नहीं.अनुरोध में कुंजी की जाँच करें. |
INVALID_API_KEY | 401 | कुंजी अज्ञात है, निरस्त कर दी गई है या खाता अक्षम कर दिया गया है।एक वैध एपीआई कुंजी बनाएं। |
BAD_COUNTRY | 400 | देश में कोई सकारात्मक संख्या गायब है या नहीं।getCountries से ID लें। |
BAD_SESSION_DURATION | 400 | फोन नंबरों को ठीक 20 मिनटों के लिए ही जारी किए जाते हैं।सही session_duration. |
BAD_REQUEST | 400 | अमान्य पैरामीटर या Idempotency-Key.कृपया अपना अनुरोध सही करें. |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | अज्ञात या अक्षम निर्देशिका आइटम.एपीआई कैटलॉग ताज़ा करें। |
BAD_NUMBER | 200 | गलत संख्या प्रारूप.संख्या अंकों में बतायें। |
BAD_ACTION / BAD_STATUS | 200 | अज्ञात आदेश, ID या ऑपरेशन।सेटिंग्स जांचें. |
EMPTY_POOL | 200 | वर्तमान में कोई मेल खाता फ़ोन नंबर उपलब्ध नहीं है.10-30 सेकंड के बाद दोहराएं या फ़िल्टर बदलें। |
NUMBER_IN_USE | 200 | एक सक्रिय सत्र द्वारा एक विशिष्ट संख्या पर कब्जा कर लिया जाता है।अपना सत्र समाप्त करें या कोई अन्य नंबर चुनें। |
NO_ACTIVATION | 200 | सत्र या पिछला नंबर आपके खाते से संबंधित नहीं है.ID और कुंजी की जाँच करें। |
SESSION_CLOSED / SMS_REQUIRED | 200 | राज्य परिवर्तन वर्तमान में अनुपलब्ध है.SMS की स्थिति और उपलब्धता की जाँच करें। |
SCOPE_BLOCKED | 200 | सेवा, देश या विक्रेता कुंजी के लिए अधिकृत नहीं है।एपीआई कुंजी का दायरा अपडेट करें. |
IDEMPOTENCY_CONFLICT | 200 | यह क्वेरी कुंजी पहले से ही अन्य मापदंडों से संबद्ध है।एक नए ऑपरेशन के लिए, एक और Idempotency-Key बनाएं। |
BAD_REF / SELF_REF | 400 | सॉफ़्टवेयर कोड अज्ञात है, अक्षम है, या स्वयं उपयोगकर्ता का है।सॉफ़्टवेयर स्वामी का कोड भेजें. |
INTERNAL_ERROR | 500 | अस्थायी सर्वर या विक्रेता त्रुटि.देरी से दोहराएं और वही Idempotency-Key। |
ALLOCATION_PENDING | 200 | नंबर का अनुरोध पहले से चल रहा है। उसी Idempotency-Key के साथ फिर से प्रयास करें।नंबर का अनुरोध पहले से चल रहा है। उसी Idempotency-Key के साथ फिर से प्रयास करें। |
ALLOCATION_UNCERTAIN | 200 | आवंटन का परिणाम पुष्ट नहीं है। दूसरा नंबर आवंटित होने से रोकने के लिए स्वचालित पुनः प्रयास बंद है।आवंटन का परिणाम पुष्ट नहीं है। दूसरा नंबर आवंटित होने से रोकने के लिए स्वचालित पुनः प्रयास बंद है। |
REST एक ऑब्जेक्ट लौटाता है {"error":{"code":"…","message":"…"}} और नियमित HTTP स्थितियाँ 400/401/403/404/409/503.
{
"error": {
"code": "BAD_REQUEST",
"message": "अनुरोध फ़ील्ड जांचें.",
"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.नए एकीकरण के लिए REST
USD शुल्क राशियाँ 8 दशमान स्थानों के साथ सटीक दशमान स्ट्रिंग के रूप में लौटाई जाती हैं: 0.00300000 USD.
बैलेंस की मुद्रा USD है। अनुरोध और प्रतिक्रिया के स्कीमा यहाँ उपलब्ध हैं: OpenAPI.
/api/v1/catalogसेवाएँ और देश/api/v1/tariffsSMS देशों के अनुसार पुरस्कार दरें/api/v1/offersदरें और पुरस्कार/api/v1/servicesनिर्देशिका/api/v1/countriesनिर्देशिका/api/v1/operatorsनिर्देशिका/api/v1/availability?country=1संख्या उपलब्धता/api/v1/activationsनया सत्र/api/v1/activations/batch?ids=42,43कई नंबर जाँचें/api/v1/activationsनवीनतम 200 सत्र: scope=history, प्रतीक्षा या सभी/api/v1/activations/{id}सत्र और संदेश/api/v1/activations/{id}/sms?after_id=0&limit=100कर्सर के साथ नया SMS/api/v1/activations/{id}/retrySMS की प्रतीक्षा की जा रही है/api/v1/activations/{id}/finishसमापन/api/v1/activations/{id}/cancelरद्द करें/api/v1/activations/repeatसंख्या पुनः जारी करना/api/v1/keysAPI कुंजियाँ/api/v1/keysएक कुंजी बनाएं/api/v1/keys/{id}नाम बदलें या policy/api/v1/keys/{id}कुंजी निरस्त करें/api/v1/referralsरेफरल कोड और कमाई/api/v1/summaryशेष राशि और सारांश/api/v1/balanceहोल्ड पर/api/v1/ledgerकमाई का खाता/api/v1/withdrawalsभुगतान अनुरोध/api/v1/withdrawalsएक अनुरोध बनाएँ/api/v1/statisticsसमग्र आँकड़े/api/v1/earnings/holdsकमाई का होल्डकेवल नया 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": "कोड: 001234",
"sender": "Service",
"received_at": "2026-10-09T12:00:00Z"
}
],
"next_cursor": 101,
"has_more": false
}next_cursor सहेजें और इसे after_id के रूप में पास करें। यदि has_more=true, तो अगला पृष्ठ तुरंत पढ़ा जा सकता है। limit: 1-200। सत्र और SMS केवल स्वामी के लिए उपलब्ध हैं।