SYED SMS API
Buy virtual numbers and receive OTP codes programmatically. The API uses the same wallet balance as the website — top up once, spend anywhere.
Authentication
Every request must carry your personal API key in the X-API-Key header. Get or regenerate your key from the panel's API Dashboard. Keep it secret — anyone with your key can spend your balance.
X-API-Key: syed_live_your_key_here
Quick Start
1) Top up your wallet on the website. 2) Copy your API key. 3) Create an order, then poll the order status until the OTP code arrives.
curl -X POST {BASE}/orders \
-H "X-API-Key: syed_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"service": "WhatsApp", "country": "Pakistan"}'
Pricing
Prices are per number, in PKR, and depend on service + country. The live price list is always available from GET /api/services. Your wallet is charged only when an order is successfully created.
Get Services
GET /api/services
Lists all services with per-country prices and the country catalogue.
Response
{
"success": true,
"services": [
{ "service": "WhatsApp",
"prices_pkr": { "Pakistan": 138, "India": 53, "United States": 125 } }
],
"countries": [
{ "name": "Pakistan", "dial": "+92", "flag": "🇵🇰" }
]
}
Create Order
POST /api/orders
Buys a number for the given service and country. The price is deducted from your wallet immediately.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| service | string | Yes | Service name, e.g. "WhatsApp" (see Get Services) |
| country | string | Yes | Country name, e.g. "Pakistan" |
Request
{ "service": "WhatsApp", "country": "Pakistan" }
Response
{
"success": true,
"order": {
"id": "ord_00042",
"service": "WhatsApp",
"country": "Pakistan",
"number": "+92321XXXXXXX",
"price": 138,
"status": "waiting",
"code": null
}
}
Get Order Status
GET /api/orders/:id
Poll this endpoint to check the order. When the SMS arrives, status becomes completed and code contains the OTP.
Response
{
"success": true,
"order": {
"id": "ord_00042",
"service": "WhatsApp",
"country": "Pakistan",
"number": "+92321XXXXXXX",
"price": 138,
"status": "completed",
"code": "482913"
}
}
Check Balance
GET /api/balance
Response
{ "success": true, "balance": 482, "currency": "PKR", "customer_id": "SYED-1001" }
Services & Countries
Supported services include WhatsApp, Telegram, Facebook, Instagram, TikTok, Google, Amazon and many more. Countries include Pakistan, India, United States, Brazil, Turkey, Indonesia, Nigeria, United Kingdom and others. Always fetch the live list from GET /api/services — names must match exactly.
Error Codes
| Code | Meaning | What to do |
|---|---|---|
| 400 | Bad request — unknown service or country | Check names against GET /api/services |
| 401 | Invalid or missing API key | Send a valid X-API-Key header |
| 402 | Insufficient balance | Top up your wallet on the website |
| 404 | Order not found | Check the order ID |
| 429 | Rate limit exceeded | Slow down and retry after a pause |
| 500 | Server error | Retry later or contact support |
Error responses look like:
{ "success": false, "error": "Insufficient balance. Price is Rs 138." }