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
স্বয়ংক্রিয় নির্বাচন: গত ঘণ্টায়, তারপর ২৪ ঘণ্টায় সবচেয়ে বেশি কোড। নম্বর না থাকলে পরবর্তী অপারেটর।
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.কী সংরক্ষণ করা হয় না। এই যাচাই কোনো নম্বর বরাদ্দ করে না।
নতুন সঙ্গীকরণের জন্য রেস্ট
সেবা ও দেশ
একটি পরিসেবা ও দেশ নির্বাচন করুন। 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
}স্বয়ংক্রিয় নির্বাচন: গত ঘণ্টায়, তারপর ২৪ ঘণ্টায় সবচেয়ে বেশি কোড। নম্বর না থাকলে পরবর্তী অপারেটর।
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 মিনিট. SMS প্রতিটি পরীক্ষা করা হয়েছে 20 সেকেন্ড, তৎক্ষনাৎ বাতিল করা যাবে।
একাধিক নম্বর যাচাই
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 মিনিট. SMS প্রতিটি পরীক্ষা করা হয়েছে 20 সেকেন্ড, তৎক্ষনাৎ বাতিল করা যাবে।
অনুমোদন ও পুনরায় প্রচেষ্টা
REST: হেডার Authorization: Bearer YOUR_API_KEY. সুসংগত ইন্টারফেস: পরামিতি api_key এবং action. HTTPS ব্যবহার করুন।
API-কি পরিচালনা করার জন্য আপনার অ্যাকাউন্ট লিখুন।
API অনুরোধের ফ্রিকেশন এবং ফোন নম্বরের সংখ্যা সীমিত নয়। দিন অথবা ঘন্টা কুটা নেই।
সংখ্যাটির জন্য বৈধ 20 মিনিট. SMS প্রতিটি পরীক্ষা করা হয়েছে 20 সেকেন্ড, তৎক্ষনাৎ বাতিল করা যাবে।
রেস্টের মধ্যে এক একজন অন্যান্য Idempotency-Key সংখ্যা বরাদ্দ করার জন্য আবশ্যক, পুনরাবৃত্তি আবন্টনের জন্য, retry এবং পুরোপুরি অনুরোধ। এটি বৈকল্পিক কিন্তু প্রস্তাবিত handler_api.php. নেটওয়ার্ক অনুরোধ প্রচেষ্টা করার সময় কি পুনরায় ব্যবহার করা হবে; নতুন কর্মের জন্য একটি নতুন কি ব্যবহার করুন।
API কী ক্ষেত্র
আপনি নির্দিষ্ট পরিসেবা, দেশ ও প্রদানকারীদের জন্য একটি কি সীমিত করতে পারেন। সম্ভবত সকল বিকল্প অনুমতি প্রদানের ফাঁকা তালিকা।
{
"label": "আমার সফ্টওয়্যার",
"policy": {
"services": [
"go"
],
"countries": [
86
],
"providers": [
1
]
}
}PATCH /api/v1/keys/{id} নাম ও নীতি সম্পূর্ণরূপে পরিবর্তন করা হয়। এই গোপনটি শুধুমাত্র নির্মাণ করার সময় প্রদর্শিত হবে।
10% সর্বমোট। 5% + 5% সফ্টওয়্যার কোড সহ।
একটি সংখ্যা প্রদান করার সময়, অনুগ্রহ করে প্রদানে দিন ref সফ্টওয়্যারের মালিকানা। এই অনুরোধটি এক্সিকিউটরের কি দ্বারা অনুমোদন করা হয়। কোডটি "রিফার্রালস" অংশে এবং এর মধ্যে উপস্থিত রয়েছে GET /api/v1/referrals → software_ref.
| অনুরোধ | আমন্ত্রণকারী | সফ্টওয়্যার |
|---|---|---|
| রেফ ছাড়া | 10% | — |
| রিফের সাথে | 5% | 5% |
| রিফের সাথে কোন রেফারার নেই | — | 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 | নিন ID থেকে getCountries. |
operator | string | নিন ID থেকে operators/getOperators (API). operator=1 · any/0 |
session_duration | integer | সেশান বর্তমানে চলছে 20 মিনিট, পাস 20 এই প্যারামিটারটি বাতিল করা হবে। |
with_operator | integer | 1 উত্তরে অপারেটরের ID যোগ করে; 0 বা প্যারামিটার না থাকলে তিনটি অংশ ফেরত দেয়। |
ref | string | সফ্টওয়্যার মালিকের সার্বজনীন কোড: 5% তার জন ্ য এবং 5% আমন্ত্রণকারীর জন্য। ref - 10% আমন্ত্রণকারীকে. |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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- স্বয়ংক্রিয় নির্বাচন: গত ঘণ্টায়, তারপর ২৪ ঘণ্টায় সবচেয়ে বেশি কোড। নম্বর না থাকলে পরবর্তী অপারেটর।
- Idempotency-Key পাস করুন: একই কি-র সাথে একই অনুরোধ পূর্ববর্তী সেশান প্রাপ্ত করে। প্যারামিটার পরিবর্তিত হচ্ছে IDEMPOTENCE_CONFLICT।
- পুল ছাড়া একটি সংখ্যাসূচক দেশ EMPTY_POOL দিয়েছেন; দেশের বিন্যাস সঠিক নয় BAD_COUNTRY।
- মুছে ফেলা সেশানের কি ব্যবহৃত হচ্ছে: এই কি-র সাহায্যে বরাদ্দকরণ পুনরায় চালানোর ফলাফল SESION_CLOSED এবং অন্যান্য সংখ্যা প্রদান করা হয়নি।
- বরাদ্দকৃত ফলাফলটি নিশ্চিত নয়। দ্বিতীয় সংখ্যা আবন্টন করার জন্য স্বয়ংক্রিয়রূপে প্রচেষ্টা নিষ্ক্রিষ্ট করা হয়।
GETgetNumbersStatusউপস্থিতি পরীক্ষা করুন+
সার্ভিস ও দেশ অনুযায়ী উপলব্ধ ফোন নম্বর।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
country* | integer | নিন ID থেকে getCountries. |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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, সংখ্যা প্রদান করার সময়। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 সেকেন্ড। বার্তা পুনরায় পড়তে অন্যান্য পদার্থ নির্মাণ করা হবে না।
- পুরোনো কোড পুনরায় চেষ্টা করার পরে প্রাপ্ত হয়নি: getStatus-র জন্য পরবর্তী SMS-র অপেক্ষা করা হচ্ছে।
- SMS ছাড়া একটি সংখ্যা মুছে ফেলার পরে, getStatus ও getSms return STATUS_CANCEL; getSmsFull বন্ধ করা অবস্থা, একটি ফাঁকা ফোন এবং একটি ফানার স্ম তালিকা প্রাপ্ত করে। REST /activations/{id} এবং /sms প্রত্যাখ্যান করে 404 NO_ACTIVATION।
GETsetStatusসেশান পরিচালনা করুন+
সমাপ্তি, বাতিল অথবা পুনরায় অপেক্ষা করা হবে SMS. সেশানের মেয়াদ একই রয়েছে।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
id* | integer | আপনার সেশানের ID, সংখ্যা প্রদান করার সময়। |
status* | integer | 3 — সেশান প্রসারণ না করে পরবর্তী কোডের জন্য অপেক্ষা করুন; 6 - পরে শেষ করা হবে SMS; 8 — তৎক্ষনাৎ বাতিল করুন। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 | নিন ID থেকে operators/getOperators (API). operator=1 · any/0 |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 শুধুমাত্র এই অ্যাকাউন্টের ইতিহাস থেকে সংখ্যা পুনরাবৃত্তি করার অনুমতি দিয়েছেন। দেশটির নম্বর দ্বারা চিহ্নিত করা হয়।
- মুছে ফেলা সেশানের কি ব্যবহৃত হচ্ছে: এই কি-র সাহায্যে বরাদ্দকরণ পুনরায় চালানোর ফলাফল SESION_CLOSED এবং অন্যান্য সংখ্যা প্রদান করা হয়নি।
GETgetSmsFullJSON হিসাবে SMS প্রাপ্ত করুন+
ID, প্রেরক, কোড, টেক্সট ও দেশ, পরিসেবা এবং প্রদানকারী তথ্য সহ সমস্ত বার্তার ইতিহাস নির্ধারিত হয়েছে।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
id* | integer | আপনার সেশানের ID, সংখ্যা প্রদান করার সময়। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 অপেক্ষা, প্রাপ্ত, সমাপ্ত, বাতিল, মেয়াদপূর্তী।
- সেশান বন্ধ করার পরে প্রাপ্ত ক'ড উপলব্ধ রয়েছে। বড় ভলিউমের জন্য ব্যবহার করুন REST /activations/{id}/sms সাথে after_id.
- SMS ছাড়া একটি সংখ্যা মুছে ফেলার পরে, getStatus ও getSms return STATUS_CANCEL; getSmsFull বন্ধ করা অবস্থা, একটি ফাঁকা ফোন এবং একটি ফানার স্ম তালিকা প্রাপ্ত করে। REST /activations/{id} এবং /sms প্রত্যাখ্যান করে 404 NO_ACTIVATION।
GETgetSmsটেক্সট পংক্তি রূপে SMS প্রাপ্ত করুন+
বর্তমান ক্লায়েন্টের স্ট্রিং বিন্যাসে সম্পূর্ণ SMS ইতিহাস প্রাপ্ত করে।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
id* | integer | আপনার সেশানের ID, সংখ্যা প্রদান করার সময়। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 | নিন ID থেকে getCountries. |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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দেশ+
নির্বাচিত চ্যানেলের দেশগুলোর জন্য IDs, নাম ও কল করা হচ্ছে।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 | নিন ID থেকে getCountries. |
operator | string | নিন ID থেকে operators/getOperators (API). operator=1 · any/0 |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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
}
}- নিন ID থেকে operators/getOperators (API).
GETgetRewardsSMS-র ফলাফল+
রাষ্ট্রের মাত্রা নির্ভর। সমস্ত টেবিলের পরিমাণ প্রতি পরিশোধিত SMS।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
country | integer | নিন ID থেকে getCountries. |
service | string | উপলব্ধ পরিসেবা কোড। উত্তরটি API-কি-র স্থানে সীমাংসিত। |
operator | string | নিন ID থেকে operators/getOperators (API). operator=1 · any/0 |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 কী। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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 কী। |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=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.pp বৈশিষ্ট্যের ফলাফল সাধারণত এসেছে HTTP 200. মূল টেক্সট পরীক্ষা করুন। ডিরেক্টরি এবং getSmsFull প্রত্যাখ্যান JSON সফল হলে ত্রুটি সর্বদা টেক্সট।
| কোড | HTTP | কারণ ও পরবর্তী ধাপ |
|---|---|---|
TARIFF_NOT_CONFIGURED | 200 | হার এখনো নির্ধারিত হয়নিসংখ্যা বরাদ্দ করার সময় SMS পুরোপুরি কনফিগার করা হলে আরম্ভ করা হবে। |
COUNTRY_BLOCKED | 200 | এই দেশের সংখ্যা বরাদ্দ করা হচ্ছে।অন্য দেশ নির্বাচন করুন। |
BAD_SERVICE | 200 | এই পরিসেবাের সংখ্যা বরাদ্দ করা হচ্ছে।অন্য একটি পরিসেবা নির্বাচন করুন। |
PROVIDER_NOT_READY | 200 | সংখ্যা বরাদ্দকরণ অস্থায়ীরূপে উপলব্ধ নয়API ক্যাটালগ সতেজ করুন। |
BAD_KEY | 400 | api_key অথবা অবৈধ বিন্যাস নেই।অনুরোধের কি পরীক্ষা করুন। |
INVALID_API_KEY | 401 | কি অজানা, প্রত্যাখ্যান করা অথবা অ্যাকাউন্ট নিষ্ক্রিয় করা হয়েছে।একটি বৈধ API কি নির্মাণ করুন। |
BAD_COUNTRY | 400 | দেশ অনুপস্থিত অথবা অবশ্যই নম্বর নয়।নিন ID থেকে getCountries. |
BAD_SESSION_DURATION | 400 | সঠিকরূপে ফোন সংখ্যা প্রকাশ করা হয়েছে 20 মিনিট.সঠিক session_duration. |
BAD_REQUEST | 400 | অবৈধ প্যারামিটার অথবা Idempotency-Key.অনুগ্রহ করে আপনার অনুরোধ সঠিক করুন। |
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER | 200 | অজানা অথবা নিষ্ক্রিয় ডিরেক্টরির বস্তু।API ক্যাটালগ সতেজ করুন। |
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 | কি-র জন্য পরিসেবা, দেশ অথবা বিক্রেতার অনুমতি নেই।API কি-র ক্ষেত্র আপডেট করুন। |
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.নতুন সঙ্গীকরণের জন্য রেস্ট
USD টারিফের পরিমাণ সঠিক দশমিক স্ট্রিং রূপে ফিরিয়ে ফেলা হয় 8 দশমিক স্থান: 0.00300000 USD.
বেলেন্স মাত্রা হল USD। প্রতিক্রিয়ার স্কীমার মধ্যে উপস্থিত রয়েছে OpenAPI.
/api/v1/catalogসেবা ও দেশ/api/v1/tariffsদেশ অনুযায়ী SMS পুরোপুরির হার/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}নাম অথবা নীতি পরিবর্তন করুন/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, পরবর্তী পৃষ্ঠাটি তৎক্ষনাৎ পড়তে পারে। সীমা: 1–200. সেশান এবং SMS শুধুমাত্র মালিকের জন্য উপলব্ধ।