Documentation

Everything you need to get started with SMSTunnel

Quick Start

Text from your computer through your own phone in a few minutes:

Play the video: Set up SMSTunnel on your Android phone in 2 minutes (1:34)
Watch the setup first: 1:34.
1

Create an Account

Sign up at dashboard.smstunnel.io/register, or continue with Google or Facebook. Google and Facebook sign-in work immediately; with email, you get a message once the account is ready to use.

2

Install the App on Your Phone

Install the SMSTunnel Android app (get it on Google Play) and sign in with the same account. Turn on the service; the app explains why it needs to send SMS before Android asks for the permission.

3

Link Your Phone

Once the app is signed in with the same account, the phone appears in your dashboard under Phones. You can also link it by QR code: on your computer, open Phones → Add phone and scan the code with the app (Connections → Link with QR code). Unlink anytime in the app (Connections), or sign out of the app.

4

Write Your First Text

In the dashboard, click Write a text, choose your phone, type the number and the message, and send. Your phone sends it from your own number.

5

Optional: Sync Received Texts

Turn on Sync received texts in the app to read and answer incoming texts from the dashboard. How it works

Installation

Android App Requirements

  • Android 7.0 or newer
  • A SIM card that can send SMS
  • Internet connection (Wi-Fi or mobile data)
  • Permission to send SMS (and, optionally, to receive SMS for syncing)

Download

Get it on Google Play

Installed the APK from our website earlier? Uninstall it first, because Android can't update it from Google Play. Then install the app from Google Play and sign in again. If a website or tool was linked to this phone, you may need to link it again.

Sync Received Texts

With Sync received texts on, SMSTunnel copies the texts your phone receives — the sender's number, the text and the time — to your account, so you can read them in Messages and answer with Reply (the reply goes out from the same phone).

  • Optional and off by default. Turn it on from the card on the app's Dashboard or in Settings; the app explains it before asking for permission.
  • Only texts that arrive after you turn it on are synced. Your existing inbox is never read.
  • Only you can see them: in your dashboard, and through API keys you explicitly allow to read received messages. Websites and apps you link with a QR code or a standard API key cannot read them.
  • They stay in your account until you delete them (Messages → delete one, or Delete all messages) or delete your account.
  • Turn it off anytime in the app's Settings — syncing stops immediately.

Permissions

What the app asks for, and why:

Permission Purpose
SEND_SMS Sends, from your own number, the texts you wrote on your computer (or that your own software handed over)
RECEIVE_SMS Optional — only when "Sync received texts" is on
READ_PHONE_STATE Lets you choose the sending SIM on dual-SIM phones
CAMERA Scanning the linking QR code only
POST_NOTIFICATIONS, FOREGROUND_SERVICE Keep the link to your computer running and show its status
INTERNET Connect to your SMSTunnel account

The app does not request READ_SMS, contacts or location, and it is not your default SMS app.

Background Service

While it is on, the app keeps the link to your computer open in the background and shows a notification ("SMSTunnel is linked to your computer") with a Stop button. To keep it from being cut off:

Battery Optimization

Many Android phones stop background apps aggressively. If texts are delayed:

  1. Go to Settings > Apps > SMSTunnel
  2. Tap "Battery" or "Battery optimization"
  3. Select "Don't optimize" or "Unrestricted"

Tip: On Samsung, Xiaomi, and Huawei devices, you may need to lock the app in recent apps or add it to "Protected apps".

Apps and API Keys

Your own software can hand texts to your linked phone with a personal API key. In your dashboard, open Apps → Add an app, pick what you're connecting, name it and click Create the key. Each app gets its own key, shown only once. What a key may do:

  • sms:send — hand texts to your phone (every app key has it)
  • sms:read — check the status of texts sent from your account (every app key has it)
  • sms:inbox — read received texts. Off unless you turn on Can also read received texts (or later Allow reading received texts); grant it only to your own software. Keys created when you link a website or plugin never get it.

