For AI app builders
Add SMS to the app you built with AI.
Paste one prompt into Lovable, Bolt, v0, Replit, Base44 or Cursor. Your app sends and receives texts through your own Android phone. No sender registration, any number from day one, free to start.
Three steps
- 1
Pair a phone
Install the textbee app on an Android phone with a SIM and scan the QR code from the dashboard.
- 2
Save the key as a secret
Create an API key and add it to your builder as TEXTBEE_API_KEY. Secrets stay on the server.
- 3
Paste the prompt
Change the What I want line and send the prompt. The builder writes the server code and a test.
Get the app on the download page and the key in the dashboard.
The prompt
It carries the textbee endpoints, the payloads, the webhook signature check and the rule that the key stays on the server, so the builder does not guess. Change the line that starts with What I want. Each builder guide below has a version with that builder's own details.
Prompt for your AI agent
Paste it into the chat of your AI app builder. It carries the textbee API facts and the your builder details the agent needs, so it does not guess.
Add SMS to the app I am building in this tool. Use textbee, an SMS gateway that sends and receives SMS through my own Android phone.
Facts about the textbee API. Use only these. Do not invent endpoints or fields.
- Send an SMS: POST https://api.textbee.dev/api/v1/gateway/send-sms with the header x-api-key: <TEXTBEE_API_KEY> and a JSON body like {"recipients": ["+12015550123"], "message": "Hello"}. recipients must be a JSON array of E.164 numbers, even for one number. Optional fields: deviceId, simSubscriptionId, scheduledAt (ISO 8601, in the future). The response is {"data": {"success": true, "smsBatchId": "..."}}.
- Check delivery or read replies: GET https://api.textbee.dev/api/v1/gateway/messages with the same header. Filters: direction=received, smsBatchId=<id from the send>, from and to as ISO timestamps. Each row has a status such as sent, delivered, failed or received.
- Receive an SMS: textbee posts JSON to a webhook URL I register in the dashboard. A MESSAGE_RECEIVED delivery has these top-level fields: smsId, message, deviceId, webhookSubscriptionId, webhookEvent, idempotencyKey, sender, receivedAt. The header X-Signature holds an HMAC-SHA256 hex digest of the raw body, keyed with the signing secret I set on the webhook. Retries reuse the same idempotencyKey.
- Limits: One Android phone sends roughly 10 to 15 messages a minute. Text only, no MMS. Messages over 160 characters are split into segments.
Rules:
- Store the API key as a secret named TEXTBEE_API_KEY. Call textbee only from server-side code, never from code that runs in the browser.
- Do not ask me to paste the real key into this chat. Tell me where to add the secret instead.
- For incoming texts, create a public server endpoint, check the X-Signature header against a secret named TEXTBEE_WEBHOOK_SECRET, and ignore a repeated idempotencyKey.
What I want: Text the customer a reminder 24 hours before each booking, and save their replies next to the booking.
Build it, tell me where to add each secret in this tool, and add a way to send one test message to my own number.Pick your builder
- LovableKey in Secrets, call in a server function
- BoltKey in Secrets, call in a server function
- v0Key in Environment Variables, call in a route handler
- ReplitKey in Tools > Secrets, call in a server route
- Base44Key in Secrets, call in a backend function
- CursorKey in .env, call anywhere on your server
Using Claude Code, Windsurf or another coding agent? The Cursor guide and the agent quickstart cover the same setup.
What your app can text
Reminders and alerts
Booking reminders, payment due dates, a text to you when a form comes in.
What I want: Text each customer a reminder the day before their appointment.
Order and status updates
Order confirmed, ready for pickup, job finished, ticket answered.
What I want: Text the customer when their order status changes to Ready.
Login and verification codes
Six-digit codes your app creates, sends and checks.
What I want: Add phone login: send a six-digit code that expires in 10 minutes, then sign the user in.
Replies from customers
Two-way texting: every reply reaches your app through a webhook.
What I want: Save every reply on the matching booking and show it on an admin page.
Keep your API key on the server
- Save the key in your builder's secrets as TEXTBEE_API_KEY. Never paste it into the chat.
- Only server code calls textbee: a server function, an API route or a backend function. Code that runs in the browser never sees the key.
- Do not let the browser pick any number and any text. Send from a record on the server, such as a booking id, or check that the user is signed in.
- Check the X-Signature header on every webhook. The webhooks documentation has the algorithm.
Why builders get stuck on SMS
The app works in the preview, then the SMS provider blocks the launch: a trial that only texts verified numbers, registration forms, and a bill per message. This is how a Twilio trial and a paid Twilio account compare with textbee.
| What you care about | Twilio trial | Twilio paid account | textbee |
|---|---|---|---|
| Who you can text | Up to 5 verified numbers in your sign-up country | Any number, once an approved compliance profile is in place | Any number your SIM can reach, from the first message |
| Message text | Fixed templates only, no custom message body | Your own text | Your own text |
| Before you send | Verify each recipient number | Buy a number and complete the sender registration your country asks for | Pair an Android phone |
| What you pay | 100 free messages, account expires after 30 days | Per message, plus number rental and carrier fees | Free plan, then a flat monthly plan with messages included |
| Sender recipients see | A shared trial number | A rented number | Your own mobile number, which people can reply to |
Twilio trial terms from twilio.com/docs/usage/trials, checked on October 22, 2026. Per-message prices by country are on the provider comparison pages. One phone sends roughly 10 to 15 messages a minute, so very high volume belongs on a registered provider.
Frequently asked questions
Which AI app builders does this work with?
Any builder that can store a secret and run server code. The guides cover Lovable, Bolt, v0, Replit, Base44 and Cursor. The same prompt works in Claude Code, Windsurf and other coding agents, because it carries the full API facts.
Do I need to write code?
No. You pair an Android phone with the textbee app, copy an API key into your builder's secrets and paste the prompt. The builder writes the server code. Reading the short code samples in the guides helps you check what it wrote.
Where does my API key go?
In the secrets or environment variables of your builder, under the name TEXTBEE_API_KEY. Only server code reads it: a server function, an API route or a backend function. Never paste it into the chat and never put it in code that runs in the browser.
Can my app receive replies?
Yes. Ask the builder for a public webhook endpoint, register its URL in the textbee dashboard for the MESSAGE_RECEIVED event, and every text the phone receives reaches your app as JSON with sender, message and receivedAt. Use the published URL, not a preview URL.
Can I send login codes with it?
Yes. Your app creates a short-lived code, sends it through textbee and checks it when the user types it in. Apps on their own Supabase project can use the Supabase Send SMS Hook instead. The built-in phone sign-in of Lovable Cloud only lists its own SMS providers.
Does the textbee MCP server run inside my published app?
No. In Lovable, Bolt, v0 and Base44, MCP servers work in the build chat only. They let the builder send you a test text or read a reply while it works. The published app calls the textbee REST API from server code.
What does it cost?
textbee has a free plan with 300 messages a month and no card. Pro is $14.99 a month for 5,000 messages. There is no per-message fee and no number rental. Your SIM plan covers the carrier side, and your builder plan covers the prompts.
What number do recipients see?
The number of the SIM in your Android phone. People can save it and reply to it like any other text.
Do I need a spare Android phone?
Any Android phone with a SIM works, and an old one is fine. It stays plugged in and online. iPhones cannot run the gateway app.
What happens when the phone is offline?
Sends wait in the textbee queue and go out when the phone reconnects. Texts the phone receives while offline are uploaded when it is back and reach your webhook then.
Your phone is already an SMS gateway. Switch it on.
Set up in minutes and send your first message for free. No credit card, no per-message fees, no carrier contracts.
Need self-hosting help or a custom integration? See services