SMS-Activate shut down.
Here's where to go next.
After about ten years, SMS-Activate ceased operations on 22 December 2025. Withdrawals closed on 5 February 2026 and support ended that April. This page covers what actually happened, why every site still using the name is a clone, and how to move your verifications — and your API scripts — to SMSPin.
- Automatic refund when no code arrives
- 210+ countries, live per-route pricing
- Same service codes — wa, tg, …
- Documented JSON REST API
Last updated 4 September 2026
What happened to SMS-Activate
There was no long wind-down. The service stopped, and a short notice replaced it — which is still the only authoritative account of the closure. Everything below is quoted from that notice rather than from second-hand reports, several of which circulate the wrong date.
“SMS-Activate service is closed. We have completely ceased our operation since December 22. Thanks to everyone who has been with us for these 10 years.”
— the closure notice published on sms-activate.org
- 22 Dec 2025
Operations ceased
SMS-Activate stopped issuing numbers. Its homepage now reads simply “SMS-Activate service is closed”, thanking users “for these 10 years”. Activations and API calls stopped resolving the same day.
- 5 Feb 2026
Withdrawals closed
The window to withdraw a remaining balance ended. Users were notified by email and via the Telegram bot; after this date the notice states plainly that “there is no one who can deal with your requests”.
- 30 Apr 2026
Support window ended
The final contact address for urgent questions stopped being monitored. There is now no official channel for balance recovery or account access.
- Today
Only clones remain
The domain still resolves, but it serves the closure notice — nothing else. Any site presenting a working SMS-Activate login is not the original service.
SMSPin is not affiliated with SMS-Activate and had no involvement in its closure. We cannot access, restore, or refund SMS-Activate accounts or balances.
Any “SMS-Activate” still online is a clone
This is not our characterisation — it is what the operators wrote on the way out:
“Our name goes away with us. If you find a service called SMS-Activate, then be sure they are scammers.”
Several sites now run on lookalike domains, some reproducing the original login page. A working SMS-Activate sign-in form in 2026 is the clearest possible signal that a site is not the original service. Do not enter old credentials — if you reused that password anywhere, change it — and do not deposit funds. This applies to every replacement you consider, including ours: check the domain before you pay.
What to check in a replacement
A feature-by-feature table against a service that no longer runs would be theatre. These are the four things that actually decide what a replacement costs you — worth asking of any provider on your shortlist, not only this one.
Where the numbers actually come from
Strict apps — WhatsApp, Telegram, Google — quietly drop SMS to number ranges they distrust. Ask whether a service delivers over real carrier SIMs on in-country devices, and whether it will tell you the delivery rate for the route you are buying, not a sitewide average.
What happens when no code arrives
This is the single biggest cost difference between services. SMSPin refunds your balance automatically the moment an activation window closes without a code — no ticket, no waiting. You pay for codes that arrive, not for attempts.
Whether you can get your money out
The shutdown stranded balances because funds sat on the platform. Top up in small amounts, keep no more float than a few days of usage, and prefer a service with a published refund and payment policy you can read before you deposit.
How much rewriting the API costs you
Tens of thousands of integrations broke at once because they were pinned to one vendor’s query-string API. A clean, documented JSON API is worth an afternoon of migration — and makes the next migration, whenever it comes, far cheaper.
Switch in three minutes
If you used SMS-Activate through the web dashboard, the workflow will feel familiar and the service codes are unchanged.
Create a SMSPin account
Sign up with an email address — no card required. Top up from $5 with crypto via Cryptomus (USDT, BTC, ETH and 20+ more) or with a card and local methods via Payssion.
Pick country and service
The dashboard picker works the way you are used to, and the short service codes carry over — WhatsApp is still wa, Telegram is still tg. Live per-route pricing is on the price page before you commit.
Receive your first code
Codes push to the browser over WebSocket as soon as the SMS lands. Each activation holds the number for 20 minutes; if nothing arrives in that window, the charge is refunded to your balance automatically.
API users: an afternoon, not a line
SMS-Activate exposed a query-string API — handler_api.php with an action parameter. SMSPin is a JSON REST API, so this is a real port rather than a base-URL swap. It is a small one: the service codes carry over, and the two calls that matter map one-to-one.
| SMS-Activate | SMSPin |
|---|---|
GET …/stubs/handler_api.php?action=… | JSON REST under /api/v1/ |
api_key=KEY query parameter | x-api-key header (or Authorization: Bearer) |
action=getNumber | POST /api/v1/orders |
action=getStatus polling | GET /api/v1/orders/{id} → otpCode |
action=setStatus (finish / cancel) | Not needed — auto-expiry and auto-refund |
Service codes: wa, tg, … | Identical — same short codes |
Numeric country ids: 0, 6, … | ISO-2 codes: RU, ID, GB, … |
Hard-coded catalogue lists | GET /api/v1/services and /api/v1/countries |
GET https://api.sms-activate.org/stubs/handler_api.php
?api_key=YOUR_KEY
&action=getNumber
&service=wa
&country=0POST https://smspin.io/api/v1/orders
x-api-key: YOUR_SMSPIN_KEY
Content-Type: application/json
{ "service": "wa", "country": "RU" }
→ { "id": "…", "phoneNumber": "+7…",
"price": 0.12, "expires_in": 1200 }GET https://api.sms-activate.org/stubs/handler_api.php
?api_key=YOUR_KEY
&action=getStatus
&id=ACTIVATION_IDGET https://smspin.io/api/v1/orders/{id}
x-api-key: YOUR_SMSPIN_KEY
→ { "status": "success",
"otpCode": "123456",
"message": "Your code is 123456" }There is no setStatus equivalent and you do not need one: an order that receives no code expires on its own after 20 minutes and the charge is refunded automatically. Full endpoint reference, permissions and error shapes are at /docs/api/reference.
SMS-Activate shutdown — FAQ
What happened to SMS-Activate?
It closed. According to the notice on its own homepage, SMS-Activate “completely ceased operation since December 22” (2025), after about ten years. The shutdown was a decision by its operators rather than a technical failure, and the site now serves only that farewell notice.
Can I still withdraw my SMS-Activate balance?
No. The notice states withdrawals were available until 5 February 2026 and that users were notified by email and in the Telegram bot. After that date it says explicitly that there is no longer anyone able to process requests, and the support address stopped being monitored on 30 April 2026. If you still hold a balance, treat it as unrecoverable.
I found a site called SMS-Activate that still works — is it real?
No. The operators addressed this directly in their closing notice: “Our name goes away with us. If you find a service called SMS-Activate, then be sure they are scammers.” Several clones are live on lookalike domains, and some reproduce the original login page. Do not enter credentials or send funds to any of them.
Is SMSPin the official SMS-Activate successor?
No, and we will not claim to be. SMSPin is an independent service with its own operator network, pricing and API. We are not affiliated with SMS-Activate, we did not acquire it, and we cannot access, restore or refund SMS-Activate accounts or balances. This page exists because people searching for a replacement deserve accurate information about what happened.
Will my existing SMS-Activate scripts work if I change the URL?
No — and any service telling you it is a one-line change is overselling it. SMS-Activate used a query-string API (handler_api.php with an action parameter); SMSPin uses a JSON REST API. Requesting a number becomes POST /api/v1/orders and polling becomes GET /api/v1/orders/{id}. The good news is that the short service codes are the same (wa, tg, and so on), so only the transport and the country format change. Most integrations are a short afternoon of work.
How do country codes differ?
SMS-Activate identified countries by numeric id (0 for Russia, and so on). SMSPin uses standard ISO-2 country codes — RU, ID, GB, US. You can pull the full list your key can order from at GET /api/v1/countries, and the service catalogue at GET /api/v1/services, rather than hard-coding a mapping table.
What happens if a code never arrives?
Each activation holds the number for 20 minutes. If no code arrives in that window, the order expires and the charge is refunded to your balance automatically — you do not need to open a ticket. That is the mechanism that makes the effective cost per delivered code lower than the sticker price suggests.
What payment methods does SMSPin accept?
Crypto through Cryptomus (USDT, BTC, ETH, BNB, TRX and 20+ others) and cards and regional methods through Payssion. Minimum top-up is $5. There is no PayPal and no Stripe.
Is using a virtual number for verification legal?
Receiving an SMS verification code on a virtual number is legal in most countries. You remain responsible for following the terms of service of the platform you are verifying on and the law where you live. SMSPin is not affiliated with SMS-Activate or with any app you verify against.
Ready to migrate?
Create an account, top up from $5 with crypto or a card, and run your first activation in a few minutes. If the code doesn't arrive inside the activation window, your balance is refunded automatically.