Sparetext vs textbee
textbee is an open-source Android SMS gateway with a hosted dashboard and a REST API.
If you're on textbee and want iPhone, an AI agent that can text and wait for the reply, or texts that wait out Android's sending limit instead of failing, Sparetext takes textbee's requests as they are. If you want to host everything yourself, stay with textbee.
Choose Sparetext if
- You have an iPhone, or a Mac next to one.
- An AI agent should send a text and wait for the reply (wait_for_reply), signing in to Claude or ChatGPT with OAuth.
- You want 10,000 texts a month on Pro for less than textbee's 5,000.
- Long texts and bursts must not fail at Android's 30-parts-a-minute limit.
- You want failures named (TP-Status, no service) and radio errors retried.
Choose textbee if
- You want to self-host the server and app (Docker, your own Firebase).
- You want an open-source codebase you can change.
Feature by feature
| Feature | Sparetext | textbee |
|---|---|---|
| Texts come from your own number | Yes: Your phone's SIM | Yes: Your Android's SIM |
| iPhone | Yes: Through a Mac relay, a Shortcut, or tap to send | No: Android only |
| MCP server for Claude, ChatGPT and other agents | Yes: Hosted, with OAuth sign-in: send, send a text per person, wait for a reply, read threads, check phones | Yes: Hosted: send_sms, get_messages, list_devices |
| An agent can wait for the person's reply | Yes: wait_for_reply returns the reply, or a code in it | Partly: Poll get_messages |
| Connect an assistant without pasting a key | Yes: Add the URL as a connector in Claude or ChatGPT and sign in | Partly: Not stated in their docs |
| Cost per text | Yes: None from us; your carrier plan | Yes: None from them; your carrier plan |
| Free plan | Yes: 1 phone, 300 texts a month | Yes: 1 phone, 300 a month, 50 a day |
| Paid plan | Yes: $12.74 a month or $84.99 a year: 5 phones, 10,000 texts; from $5 in many countries | Yes: $14.99 a month or $99.99 a year: 5 phones, 5,000 texts |
| Registration before US texts (A2P 10DLC) | Partly: No registration step; carriers can still filter business texts from a personal SIM | Partly: The same |
| Delivery reports | Yes: Per part; a failure names the carrier's TP-Status | Partly: Any report counts as delivered |
| Android's limit of 30 parts a minute | Yes: Counted per part; texts wait instead of failing | No: Fixed 5 s gap; the limit isn't read |
| Retries when the radio refuses | Yes: Held and sent when service is back, up to 30 min | No: Fails |
| Webhooks | Yes: HMAC with a timestamp, 8 tries over 28 hours | Yes: HMAC, 10 tries over 30 days |
| A different text per recipient | Yes: messages[] in one call; CSV with {{column}} in the dashboard | Yes: Bulk API and a CSV wizard with templates |
| Choose the SIM per text | Yes: sim: 1 or 2; never falls back to the other number | Yes: simSubscriptionId |
| Scheduling and expiry | Yes: scheduledAt, and ttl per text | Partly: scheduledAt; no expiry per text |
| Sending hours | Yes: Per phone, by weekday, in its time zone | No: Not found |
| Open source, self-hosted | No: Hosted only | Yes: Docker, with your own Firebase |
| End-to-end encryption | Yes: Opt-in: AES-256-GCM on your devices, words and pictures both ways; each text bound to its number | No: Texts travel in the push message |
| MMS | Yes: Android, and the Mac relay, so iPhone owners too | No: SMS only |
| Thousands of texts a day, short codes, sender IDs | No: Carriers filter bulk texts from a personal SIM | No: Same limit: a phone |
Swipe the table sideways for every column. →
Switching from textbee
Sparetext answers at textbee's paths with textbee's body and answer: send-sms, send-bulk-sms and sms-batch, per device or not. Change the base URL and the key.
textbee
curl -X POST https://api.textbee.dev/api/v1/gateway/devices/$DEVICE_ID/send-sms \
-H "x-api-key: $TEXTBEE_API_KEY" -H "content-type: application/json" \
-d '{"recipients": ["+12025550123"], "message": "Hello"}'Sparetext
curl -X POST https://sparetext.dev/api/v1/gateway/devices/$DEVICE_ID/send-sms \
-H "x-api-key: $SPARETEXT_API_KEY" -H "content-type: application/json" \
-d '{"recipients": ["+12025550123"], "message": "Hello"}'Every endpoint, with Node and Python too, is in the API reference.
Questions people ask
- Is Sparetext compatible with textbee?
- Yes. POST /api/v1/gateway/send-sms and /gateway/send-bulk-sms take textbee's recipients, message, simSubscriptionId and scheduledAt (and the older receivers and smsBody), per device or not, and answer with textbee's fields: success, message, smsBatchId and recipientCount. GET /gateway/devices/{id}/sms-batch/{batchId} answers with the batch and its texts.
- Does textbee work with iPhone?
- No, textbee's app is Android only. Sparetext sends from an iPhone's number through a Mac relay (fully automatic), a Shortcut while the app is open, or tap to send.
- Does textbee have an MCP server?
- Yes: a hosted one with send_sms, get_messages and list_devices. Sparetext's also has wait_for_reply (the agent waits for the person's answer, or a code in it) and whole conversations, signs in with OAuth so Claude and ChatGPT connectors need no pasted key, and also sends from an iPhone.
- How do the prices compare?
- Both are free for 1 phone and 300 texts a month, and neither charges per text. textbee Pro is $14.99 a month for 5 phones and 5,000 texts; Sparetext Pro is $12.74 a month for 5 phones and 10,000 texts, and less in many countries.
More comparisons
Checked on October 29, 2026 against each product's own docs, pricing pages and source code. Something out of date? Write to hello@sparetext.dev and we'll fix it. Sources: textbee on GitHub, textbee docs, textbee pricing.
Try it on the phone you have.
Free for 1 phone and 300 texts a month. An Android pairs in two minutes.