No SMS = Auto Refund ✓

Become an SMS reseller with the TMPTEL API

A simple, fast and reliable REST API to add virtual SMS numbers to your products, scripts or bots.

Blazing fast

SMS received in seconds across 150+ countries.

Secure

Bearer auth, SHA-256 hashing, rate limiting, optional IP allowlist.

Unbeatable pricing

Same prices as the web app, pay as you go from your balance.

Authentication

Every request must include your API key in the Authorization: Bearer YOUR_KEY header (or the ?api_key= query param).

Response format

{ "status": "success", ... }
// or
{ "status": "error", "error_code": "...", "message": "..." }

Rate limit

60 requests/minute per key by default. Support can raise it for high-volume accounts.

Base endpoint

https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api

Endpoints

GET

Account balance

?action=getBalance

Returns the balance of the account tied to the API key.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getBalance"
Response
{ "status": "success", "balance": 12.45, "currency": "USD" }
GET

List countries

?action=getCountries

Returns every available country.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getCountries"
Response
{ "status": "success", "countries": [{ "country_code": "0", "name": "Russia", "flag_emoji": "🇷🇺" }] }
GET

List services

?action=getServices

Returns every supported service (WhatsApp, Telegram, etc.).

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getServices"
Response
{ "status": "success", "services": [{ "service_code": "wa", "name": "WhatsApp" }] }
GET

Prices

?action=getPrices

Returns prices, optionally filtered by country/service.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getPrices&country=0&service=wa"
Response
{ "status": "success", "prices": [{ "country": "0", "service": "wa", "price": 0.45, "count": 1240 }] }
GET

Buy a number

?action=getNumber

Buys a number for the requested service and country. Debits the balance and returns the number + activation_id.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getNumber&country=0&service=wa"
Response
{
  "status": "success",
  "activation_id": "12345",
  "number": "+79261234567",
  "cost": 0.45,
  "expires_at": "2026-06-15T10:30:00Z"
}
GET

Activation status + received SMS

?action=getStatus

Returns the status of an activation and the SMS received.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getStatus&activation_id=12345"
Response
{
  "status": "success",
  "activation": {
    "activation_id": "12345",
    "number": "+79261234567",
    "order_status": "active",
    "sms": [{ "code": "123456", "text": "Your code is 123456", "received_at": "..." }]
  }
}
GET

Update status

?action=setStatus

Cancel (refund), finish (confirm), or request another SMS (retry).

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=setStatus&activation_id=12345&status=cancel"
Response
{ "status": "success", "action": "cancelled", "refunded": 0.45 }
GET

Active activations

?action=getActivations

Lists activations currently running.

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getActivations"
Response
{ "status": "success", "activations": [...] }
GET

History

?action=getHistory

Order history (optional `limit` param, max 200).

Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getHistory&limit=50"
Response
{ "status": "success", "history": [...] }

Error codes

CodeHTTPDescription
missing_api_key401Missing API key
invalid_api_key401Unknown API key
key_inactive403Key revoked or suspended
key_expired403Key expired
ip_not_allowed403IP not allowed
rate_limited429Too many requests
insufficient_balance402Insufficient balance
no_numbers404Out of stock
service_unavailable404Price unavailable
provider_error502Upstream provider error
api_disabled503API disabled (maintenance)