SMS coverage
Axowl sends phone verification codes by SMS to 76 countries. The same list applies to every place a code goes out by SMS:
- organization phone OTP —
POST /api/org/otp/sendand the public contact OTP; - end-user MFA for your app’s users —
POST /apps/{key}/auth/mfa/enroll/send, the code sent with a login that returnsmode: "challenge", andPOST /apps/{key}/auth/mfa/challenge/resend.
A number in a country outside the list is not sent to and costs nothing. The request fails
with region_not_supported, so you can show the user another way in (passkey, email, or a
sealed device) instead of a code screen that never fills.
Korean numbers on an app group with a linked KakaoTalk channel get the code as AlimTalk first; see KakaoTalk AlimTalk. The country list below decides the SMS path.
Codes are delivered as text messages only, including to U.S. and Canadian numbers. There is no
voice-call delivery. Texts other than codes (approval confirmation links) go only to numbers whose
owner opted in to SMS, and texts to +1 numbers end with “Reply STOP to opt out.” On end-user MFA, channel (and smsChannel on a login) is "sms" or
"alimtalk".
Country groups
Section titled “Country groups”Countries are in three groups. The group sets how many codes one phone number can receive in 24 hours. Only codes that were actually delivered count toward the limit — a failed send does not use up an attempt.
| Group | Codes per number per 24 h | Countries |
|---|---|---|
| Standard | No daily cap (normal resend throttling only) | 44 |
| Limited | 2 | 18 |
| Restricted | 1 | 14 |
Limited and Restricted countries are the ones where SMS toll fraud (artificially inflated traffic) is common. They also share a platform-wide daily safety limit; ordinary sign-up traffic does not reach it.
Standard — 44 countries
Section titled “Standard — 44 countries”| Region | Countries |
|---|---|
| North America | United States (including Puerto Rico and the U.S. Virgin Islands), Canada, Guam |
| Asia-Pacific | South Korea, Japan, Taiwan, Hong Kong, Singapore, Australia, New Zealand |
| Western Europe | United Kingdom, Ireland, France, Germany, Netherlands, Belgium, Luxembourg, Switzerland, Austria, Liechtenstein |
| Southern Europe | Spain, Portugal, Italy, Greece, Malta, Cyprus, Gibraltar |
| Nordics | Denmark, Sweden, Norway, Finland, Iceland |
| Central and Eastern Europe | Poland, Czech Republic, Slovakia, Slovenia, Croatia, Hungary, Romania, Bulgaria, Estonia, Latvia, Lithuania |
| Middle East | Israel |
Limited — 18 countries (2 codes per number per day)
Section titled “Limited — 18 countries (2 codes per number per day)”| Region | Countries |
|---|---|
| Latin America | Mexico, Brazil, Argentina, Chile, Peru |
| Asia | India, Indonesia, Malaysia, Thailand, Philippines, Vietnam |
| Middle East | United Arab Emirates, Saudi Arabia, Qatar, Kuwait, Turkey |
| Africa | South Africa, Kenya |
Restricted — 14 countries (1 code per number per day)
Section titled “Restricted — 14 countries (1 code per number per day)”| Region | Countries |
|---|---|
| South Asia | Pakistan, Bangladesh, Nepal, Sri Lanka |
| Southeast Asia | Myanmar |
| Central Asia and Caucasus | Uzbekistan, Kyrgyzstan, Kazakhstan, Azerbaijan |
| Europe | Russia |
| Oceania | Fiji |
| Africa | Nigeria, Ghana, Tanzania |
+1 numbers outside the United States and Canada
Section titled “+1 numbers outside the United States and Canada”+1 is shared by several countries. Caribbean and Atlantic area codes — for example Jamaica
(+1 876), the Dominican Republic (+1 809 / 829 / 849), the Bahamas (+1 242) and
Bermuda (+1 441) — are not in the list and fail with region_not_supported. Puerto Rico,
the U.S. Virgin Islands and Guam are covered.
Errors
Section titled “Errors”| Where | Response | Meaning |
|---|---|---|
| Organization OTP | region_not_supported | The country is not in the list. Nothing was sent. |
| Organization OTP | region_daily_limit | This number has had its daily codes for a Limited or Restricted country. Try again after 24 hours. |
| Organization OTP | region_fuse | The shared daily safety limit for Limited and Restricted countries is reached. Try again later. |
| End-user MFA | 502 { error: "region_not_supported" } | Any of the three cases above. On a login, smsDelivered is false and smsError is "region_not_supported". |
Phone numbers must be in E.164 form (+ and country code). A number without a leading + is
treated as outside the list.