SYED SMS API / Developer Documentation

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.

Base URL/api
AuthenticationX-API-Key header
Response formatJSON
BalanceSame as website wallet

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

FieldTypeRequiredDescription
servicestringYesService name, e.g. "WhatsApp" (see Get Services)
countrystringYesCountry 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

CodeMeaningWhat to do
400Bad request — unknown service or countryCheck names against GET /api/services
401Invalid or missing API keySend a valid X-API-Key header
402Insufficient balanceTop up your wallet on the website
404Order not foundCheck the order ID
429Rate limit exceededSlow down and retry after a pause
500Server errorRetry later or contact support

Error responses look like:

{ "success": false, "error": "Insufficient balance. Price is Rs 138." }

Rate Limits

Per minute100 requests
Per hour1000 requests
On limitHTTP 429

FAQ

Yes. Website and API share one wallet. Top up once and spend from either place.
Usually a few seconds to a couple of minutes depending on the service and country. Poll the order status endpoint.
The order expires per panel rules. Buy another number or contact support on Telegram.
Open the API Dashboard in the panel and press Regenerate. The old key stops working immediately.