LetMeBeYourPlug - Instant virtual numbers for secure SMS verification and communication. Built for speed, trust and global reach.

API Documentation

Integrate PlugGuySMS SMS verification into your website or mobile app.

Base URL: https://plugguysms.com/api/v1

Authentication

All requests must include your API key. Generate one from your dashboard under Profile → API Key.

Send the key as a bearer token, or as a query parameter:

Authorization: Bearer sv_live_xxxxxxxxxxxxxxxx
GET /api/v1/balance.php?api_key=sv_live_xxxxxxxxxxxxxxxx
Sign in to see your own API key.

Endpoints

MethodEndpointDescription
GET /api/v1/balance.php Get your wallet balance.
GET /api/v1/servers.php List available servers (server1–server4).
GET /api/v1/countries.php List available countries. Optional: ?server=server1
GET /api/v1/services.php List services with prices and stock. Optional: ?country=US&server=server1
GET /api/v1/numbers.php Check availability. Optional: ?country=US&service=whatsapp&server=server1
POST /api/v1/order.php Purchase a number. Body: server, country, service.
GET /api/v1/order-status.php?id=... Get order status.
GET /api/v1/order-sms.php?id=... Retrieve the verification code for an order.
POST /api/v1/cancel-order.php?id=... Cancel an order.
GET /api/v1/orders.php List your recent orders.

Place an order

Request body (JSON):

{
  "server":  "server1",
  "country": "US",
  "service": "whatsapp"
}

Response:

{
  "success": true,
  "order": {
    "order_id": "ORD-20240101120000ABC",
    "number": "+12025550123",
    "price": 420.00,
    "status": "active",
    "expires_at": "2024-01-01 12:20:00"
  }
}

cURL

curl -X POST https://plugguysms.com/api/v1/order.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"server":"server1","country":"US","service":"whatsapp"}'

PHP

$ch = curl_init('https://plugguysms.com/api/v1/order.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['server'=>'server1','country'=>'US','service'=>'whatsapp']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);

JavaScript (fetch)

const res = await fetch('https://plugguysms.com/api/v1/order.php', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' },
  body: JSON.stringify({ server: 'server1', country: 'US', service: 'whatsapp' })
});
const order = await res.json();

Python

import requests
r = requests.post('https://plugguysms.com/api/v1/order.php',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={'server': 'server1', 'country': 'US', 'service': 'whatsapp'})
order = r.json()

Flutter / Dart

final res = await http.post(
  Uri.parse('https://plugguysms.com/api/v1/order.php'),
  headers: {'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json'},
  body: jsonEncode({'server': 'server1', 'country': 'US', 'service': 'whatsapp'}),
);

Retrieve the SMS code

curl "https://plugguysms.com/api/v1/order-sms.php?id=ORD-20240101120000ABC" \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "success": true,
  "status": "completed",
  "number": "+12025550123",
  "sms_code": "482913",
  "sms_text": "Your WhatsApp verification code is 482913."
}

While the code has not arrived, status is waiting_sms. Poll every 5 seconds or rely on the sms.received webhook.

Webhooks

Set a webhook URL in your dashboard (Profile → Webhook). We send POST requests with JSON payloads signed using HMAC-SHA256 of the raw body with your webhook secret.

EventDescription
order.createdAn order was placed successfully.
sms.receivedA verification code arrived for an order.
order.completedAn order completed.
order.cancelledAn order was cancelled.
order.refundedAn order was refunded.
{
  "event": "sms.received",
  "order_id": "ORD-20240101120000ABC",
  "status": "completed",
  "phone_number": "+12025550123",
  "service": "whatsapp",
  "country": "US",
  "verification_code": "482913"
}

Verify signatures with the headers X-Webhook-Signature and X-Webhook-Event.

Error codes

HTTPCodeMeaning
400INVALID_PARAMETERSMissing or invalid request parameters.
401INVALID_KEYMissing, revoked or unknown API key.
402INSUFFICIENT_BALANCEWallet balance is too low.
403ACCOUNT_SUSPENDEDThe account is suspended.
404ORDER_NOT_FOUNDThe order does not exist.
409NO_STOCKThe requested service has no stock.
429RATE_LIMITEDToo many requests. Slow down.
500SERVER_ERRORUnexpected server error.

Rate limits

Requests are limited per API key: 60 per minute and 1000 per hour. Exceeding the limit returns HTTP 429.