Ready to take calls
Dial a number below, or wait for an incoming call.
Send SMS
Recent SMS
| To | Message | Status | When |
|---|---|---|---|
| No messages sent yet. | |||
Bulk SMS
Sent & delivered report
| Recipient | Status | AfroMessage response | When |
|---|---|---|---|
| No bulk sends yet. | |||
Recent calls
| Direction | Number | Status | Duration | When |
|---|---|---|---|---|
| No calls yet. | ||||
SMS API documentation
Send SMS from any backend through your own Android phone and SIM. This guide takes you from phone registration to a production request.
How it works
Loading...
Loading...
POST /messages202E.164, e.g. +251...Request body
- phoneNumbers
- Required array of recipient numbers in international format.
- textMessage.text
- Required SMS content.
- deviceId
- Optional. Choose a phone when your account has multiple devices.
- withDeliveryReport
- Optional boolean for carrier delivery reports.
Your phone, your credentials
Do not place your password or token in React, mobile web, or other browser code. Send requests from your backend and keep secrets in environment variables.
The username and password are created when you register your own Android phone. They identify your account; the connected SIM number becomes the SMS sender.
SMS_API_USER=YOUR_GENERATED_LOGIN
SMS_API_PASSWORD=YOUR_GENERATED_PASSWORD
/messages/{id}Get message status
Use the id returned by the send request to check processing and delivery state.
Path parameter
idstring · requiredThe message identifier returned by POST /messages.
Example
/devicesList your devices
Confirm authentication and find the deviceId when your account has more than one connected phone.
200Credentials accepted; returns your registered devices.401Credentials are missing or incorrect.Unauthorized?
Use the account login and password returned when the phone was first registered. Your SIM phone number is the sender, not the API username.
loginUsually a generated six-character uppercase ID. Do not enter the phone number.passwordUse the exact generated value. It is only returned for a new user.
401Missing or incorrect credentialsUse the generated login and password with Basic auth.400Invalid request or phone numberUse E.164 numbers such as +251911234567 and include message text.503No eligible online deviceOpen the Android app, allow SMS permission, and disable battery optimization.Production checklist
SMS_API_USER and SMS_API_PASSWORD only on your server.GET /messages/{id} for status.503 failures with exponential backoff.