Use your Android phone as an SMS gateway

Enroll a phone once and its SIM sends your messages to any country it can reach. Setup takes a few minutes.

Back to the API docs

What you need

Set it up

  1. Install the gateway app. Download it here:

    app download link or store listing

  2. Enroll a device. In the dashboard, open Apps, choose your app and select Enroll a device. Give the phone a label such as "office phone". The dashboard shows an enrollment secret once; copy it.
  3. Paste the secret into the app. Enter it by hand in the gateway app. There is no QR code scan. The app registers the phone to your account by itself.
  4. Check the phone number. If the app doesn't have your SIM's number, or the number is wrong, add it in international format, such as +8801XXXXXXXXX.
  5. Send a test. Call POST /v5/otp/send with your own number. The message should arrive from your SIM, and your balance is charged $0.0015.

The enrollment secret pairs the phone with your account. It is not your password, but keep it private until the phone is enrolled.

Keep it reliable

Troubleshooting

A message didn't arrive

Check that the recipient number is strict E.164, then open History in the dashboard. A failed send there, repeated for several numbers, usually means the phone is offline or out of SMS allowance.

I lost the enrollment secret

Enroll the device again to get a new secret, then paste it into the app straight away. Secrets are shown only once.

For developers: the enrollment call

The gateway app makes this call for you. You only need it if you are building your own client.

POST /v5/device/enroll
Authorization: Bearer <enrollment secret>
{ "label": "my office phone" }

201 { "ok": true, "deviceId": "...", "apiKey": "..." }

To add or correct the SIM's number afterwards:

POST /v5/device/phone-number
{ "phoneNumber": "+8801XXXXXXXXX" }

A malformed number sent at enrollment is ignored rather than stored, so a carrier-formatted typo can never block pairing.

StatusCodeMeaning
400invalid_phone_numberThe number was not strict E.164
401invalid_enrollment_secretThe bearer secret is wrong
403enrollment_disabledEnrollment is switched off for this deployment
409phone_number_existsThat number is registered to another device