getBalance
params: —Your wallet balance, in euros.
- Success
- ACCESS_BALANCE:12.34
- Errors
- BAD_KEY
Developer API
SwiftSMS speaks the SMS-Activate protocol, so the bots, farm managers and SDKs you already use work here by changing one URL and one key. Same wallet, same prices and the same automatic refunds as the app.
Every request is a GET (or a form POST) to one endpoint, with your key and an action. Buy a number, poll its status until the code lands, then mark it finished.
Your key lives under Account settings → Developer. Treat it like a password: it can spend your balance. It cannot change your password, delete the account or make payments.
Moving from another SMS-Activate-compatible provider? Replace its base URL with https://api.swiftsms.net — the path /stubs/handler_api.php is the same.
# 1. buy a WhatsApp number in the UK (country 16)
curl "https://api.swiftsms.net/stubs/handler_api.php?api_key=$KEY&action=getNumber&service=wa&country=16"
ACCESS_NUMBER:634357446:447882715800
# 2. poll until the code arrives
curl "https://api.swiftsms.net/stubs/handler_api.php?api_key=$KEY&action=getStatus&id=634357446"
STATUS_OK:852508
# 3. finish (or status=8 to cancel and refund)
curl "https://api.swiftsms.net/stubs/handler_api.php?api_key=$KEY&action=setStatus&id=634357446&status=6"
ACCESS_ACTIVATIONEndpoint https://api.swiftsms.net/stubs/handler_api.php · parameter api_key on every call.
Your wallet balance, in euros.
Buys a number. The wallet is charged now and refunded automatically if no code arrives.
The same purchase, answered as JSON with the price and time.
Poll every 5 seconds or so; codes are fetched from the network continuously on our side.
Includes the full text of the SMS.
1 = number used · 3 = wait for another code · 6 = finish · 8 = cancel and refund (only before a code arrives).
Prices in euros, keyed by country id then service code. Pass a service for its complete country list.
Numbers still waiting for, or holding, a code.
Any action can also answer NO_KEY, BAD_KEY, BAD_ACTION or ERROR_LIMIT.
The same key works on the REST API the SwiftSMS apps use, in an X-API-Key header: buy with POST /v1/activations, read with GET /v1/activations/{id}, cancel or ask for another code, and check GET /v1/wallet. Prices and countries are public at GET /v1/services.
curl -X POST https://api.swiftsms.net/v1/activations \
-H "X-API-Key: $KEY" -H "content-type: application/json" \
-d '{"serviceId":"wa","countryCode":"GB"}'
curl https://api.swiftsms.net/v1/activations/<id> -H "X-API-Key: $KEY"Yes. SwiftSMS answers SMS-Activate's handler_api.php actions — getNumber, getStatus, setStatus, getBalance, getPrices and the V2 variants — with the same response tokens. Software written for SMS-Activate or its successors works after you change the base URL to api.swiftsms.net and use your SwiftSMS API key.
Sign in, open Account settings, and find the Developer section. The key can be revealed and regenerated there; regenerating immediately disables the old one.
Euros. getBalance returns your SwiftSMS wallet balance and getPrices returns our sell prices, which are exactly what a purchase debits.
No. The price is held when you buy the number and refunded automatically if no code arrives within about ten minutes, or immediately if you cancel with setStatus 8 before a code comes in.
The numeric country ids used across the SMS-Activate ecosystem — 16 for the United Kingdom, 187 for the United States, and so on. getCountries returns the full list with ISO codes. An ISO alpha-2 code such as GB is accepted too.
1,200 requests per minute per account, which comfortably covers polling hundreds of numbers at once. Past it the API answers ERROR_LIMIT until the minute rolls over.
Every SwiftSMS account has one. Sign in, top up, and point your tools at api.swiftsms.net.
Open my accountNo SIM, no contract — pay only when the code lands.