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-apiEndpoints
Account balance
?action=getBalanceReturns the balance of the account tied to the API key.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getBalance"
{ "status": "success", "balance": 12.45, "currency": "USD" }List countries
?action=getCountriesReturns every available country.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getCountries"
{ "status": "success", "countries": [{ "country_code": "0", "name": "Russia", "flag_emoji": "🇷🇺" }] }List services
?action=getServicesReturns every supported service (WhatsApp, Telegram, etc.).
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getServices"
{ "status": "success", "services": [{ "service_code": "wa", "name": "WhatsApp" }] }Prices
?action=getPricesReturns prices, optionally filtered by country/service.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getPrices&country=0&service=wa"
{ "status": "success", "prices": [{ "country": "0", "service": "wa", "price": 0.45, "count": 1240 }] }Buy a number
?action=getNumberBuys a number for the requested service and country. Debits the balance and returns the number + activation_id.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getNumber&country=0&service=wa"
{
"status": "success",
"activation_id": "12345",
"number": "+79261234567",
"cost": 0.45,
"expires_at": "2026-06-15T10:30:00Z"
}Activation status + received SMS
?action=getStatusReturns the status of an activation and the SMS received.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getStatus&activation_id=12345"
{
"status": "success",
"activation": {
"activation_id": "12345",
"number": "+79261234567",
"order_status": "active",
"sms": [{ "code": "123456", "text": "Your code is 123456", "received_at": "..." }]
}
}Update status
?action=setStatusCancel (refund), finish (confirm), or request another SMS (retry).
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=setStatus&activation_id=12345&status=cancel"
{ "status": "success", "action": "cancelled", "refunded": 0.45 }Active activations
?action=getActivationsLists activations currently running.
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getActivations"
{ "status": "success", "activations": [...] }History
?action=getHistoryOrder history (optional `limit` param, max 200).
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://ubzuknfnkigmszmqflqi.supabase.co/functions/v1/public-api?action=getHistory&limit=50"
{ "status": "success", "history": [...] }Error codes
| Code | HTTP | Description |
|---|---|---|
| missing_api_key | 401 | Missing API key |
| invalid_api_key | 401 | Unknown API key |
| key_inactive | 403 | Key revoked or suspended |
| key_expired | 403 | Key expired |
| ip_not_allowed | 403 | IP not allowed |
| rate_limited | 429 | Too many requests |
| insufficient_balance | 402 | Insufficient balance |
| no_numbers | 404 | Out of stock |
| service_unavailable | 404 | Price unavailable |
| provider_error | 502 | Upstream provider error |
| api_disabled | 503 | API disabled (maintenance) |