Send real SMS, WhatsApp, Telegram, email, and push notifications directly from your own phone using a simple HTTPS API — from any programming language, on the mobile plan you’re already paying for. No per-message fees. No cloud lock-in. Full control.
All communication is secured via HTTPS transport.
Account first, then install, then scan your Config QR.
Your free plan is created automatically. This account is used later to generate the Config QR for the phone.
Sign Up / Log inFree works immediately with limits. Upgrade later only if you need more volume. No setup code is needed in the normal flow.
View PlansScan the Install QR with the phone. It downloads the APK; tap the downloaded file to install. Install does not configure the app.
Download AppOpen Setup while logged in, click Generate QR, then scan it with the installed app. Two things happen:
POST to /api/v1/messages with your account API key as a Bearer token. Edit the curl below, copy it for your terminal, or send it straight from this page:
YOUR_CLIENT_API_KEY and to.
Put your own number in to for a self-test. See code samples for Python, Node, Go, Java, C#. Need bulk + scheduling? Business Hub.
Your phone delivers — you choose the channel per request.
Real carrier SMS via your SIM plan.
Send through the WhatsApp app on your phone.
Send through the Telegram app on your phone.
Send transactional email via configured account.
Local notifications on your phone for alerts.
Phone Agent turns your mobile phone into a message-forwarding API. Your website, app, bot, or internal system triggers messages while the connected phone remains the sender.
Your code triggers the message. The Android phone sends it through SMS, WhatsApp, Telegram, email, or local notify, depending on the channel.
A site can route order updates, reminders, alerts, support messages, daily summaries, and AI-assistant actions through one connected phone.
Receive one event from your system, then broadcast it to several users, for example sending the same outage alert to 10 team members.
No per-message SMS provider lock-in. Your existing mobile plan and phone accounts stay in control.
Messages flow from your system to your phone to the recipient. The connected phone is the delivery endpoint.
Use WebChat for manual sends, Business Hub for bulk work, or the API when your software needs to send automatically.
Simple REST endpoints. Bearer-token auth. Copy/paste examples in every major language.
Tap a language to see a copy-paste example. Default URL is the hosted relay https://phonerelay.dev — override only for private deployments.
import requests
requests.post(
"https://phonerelay.dev/api/v1/messages",
headers={"Authorization": "Bearer YOUR_CLIENT_API_KEY"},
json={"channel": "sms", "to": "+1234567890", "text": "Hello from Phone Agent"},
)
await fetch("https://phonerelay.dev/api/v1/messages", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_CLIENT_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
channel: "sms",
to: "+1234567890",
text: "Hello from Phone Agent",
}),
});
body := strings.NewReader(`{"channel":"sms","to":"+1234567890","text":"Hello"}`)
req, _ := http.NewRequest("POST", "https://phonerelay.dev/api/v1/messages", body)
req.Header.Set("Authorization", "Bearer YOUR_CLIENT_API_KEY")
req.Header.Set("Content-Type", "application/json")
http.DefaultClient.Do(req)
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://phonerelay.dev/api/v1/messages"))
.header("Authorization", "Bearer YOUR_CLIENT_API_KEY")
.header("Content-Type", "application/json")
.POST(BodyPublishers.ofString(
"{\"channel\":\"sms\",\"to\":\"+1234567890\",\"text\":\"Hello\"}"))
.build();
HttpClient.newHttpClient().send(req, BodyHandlers.ofString());
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "YOUR_CLIENT_API_KEY");
var body = new StringContent(
"{\"channel\":\"sms\",\"to\":\"+1234567890\",\"text\":\"Hello\"}",
Encoding.UTF8, "application/json");
await http.PostAsync("https://phonerelay.dev/api/v1/messages", body);
curl -X POST https://phonerelay.dev/api/v1/messages \
-H "Authorization: Bearer YOUR_CLIENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"channel":"sms","to":"+1234567890","text":"Hello"}'
The to: field is the recipient. Put your own number in there and your phone delivers the SMS to yourself — handy for personal alerts, trade signals, deploy notifications, or just smoke-testing the API.
| Channel | to: value | Other params |
|---|---|---|
sms | E.164 phone number, e.g. +1234567890 (your own works) | — |
wa | Phone number (must be installed in WhatsApp) | — |
tg | Phone number or @username | — |
tg_bot | Telegram chat_id | bot_token required |
email | Email address (your own or anyone) | subject required |
notify | (not used) — local notification on your own phone | optional title |
Channels: SMS, WhatsApp (wa), Telegram (tg), Telegram bot (tg_bot), email, and local push (notify). The notify channel is self-only by design — it shows a local Android notification on the connected phone, no carrier message sent.
Sign in or create a free account, install the app, then generate the Config QR.
Scan the Install QR with the phone. The phone downloads phone-agent.apk; tap the downloaded file to install. Install alone does not connect the app.
Before generating the Config QR, sign in or create a free account. Keep the phone connected to the internet.
Scan on the phone. Download starts in the phone browser. Tap the downloaded APK and allow install from this source if Android asks.
If you cannot scan the QR, click Manual Download APK, move the APK to the phone, then open it on the phone to install. Optional checksum: SHA256SUMS.txt.
If file copy from PC is blocked, use:
adb devices
adb install -r phone-agent.apk
Optional helper aliases:
source ./phoneagent-apk-aliases.sh
pa-apk-devices
pa-apk-install phone-agent.apk
pa-apk-setup
If you get INSTALL_FAILED_UPDATE_INCOMPATIBLE:
adb uninstall com.agentphone.app
adb install phone-agent.apk
If adb devices shows nothing:
After Phone Agent is installed and you are signed in, open the setup page. Click Generate QR, then scan the Config QR with the phone.
Install, connect, send. Plus AI assistant integration and company private server overview.
Auth, request fields, status polling, and copy/paste examples (Python, C++, Node, Go, Java, C#).
Open HTTP API DocsBulk send, contact lists, scheduling, and templates — configurable from the web UI.
Open Business HubCompany overview: keep traffic and access control inside your infrastructure.
Open Overview