Instant delivery
Millisecond response time with verification codes arriving in seconds.
6+ countries · 1000+ projects · 99.9% uptime
OpenAPI ready · 24/7 automated delivery
Millisecond response time with verification codes arriving in seconds.
US / UK / HK / CA / ID / VN coverage with expanding inventory.
HMAC request signing, replay protection, and stable service uptime.
OpenAPI + Webhook with multilingual examples for business systems.
Expanding continuously
Sign up quickly and finish account creation.
Create a recharge order and your balance is credited automatically after payment.
Pick a country and project to get a number.
Receive the verification code and complete your flow.
APP_KEY="YOUR_APP_KEY"
APP_SECRET="YOUR_APP_SECRET"
URI="/openapi/v1/orders.php"
TIMESTAMP=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY='{"product_id":413,"quantity":1,"expiry":15,"prefix":"1267","exclude_prefix":"","idempotency_key":"demo-001"}'
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | awk '{print $NF}')
PAYLOAD=$(printf 'POST\n%s\n%s\n%s\n%s' "$URI" "$TIMESTAMP" "$NONCE" "$BODY_HASH")
SIGNATURE=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$APP_SECRET" | awk '{print $NF}')
curl -X POST "https://smsdock.top$URI" \
-H 'Content-Type: application/json' \
-H "X-App-Key: $APP_KEY" \
-H "X-Timestamp: $TIMESTAMP" \
-H "X-Nonce: $NONCE" \
-H "X-Signature: $SIGNATURE" \
-d "$BODY"
<?php
$body = json_encode([
'product_id' => 413,
'quantity' => 1,
'expiry' => 15,
'prefix' => '1267',
'exclude_prefix' => '',
'idempotency_key' => 'demo-001',
], JSON_UNESCAPED_SLASHES);
$timestamp = (string) time();
$nonce = bin2hex(random_bytes(16));
$uri = '/openapi/v1/orders.php';
$payload = "POST\n{$uri}\n{$timestamp}\n{$nonce}\n" . hash('sha256', $body);
$signature = hash_hmac('sha256', $payload, 'YOUR_APP_SECRET');
$ch = curl_init('https://smsdock.top' . $uri);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-App-Key: YOUR_APP_KEY',
'X-Timestamp: ' . $timestamp,
'X-Nonce: ' . $nonce,
'X-Signature: ' . $signature,
],
]);
echo curl_exec($ch);
import hashlib, hmac, json, secrets, time, requests
body = json.dumps({
"product_id": 413,
"quantity": 1,
"expiry": 15,
"prefix": "1267",
"exclude_prefix": "",
"idempotency_key": "demo-001"
}, separators=(",", ":"))
uri = "/openapi/v1/orders.php"
timestamp = str(int(time.time()))
nonce = secrets.token_hex(16)
payload = f"POST\n{uri}\n{timestamp}\n{nonce}\n{hashlib.sha256(body.encode()).hexdigest()}"
signature = hmac.new(b"YOUR_APP_SECRET", payload.encode(), hashlib.sha256).hexdigest()
res = requests.post("https://smsdock.top" + uri, data=body, headers={
"Content-Type": "application/json",
"X-App-Key": "YOUR_APP_KEY",
"X-Timestamp": timestamp,
"X-Nonce": nonce,
"X-Signature": signature,
})
print(res.text)
import crypto from "node:crypto";
const body = JSON.stringify({
product_id: 413,
quantity: 1,
expiry: 15,
prefix: "1267",
exclude_prefix: "",
idempotency_key: "demo-001"
});
const uri = "/openapi/v1/orders.php";
const timestamp = String(Math.floor(Date.now() / 1000));
const nonce = crypto.randomBytes(16).toString("hex");
const bodyHash = crypto.createHash("sha256").update(body).digest("hex");
const payload = `POST\n${uri}\n${timestamp}\n${nonce}\n${bodyHash}`;
const signature = crypto.createHmac("sha256", "YOUR_APP_SECRET").update(payload).digest("hex");
const res = await fetch("https://smsdock.top" + uri, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-App-Key": "YOUR_APP_KEY",
"X-Timestamp": timestamp,
"X-Nonce": nonce,
"X-Signature": signature
},
body
});
console.log(await res.text());
The platform provides overseas virtual number SMS APIs. Users can buy numbers and query verification codes through the console or OpenAPI.
Not at all. The platform provides HMAC signing examples, request specs, and Webhook callback documentation for fast integration.
After creating an account, create a recharge order first. Once payment succeeds, your balance is credited automatically so you can choose a country, project, and buy numbers.
First check number status, project matching, and SMS retention time. Exceptional orders enter the system repair workflow.
Recharge is supported through the USDT-TRC20 checkout. Once credited, the balance can be used for purchases.
Exceptional orders are handled through the system repair and unfreeze return workflow. You can submit the necessary details through the contact support page.
Numbers display an estimated expiration time. Carriers may reclaim them 3-5 days earlier, so please watch the expiry risk closely.
Use the support contact page and the team will verify the issue against orders, balance, and SMS records.