API নথিপত্র
একটি অনুরোধে আরম্ভ করুন
একটি নির্মাণ করুন API আপনার ডেস্ক-বোর্ডের কি, একটি সংখ্যা প্রাপ্ত করে প্রতিটি বার্তা পরীক্ষা করুন 10 সেকেন্ড। প্রদান করা হলে SMS কোড এসেছেন; পুনরায় পড়ানো আপনার সমস্যার প্রভাবিত হয় না ।
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'বিকল্প সুসংগত ইন্টারফেস ঠিকানা: /handler_api.php. উপস্থিত REST অন্তর্ভুক্তি কাজ করছে।
অনুরোধ তৈরির সরঞ্জাম
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.কী সংরক্ষণ করা হয় না। এই যাচাই কোনো নম্বর বরাদ্দ করে না।
নতুন সঙ্গীকরণের জন্য রেস্ট
সেবা ও দেশ
একটি পরিসেবা ও দেশ নির্বাচন করুন। 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)
একটি সংখ্যা প্রাপ্ত করুন
GET /stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86স্বয়ংক্রিয় নির্বাচন: উপলব্ধ অপারেটর থেকে এলোমেলোভাবে।
ACCESS_NUMBER: session ID · phone number
service + country · session_duration: 20
ref: software owner code (optional)
operator: public ID (e.g. 1) or comma-separated IDs (e.g. "1,3")
optional · omitted/any/0: random eligible provider
country: integer · service: string · SMS code: stringসংখ্যাটির জন্য বৈধ 20 মিনিট. SMS প্রতিটি পরীক্ষা করা হয়েছে 10 সেকেন্ড, তৎক্ষনাৎ বাতিল করা যাবে।
একাধিক নম্বর যাচাই
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 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';
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.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'{
"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.সংখ্যাটির জন্য বৈধ 20 মিনিট. SMS প্রতিটি পরীক্ষা করা হয়েছে 10 সেকেন্ড, তৎক্ষনাৎ বাতিল করা যাবে।
অনুমোদন ও পুনরায় প্রচেষ্টা
REST: হেডার Authorization: Bearer YOUR_API_KEY. সুসংগত ইন্টারফেস: পরামিতি api_key এবং action. HTTPS ব্যবহার করুন।
API-কি পরিচালনা করার জন্য আপনার অ্যাকাউন্ট লিখুন।
API অনুরোধের ফ্রিকেশন এবং ফোন নম্বরের সংখ্যা সীমিত নয়। দিন অথবা ঘন্টা কুটা নেই।
সংখ্যাটির জন্য বৈধ 20 মিনিট. SMS প্রতিটি পরীক্ষা করা হয়েছে 10 সেকেন্ড, তৎক্ষনাৎ বাতিল করা যাবে।
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). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
session_duration | integer | সেশান বর্তমানে চলছে 20 মিনিট, পাস 20 এই প্যারামিটারটি বাতিল করা হবে। |
with_operator | integer | 1 উত্তরে অপারেটরের ID যোগ করে; 0 বা প্যারামিটার না থাকলে তিনটি অংশ ফেরত দেয়। |
ref | string | Публичный код владельца софта: 5% ему и 5% пригласившему. Без ref — 10% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=getNumber পরিবর্তন করা হবে।
উদাহরণ অনুরোধ
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)প্রতিক্রিয়া
ACCESS_NUMBER:42:380670000000:1EMPTY_POOL- স্বয়ংক্রিয় নির্বাচন: উপলব্ধ অপারেটর থেকে এলোমেলোভাবে।
- পুল ছাড়া একটি সংখ্যাসূচক দেশ 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'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)প্রতিক্রিয়া
ACCESS_RETRY_GETACCESS_ACTIVATIONACCESS_CANCEL- প্রাথমিক অন্তর্ভুক্ত পরবর্তী কোডের জন্য প্রচেষ্টা করুন 20 মিনিট। সমস্যা ও মেয়াদপূর্তী সময় পরিবর্তন করা হয় না।
- বাতিল করার দ্বারা ইতিমধ্যেই পূর্বনির্ধারিত পুরোপুরি মুছে ফেলা হয়নি।
- শুধুমাত্র 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% пригласившему. Неизвестный, отключённый, некорректный или собственный ref игнорируется: запрос продолжается без бонуса владельцу софта. Действующие коды и прежние условия уже выданных сессий сохраняются. |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · any/0 |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=getRepeatNumber পরিবর্তন করা হবে।
উদাহরণ অনুরোধ
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)প্রতিক্রিয়া
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": "operator=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-কি-র স্থানে সীমাংসিত।
ডিরেক্টরি
প্রকাশনা…
| নাম | পরিসেবা কোড service |
|---|
সার্ভিস ডিরেক্টরি সামগ্রীর মধ্যে যৌথরূপে অংশগ্রহণ করা হয়েছে। সংখ্যার উপলব্ধতা পৃথকভাবে পরীক্ষা করা হয়।
আপনি নির্দিষ্ট পরিসেবা, দেশ ও প্রদানকারীদের জন্য একটি কি সীমিত করতে পারেন। সম্ভবত সকল বিকল্প অনুমতি প্রদানের ফাঁকা তালিকা।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
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, নাম ও কল করা হচ্ছে।
ডিরেক্টরি
প্রকাশনা…
| নাম | দেশের ID country |
|---|
আপনি নির্দিষ্ট পরিসেবা, দেশ ও প্রদানকারীদের জন্য একটি কি সীমিত করতে পারেন। সম্ভবত সকল বিকল্প অনুমতি প্রদানের ফাঁকা তালিকা।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
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). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · 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": "operator=1",
"earnings_hold_days": 45
}
}- Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3.
GETgetRewardsSMS-র ফলাফল+
রাষ্ট্রের মাত্রা নির্ভর। সমস্ত টেবিলের পরিমাণ প্রতি পরিশোধিত SMS।
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
country | integer | নিন ID থেকে getCountries. |
service | string | উপলব্ধ পরিসেবা কোড। উত্তরটি API-কি-র স্থানে সীমাংসিত। |
operator | string | Возьмите ID из operators/getOperators (API). ID поставщиков, через запятую: operator=1,3. operator=1 · operator=1,3 · 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)
GETgetTopCountriesByServiceТоп стран по сервису+
До 10 стран с лучшей доставкой смс кодов за последние 24 часа
প্যারামিটার
| প্যারামিটার | ধরন | বিবরণ |
|---|---|---|
api_key* | string | ব্যবহারকারীর ব্যক্তিগত API কী। |
service* | string | Код сервиса из getServices. |
* আবশ্যক প্যারামিটার। সমস্ত অনুরোধগুলোতেও অ্যাকশন=getTopCountriesByService পরিবর্তন করা হবে।
উদাহরণ অনুরোধ
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())প্রতিক্রিয়া
Структура ответа
| Ключ в примере | বিবরণ | ডিরেক্টরি |
|---|---|---|
["12"], ["36"] | দেশের 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 не задаёт места в рейтинге.
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 | অনুরোধের ক্ষেত্র পরীক্ষা করুন।অনুগ্রহ করে আপনার অনুরোধ সঠিক করুন। |
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 কি-র ক্ষেত্র আপডেট করুন। |
INTERNAL_ERROR | 500 | অস্থায়ী সার্ভার অথবা বিক্রেতার ত্রুটি।যোগাযোগ ও সহায়তা · X-Request-ID |
ALLOCATION_PENDING | 200 | অপেক্ষারতgetActiveActivations · getStatus |
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 শুধুমাত্র মালিকের জন্য উপলব্ধ।