Android TexterAndroid Texter

API Documentation

Integrate Android Texter into your app or CRM. Send messages, manage devices, and receive webhooks via our REST API.

Quick Start

Send your first SMS in seconds. Create an API key on the API Keys page, then:

curl
curl -X POST https://androidtexter.com/api/messages/send \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "+14155551234",
  "message": "Hello from the API!"
}'
Base URLhttps://androidtexter.com

Authentication

All API requests require authentication via an API key sent in the X-API-Key header, or a JWT Bearer token.

Messages

Send and receive SMS messages through your connected Android devices.

Devices

Manage the Android phones connected to your account.

Webhooks

Configure webhook URLs to receive real-time notifications when messages are received.

Quick Replies

Manage saved quick reply shortcuts for fast messaging.

Webhook Payloads

When a message is received on a connected device, we'll POST a JSON payload to your configured webhook URL.

message.received

Fired when an SMS is received on any connected device.

json
{
  "event": "message.received",
  "timestamp": "2026-03-11T20:26:47Z",
  "data": {
    "id": "uuid",
    "from": "+14155551234",
    "body": "Hello!",
    "device_id": "uuid",
    "device_name": "Pixel 7",
    "received_at": "2026-03-11T20:26:47Z"
  }
}

Verifying Webhook Signatures

Each webhook is signed with your webhook secret. Verify the X-Webhook-Signature header using HMAC-SHA256:

python
import hmac, hashlib

def verify_webhook(payload_bytes, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload_bytes,
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Rate Limits

API requests are rate-limited to 60 requests/minute per API key. Send endpoints are limited to 10 messages/second per device. If you exceed the limit, you'll receive a 429 Too Many Requests response.