API Docs

Send SMS from any app with a Bearer API key.

Manage keys

Authentication

Create a key in the portal, then send Authorization: Bearer eg_…

Send SMS

curl -X POST http://localhost:1084/api/v1/messages \
  -H "Authorization: Bearer eg_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+15551234567","body":"Hello from Eligapris"}'

List messages

curl http://localhost:1084/api/v1/messages \
  -H "Authorization: Bearer eg_YOUR_KEY"

List devices

curl http://localhost:1084/api/v1/devices \
  -H "Authorization: Bearer eg_YOUR_KEY"

Remote command

curl -X POST http://localhost:1084/api/v1/devices/DEVICE_ID/commands \
  -H "Authorization: Bearer eg_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"ring"}'

Locate / volume / power tools

# Find Hub–style locate (requires location grant on phone)
curl ... -d '{"type":"get_location"}'

# Max ring/notification/alarm volume
curl ... -d '{"type":"set_volume","payload":{"level":100,"stream":"ring"}}'

curl ... -d '{"type":"flashlight","payload":{"on":true}}'
curl ... -d '{"type":"set_clipboard","payload":{"text":"paste me"}}'
curl ... -d '{"type":"open_url","payload":{"url":"https://example.com"}}'
curl ... -d '{"type":"call_back","payload":{"to":"+15551234567"}}'

# Multi-SIM SMS (optional subscriptionId)
curl -X POST http://localhost:1084/api/v1/messages \
  -H "Authorization: Bearer eg_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"+15551234567","body":"Hi","subscriptionId":1}'

Grants: location for get_location; remote_commands for volume / flashlight / clipboard / open_url / call_back. Flashlight needs CAMERA OS permission; call_back prefers CALL_PHONE (falls back to dialer).

Photo (front / back)

curl -X POST http://localhost:1084/api/v1/devices/DEVICE_ID/commands \
  -H "Authorization: Bearer eg_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"take_photo","payload":{"camera":"front"}}'

Video

curl -X POST http://localhost:1084/api/v1/devices/DEVICE_ID/commands \
  -H "Authorization: Bearer eg_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"start_video","payload":{"camera":"back","maxSeconds":300,"chunkSeconds":60,"withAudio":true}}'

# later:
curl ... -d '{"type":"stop_video"}'

Audio (Opus / Ogg)

curl ... -d '{"type":"start_audio","payload":{"maxSeconds":300,"chunkSeconds":60}}'
curl ... -d '{"type":"stop_audio"}'

Sessions default to 5 minutes and upload in time chunks (default 60s) instead of one hard cut. Caps: maxSeconds 60–900, chunkSeconds 30–180.

Android pairing

  1. Portal → Devices → Generate code
  2. Android app → Pair → enter 6-digit code + API base URL
  3. Enable SMS / camera / mic / remote / location grants on the phone
  4. Start Gateway service (Home toggle)