SNSOTP OTP API
Isang REST API para sa SMS verification. Mag-order ng numero para sa isa sa 182 serbisyo sa isa sa 154 bansa, basahin ang one-time code mula sa order, at makuha ang buong presyo kapag walang code na dumating sa loob ng 20 minuto.
Ang bawat endpoint ay tumatanggap ng mga parameter bilang query parameters (GET) o bilang form fields o JSON (POST). Ang mga sagot ay JSON; ang pera ay USD string na may dalawang decimal at ang mga oras ay ISO 8601 sa UTC.
https://snsotp.com/api/v1
Ang iyong API key mula sa console, ipinadala bilang Authorization: Bearer sok_...
Pagpapatotoo
Gumawa ng key sa API page ng console. Nagsisimula ito sa sok_ at ipinapakita minsan, kaya itabi ito sa environment variable. Ang pagpalit ng key ay agad na titigil sa lumang key. Ang mga tawag sa /services, /countries at /prices ay gumagana nang walang key.
Authorization: Bearer sok_your_key_here
Ang key ay maaari ding ipadala bilang key query parameter o form field, na makakatulong sa mga tool na hindi makapag-set ng headers.
Mabilisang pagsisimula
Mag-order ng numero, ibigay ito sa app, pagkatapos ay i-poll ang order hanggang sa dumating ang code. Ang parehong proseso sa apat na wika:
# 1. Order a number for whatsapp in US
curl -X POST https://snsotp.com/api/v1/orders \
-H "Authorization: Bearer $SNSOTP_KEY" \
-d service=whatsapp -d country=us
# 2. Read the code (poll every 3 to 5 seconds)
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \
-H "Authorization: Bearer $SNSOTP_KEY"GET/services
Bawat serbisyo kasama ang code at pinakamababang presyo · walang key
Ang bawat serbisyo na maaari mong i-order, kasama ang code nito (gamitin ito bilang service sa ibang tawag), category nito, at ang pinakamababang presyo sa mga bansa. Hindi kailangan ng key.
curl https://snsotp.com/api/v1/services
{
"services": [
{ "code": "whatsapp", "name": "WhatsApp", "category": "social", "from": "0.09" },
{ "code": "telegram", "name": "Telegram", "category": "social", "from": "0.03" }
]
}GET/countries
Bawat bansa kasama ang code at dial code · walang key
Ang bawat bansa kasama ang code nito (ISO 3166 alpha-2 sa lower case, gamitin ito bilang country) at dial code nito. Hindi kailangan ng key.
curl https://snsotp.com/api/v1/countries
{
"countries": [
{ "code": "us", "name": "United States", "dial_code": "1" },
{ "code": "gb", "name": "United Kingdom", "dial_code": "44" }
]
}GET/prices
Mga presyo para sa isang serbisyo, isang bansa o pareho · walang key
Ang presyo bawat order para sa isang serbisyo sa bawat bansa, isang bansa para sa bawat serbisyo, o isang pares. Magpadala ng kahit isang filter. Hindi kailangan ng key.
Parameters
servicestring
Service code, halimbawa whatsapp
countrystring
Country code, halimbawa us
curl "https://snsotp.com/api/v1/prices?service=whatsapp&country=us"
{
"prices": [
{ "service": "whatsapp", "country": "us", "price": "0.93" }
]
}GET/balance
Ang iyong credit sa USD · kailangan ng key
Ang iyong credit sa USD.
curl https://snsotp.com/api/v1/balance \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"balance": "42.50",
"currency": "USD"
}POST/orders
Mag-order ng numero para sa isang serbisyo at isang bansa · kailangan ng key
Nag-o-order ng numero at sisingilin ang presyo nito. Ang sagot ay may numero sa buong anyo (phone) at walang dial code (number). Ang order ay mananatiling bukas sa loob ng 20 minuto; kung walang code sa panahong iyon, ang presyo ay babalik sa iyong credit nang kusa. Ang sagot ay status 201.
Parameters
servicestringkailangan
Service code mula sa GET /services
countrystringkailangan
Country code mula sa GET /countries
curl -X POST https://snsotp.com/api/v1/orders \ -H "Authorization: Bearer $SNSOTP_KEY" \ -d service=whatsapp -d country=us
{
"order": {
"id": "OT-7K2M9QX4PB",
"service": "whatsapp",
"country": "us",
"phone": "+13475550182",
"number": "3475550182",
"dial_code": "1",
"price": "0.93",
"status": "waiting",
"code": null,
"sms": null,
"codes": [],
"expires_at": "2026-11-03T12:20:00.000Z"
},
"window_minutes": 20
}GET/orders/{id}
Status, code at SMS text ng isang order · kailangan ng key
Isang order kasama ang status nito, ang pinakabagong code, ang pinakabagong SMS text, at bawat code na natanggap hanggang ngayon. I-poll tuwing 3 hanggang 5 segundo habang ang status ay waiting.
Parameters
idpathkailangan
Order id mula sa POST /orders
curl https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": {
"id": "OT-7K2M9QX4PB",
"service": "whatsapp",
"country": "us",
"phone": "+13475550182",
"number": "3475550182",
"price": "0.93",
"status": "received",
"code": "284913",
"sms": "Your WhatsApp code is 284913",
"expires_at": "2026-11-03T12:20:00.000Z"
}
}GET/orders
Ang iyong mga bukas na order (o lahat gamit ang status=all) · kailangan ng key
Ang iyong mga bukas na order, pinakabago muna. Magdagdag ng status=all para sa mga kamakailang order sa bawat status.
Parameters
statusstring
bukas (default) o lahat
limitnumber
1 hanggang 100, default 50
curl "https://snsotp.com/api/v1/orders?status=open" \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"orders": [
{ "id": "OT-7K2M9QX4PB", "service": "whatsapp", "status": "received", "code": "284913" }
]
}POST/orders/{id}/resend
Isa pang code sa parehong numero · kailangan ng key
Humiling ng isa pang code sa parehong numero pagkatapos ng unang code, sa loob ng window, nang walang karagdagang bayad. Pagkatapos ay mag-trigger ng bagong SMS sa app; ang waiting_for_resend ay totoo hanggang sa dumating ito.
Parameters
idpathkailangan
ID ng order
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/resend \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "received", "waiting_for_resend": true }
}POST/orders/{id}/finish
Isara ang order pagkatapos gamitin ang code · kailangan ng key
Isasara ang isang order na tumanggap ng code kapag nagamit mo na ito. Ang pagtatapos ay opsyonal: ang mga bukas na order ay sasara nang kusa kapag natapos ang window.
Parameters
idpathkailangan
ID ng order
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/finish \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "finished" }
}POST/orders/{id}/cancel
Kanselahin bago makuha ang code, buong refund · kailangan ng key
Kanselahin ang isang order bago dumating ang code at ibalik ang buong presyo sa iyong credit agad. Pagkatapos ng code, ang cancel ay magbibigay ng has_code.
Parameters
idpathkailangan
ID ng order
curl -X POST https://snsotp.com/api/v1/orders/OT-7K2M9QX4PB/cancel \ -H "Authorization: Bearer $SNSOTP_KEY"
{
"order": { "id": "OT-7K2M9QX4PB", "status": "canceled", "refunded": "0.93" }
}Katayuan ng order
waitingAng numero ay handa na at wala pang SMS na dumating. Posible ang cancel.receivedKahit isang code ay dumating. Ang code at sms ay naglalaman ng pinakabagong code.finishedIsinara pagkatapos ng code, sa pamamagitan ng finish o kapag natapos ang window.refundedWalang code na dumating sa loob ng 20 minuto. Ang buong presyo ay bumalik sa iyong credit.canceledKanselado bago dumating ang code. Ang buong presyo ay bumalik sa iyong credit.
Mga error
Ang mga error ay gumagamit ng HTTP status at isang body na may stable code at readable message.
- 400
missing_filter, bad_jsonNawawala ang isang kinakailangang value o hindi mabasa ang body. - 401
no_key, bad_keyAng key ay nawawala, mali, o tinanggal. - 402
no_balanceHindi sapat ang credit para sa order na ito. Magdagdag ng credit sa console. - 404
unknown_service, unknown_country, not_sold, not_foundAng code o order ay hindi umiiral, o ang pares ay hindi ibinebenta. - 409
too_many_open, has_code, not_ready, no_numbersAng action ay hindi akma sa order state, o walang libreng numero ngayon (walang sisingilin). - 429
rate_limitedHigit sa 300 request sa isang minuto gamit ang isang key.
{
"error": {
"code": "no_balance",
"message": "Not enough credit. Add credit in the console."
}
}Mga limitasyon sa rate
- 300 request bawat minuto bawat key. Sa higit pa rito, ang API ay magbibigay ng 429 rate_limited para sa natitirang minuto.
- Hanggang 20 bukas na order bawat account. Tapusin o kanselahin ang isa para magbukas ng isa pa.
- Mag-poll ng order tuwing 3 hanggang 5 segundo; karaniwang dumarating ang mga code sa loob ng isang minuto.
Format ng SMS activation
Ang mga script na isinulat para sa karaniwang format na handler_api.php ay gumagana sa parehong API key: baguhin ang base address sa https://snsotp.com/stubs/handler_api.php at panatilihin ang mga aksyon. Parehong serbisyo at country code tulad ng sa REST API.
getBalanceACCESS_BALANCE:42.50
getServicesListListahan ng mga serbisyo sa JSON
getCountriesMapa ng mga bansa sa JSON
getPricesservice, country (opsyonal)JSON {country: {service: {cost, count}}}
getNumberservice, countryACCESS_NUMBER:<id>:<phone>
getStatusidSTATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<code>, STATUS_CANCEL
setStatusid, status 1 / 3 / 6 / 8ACCESS_READY, ACCESS_RETRY_GET, ACCESS_ACTIVATION, ACCESS_CANCEL
curl "https://snsotp.com/stubs/handler_api.php\ ?api_key=$SNSOTP_KEY&action=getNumber\ &service=telegram&country=gb" ACCESS_NUMBER:OT-3QF8ZK2W7M:447700900182
Mga halaga ng setStatus: 1 handa, 3 ibang code, 6 tapos, 8 kanselahin na may buong refund.