Free SMS API for developers
textbee has a permanently free SMS API tier that sends real messages to any number. Your own Android phone and SIM are the gateway, so there are no trial credits, no test-mode prefix and no card. The free plan covers 300 messages a month, up to 50 a day, including the messages you receive.
What the free tier includes
| Item | Free tier |
|---|---|
| Messages | 300 a month, 50 a day (both sent and received count) |
| Devices | 1 Android device |
| Sending | REST API, dashboard, bulk to many recipients in one request (recipient cap shown on your billing page) |
| Receiving | Yes: read by API with cursor pagination, or push by webhook |
| Delivery status | Webhooks for sent, delivered, failed |
| Sender number | Your own SIM number |
| Credit card | Not required |
| Price after the free tier | Pro $9.99 a month for 5,000 messages, Scale $29.99 for 25,000 (see pricing) |
Send your first SMS
- 1
Install the app and link your phone
Get the APK from the download page, install it on an Android phone with a working SIM, then scan the code from your dashboard to link the device to your account.
- 2
Create an API key
In your dashboard, create an API key. It goes in the x-api-key header on every request. Keep it in an environment variable, never in source control.
- 3
Call the endpoint
POST to /gateway/send-sms with the recipients in E.164 form and the message text. The response carries the batch id you can follow for delivery status.
curl -X POST https://api.textbee.dev/api/v1/gateway/send-sms \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"recipients": ["+12015550123"], "message": "Hello from textbee"}'The same call with the JavaScript SDK
import { Textbee } from '@textbee/sdk'
const textbee = new Textbee({ apiKey: process.env.TEXTBEE_API_KEY })
await textbee.sendSms({
recipients: ['+12015550123'],
message: 'Hello from textbee',
})Full options, message history and webhook verification are in the JavaScript SDK docs.
Honest limits
One phone sends roughly 10 to 15 messages a minute, so a large blast takes time to drain. Carriers can filter bulk patterns on consumer SIMs. Marketing messages still need consent from the recipient under the local rules.
- The free plan runs on one Android device, so throughput is one phone.
- 50 messages a day and 300 a month, counting sent and received together.
- The free tier is for real use, not for high volume. A campaign blast belongs on a paid plan with more devices.
Free SMS API by language
Each page has runnable samples for sending, webhooks, cursor polling and error handling in one language. They all work on the free plan.
How the free tier compares
Most free SMS offers are trials with a verification step. Here is what each one lets you do before you pay.
| Provider | Free offer | What you can send |
|---|---|---|
| Twilio | $15 trial credit | Trial sends only reach numbers you verify first, and every message carries a trial prefix. |
| Vonage | Sandbox account | Sends are limited to numbers on an allow list. |
| AWS SNS | SMS sandbox | Sends only reach phone numbers you verify first. |
| textbee | 300 messages a month, permanently free | Real sending to any number, from your own SIM. No verification step, no prefix, no card. |
Frequently asked questions
Is the textbee SMS API really free?
Yes. The Free plan costs $0 a month and sends real messages to real numbers. It covers 300 messages a month, up to 50 a day, on one Android device. It is a permanent plan, not a trial that expires.
What happens when I hit the 50 a day or 300 a month limit?
The API returns 429 for further sends until the limit resets, or until you upgrade. The daily count resets once a day and the monthly count is a rolling window over roughly the past month. You get a warning around 80 percent of your monthly allowance, so the cut off is not a surprise.
Do I need a credit card to use the free tier?
No. You sign up, install the Android app, link your phone and start sending. A card is only needed if you move to Pro or Scale later.
Can I send to any phone number?
Yes. Messages go out over your own SIM, so you can text any number your phone can text, with no verification step and no trial prefix on the message. Recipients see your own number as the sender.
Can I receive SMS on the free tier?
Yes. Incoming messages are available on the free plan. Read them with GET /gateway/messages using cursor pagination, or have textbee POST each one to your webhook URL. Received messages count against the same 300 a month allowance.