Send the key in the X-API-Key header:

curl -X POST https://smstunnel.io/api/v1/sms/send \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"to": "+40712345678", "message": "Hello!"}'

Security Note: Keep your API key secret. Never expose it in client-side code or public repositories. Stop or delete an app in the dashboard (Apps) at any time.

Sending Texts

Request

POST /api/v1/sms/send
Content-Type: application/json
X-API-Key: your_api_key

{
  "to": "+40712345678",
  "message": "Your order #1042 is ready for pickup."
}

Response

{
  "success": true,
  "messageId": "6720f1c2a9e4b3d5c8a1f001",
  "queued": false,
  "data": { "messageId": "6720f1c2a9e4b3d5c8a1f001", "branded": false, "queued": false, "remaining": { ... } }
}

queued: true means your phone is offline; the text goes out when it reconnects, within 3 days (otherwise it is marked failed). See the API Reference for all parameters.

Sign-in Codes (2FA)

For sign-in codes from your own website or app there is a separate endpoint with its own daily allowance. The message must contain the code as a number of its own, 4 to 10 digits (for example 123456 or 12-345678; 123-456 works too), and can be up to 320 characters. Codes with letters don't count. Details

POST /api/v1/sms/send-2fa
Content-Type: application/json
X-API-Key: your_api_key

{
  "to": "+40712345678",
  "message": "Your login code is 12-345678. It expires in 5 minutes."
}

You generate and check the code in your own software; SMSTunnel only delivers the text.

Received Texts

If you turned on "Sync received texts" in the app, your own software can list them with a key that has the sms:inbox permission:

GET /api/v1/sms/received?limit=50&since=2026-10-01T00:00:00Z
X-API-Key: your_api_key

Webhooks

A webhook is a secret URL that turns an HTTP request from one of your tools (Uptime Kuma, Grafana, a cron job…) into a text from your phone. The recipients are fixed when you create the webhook; the request only sets the wording.

Make one in your dashboard: Apps → Webhooks → New webhook, pick the tool that will call it, add the numbers that get the texts (up to 10), and copy the address. You can copy it again later, and New address replaces it if it leaks. Its calls an hour (20 unless you change it) count calls, not texts: each call texts every number.

See Webhooks for setup and examples. To follow the status of a text you sent, use GET /api/v1/sms/status/{messageId}.

WordPress Integration

The SMSTunnel WordPress plugin lets your site hand texts to your linked phone:

Installation

  1. In your WordPress admin, go to Plugins → Add Plugin and search for SMSTunnel (or open wordpress.org/plugins/smstunnel)
  2. Click Install Now, then Activate
  3. Go to SMSTunnel → Quick Setup
  4. In the SMSTunnel app, open Connections → Link with QR code, scan the QR code and approve the connection on your phone — or paste an API key you created in the dashboard
  5. To unlink the site later, remove the connection in the app (Connections)

See the Integrations page for more details and additional plugins.

WooCommerce Integration

Order texts for your WooCommerce store, sent from your own phone and number:

Available Notifications

  • Order status texts - To the customer when an order is processing, completed, on hold, cancelled or refunded (each has its own switch)
  • New order - To the customer, and to your own number, when an order moves to Pending payment
  • Low Stock Alert - To your own number when a product runs low or out of stock

Set them up in WooCommerce → Settings → SMS, with placeholders like {order_id}, {customer_name}, {order_total}. Details

Contact Form 7 Integration

Get a text when someone submits a Contact Form 7 form:

Setup

  1. Install both SMSTunnel and SMSTunnel for CF7 (both on WordPress.org)
  2. Go to Contact > Contact Forms, edit your form and open the SMS tab
  3. Tick Send SMS notification when this form is submitted
  4. Enter the recipient phone number, in international format
  5. Write the message using form tags

Template Example

New contact from [your-name]: [your-message]

Need More Help?

Can't find what you're looking for? We're here to help.