2026 INDUSTRIAL EDITION

Turn Your Phone Into a Messaging API in 5 Minutes

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.

Multi-Channel Send
Full HTTPS API
Monitoring & Logs
Send-Only & Private
Operations Teams Growth Ops Sales & Support DevOps & Automation
Connected

Get Started in 5 Steps

From signup to sending your first message in about 5 minutes.

1

Create your account

Free signup — no payment required. You can upgrade to a paid plan later.

Sign Up Free
2

Choose a plan

Pick the subscription that fits your volume. After payment you'll get a setup code.

See Plans
3

Install the Android app

Install via Google Play or APK on the phone that will deliver your messages. Install before the setup step below.

Download App
4

Connect your phone & get your API key

Open Secure Setup, enter your setup code, and scan the QR. Two things happen:

  • The Android app saves server_url, phone_id, and phone_secret automatically — you don’t copy anything.
  • The setup page shows your CLIENT_API_KEY — copy this. Your code uses it as a Bearer token.
Open Setup
5

Send your first message

POST to /api/v1/messages with the API key from step 4 as a Bearer token. Try it from your terminal first:

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"}'

Put your own number in to for a self-test. See code samples for Python, Node, Go, Java, C#. Need bulk + scheduling? Business Hub.

Full HTTP API Docs

One API, every channel

Your phone delivers — you choose the channel per request.

SMS

Real carrier SMS via your SIM plan.

WhatsApp

Send through the WhatsApp app on your phone.

Telegram

Send through the Telegram app on your phone.

Email

Send transactional email via configured account.

Push Notify

Local notifications on your phone for alerts.

Why Phone Agent

Use your own SIM plan

No per-message fees. Your existing mobile plan pays for the SMS — Phone Agent just relays the trigger.

Any programming language

Plain HTTPS + bearer token. Works from Python, Node, Go, Java, C#, C++, Rust, bash — anything that can POST.

No cloud lock-in

Your phone is the delivery endpoint. Cancel any time and your numbers / contacts stay where they are.

Built for Developers

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.

Python

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"},
)

Node.js

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",
  }),
});

Go

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)

Java

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());

C# / .NET

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 / C++ / Rust

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"}'

Send to yourself, or anyone

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.

Channelto: valueOther params
smsE.164 phone number, e.g. +1234567890 (your own works)
waPhone number (must be installed in WhatsApp)
tgPhone number or @username
tg_botTelegram chat_idbot_token required
emailEmail address (your own or anyone)subject required
notify(not used) — local notification on your own phoneoptional 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.

Open HTTP API Docs

Download

Install the Android app first. After checkout, you will be redirected to setup automatically.

Android App Download

Install from Google Play or APK, then connect with Secure Setup.

Install (Google Play) Download APK Connect Phone (Secure Setup)

Download QR

Scan → opens the phone browser and downloads the APK installer file.

Connect Phone (1 scan)

Scan → opens a setup page on your phone that installs the app and connects it in two taps.

Verify download (optional)

SHA256SUMS.txt

Install blocked on Android?
  1. Open Google Play Store on the phone.
  2. Tap your account icon at the top-right (profile menu).
  3. Tap Play Protect.
  4. Tap the gear icon (top-right), then temporarily disable Scan apps with Play Protect.
  5. Open Settings -> Apps -> (Chrome or Files) -> Install unknown apps -> Allow, install APK, then re-enable Play Protect scan.
Seeing "App not installed"?
  • Confirm installer source is allowed: Settings -> Apps -> (Chrome or Files) -> Install unknown apps -> Allow.
  • Remove older conflicting app build, then retry.
  • Ensure enough free storage on phone.
App installed but access is blocked?
  • Re-check Install unknown apps allowance for Files/Chrome.
  • Open the app and grant required runtime permissions.
  • If requested, allow special access prompts.
ADB install fallback (PC)

If file copy from PC is blocked, use:

adb devices
adb install -r phone-agent.apk

If you get INSTALL_FAILED_UPDATE_INCOMPATIBLE:

adb uninstall com.agentphone.app
adb install phone-agent.apk

If adb devices shows nothing:

  • Enable Developer options + USB debugging on phone.
  • Accept the RSA prompt on phone.
  • Re-run adb devices.

Docs

Install, connect, send. Plus AI assistant integration and company private server overview.

HTTP API

Auth, request fields, status polling, and copy/paste examples (Python, C++, Node, Go, Java, C#).

Open HTTP API Docs

Business Hub

Bulk send, contact lists, scheduling, and templates — configurable from the web UI.

Open Business Hub

Private Server

Company overview: keep traffic and access control inside your infrastructure.

Open Overview

Support

Email support for setup + sending issues.

Email

Open email or

Include your server URL, phone ID, and the last error message.