Integrate your CRM, build automated device workflows, and stream screen frames using standard REST endpoints and HMAC-SHA256 verified webhooks.
Authenticate via Authorization: Bearer <TOKEN> or x-api-key: <KEY> header.
Mobile companion bi-directional telemetry exchange and command dispatch.
{
"action": "dispatch",
"deviceId": "cmp_device_uuid",
"command": {
"action": "TAP",
"x": 540,
"y": 1200
}
}Full CRUD on leads, live directory scraping, lead scoring, and RFC-4180 CSV export.
{
"action": "scrape",
"query": "Healthcare Clinic",
"location": "Dallas, TX",
"limit": 10
}Campaign schedule management and Redis-queued bulk outreach dispatch.
{
"action": "dispatch",
"leadIds": [
"lead_1",
"lead_2"
],
"channel": "EMAIL",
"message": "Following up on enterprise automation partnership."
}Lifecycle stage progression (LEAD ➔ SQL ➔ CUSTOMER), auto-invoicing & webhook events.
{
"action": "transition_stage",
"leadId": "lead_cuid",
"targetStage": "CUSTOMER",
"dealValue": 1200
}Register, update, and manage webhook subscription endpoints with secret HMAC keys.
{
"name": "HubSpot Pipeline Sync",
"targetUrl": "https://api.yourdomain.com/webhooks/phonepilot",
"subscribedEvents": [
"lead.scraped",
"automation.completed"
],
"serviceType": "CUSTOM"
}Real outbound HTTP test measuring live round-trip latency to LLM providers.
{
"provider": "groq",
"apiKey": "gsk_...",
"baseUrl": "https://api.groq.com/openai/v1",
"model": "llama-3.3-70b-versatile"
}Executes server-side headless browser tasks (DOM click, text input, screenshot).
{
"targetUrl": "https://example.com",
"taskType": "EXTRACT_LEADS",
"actions": [
{
"type": "NAVIGATE",
"url": "https://example.com"
},
{
"type": "SCREENSHOT"
}
]
}Every webhook event includes an X-PhonePilot-Signature header.
// Node.js Webhook HMAC-SHA256 Verification
import crypto from "crypto";
export function verifyPhonePilotSignature(
rawBody: string,
signatureHeader: string,
secretKey: string
): boolean {
// Strip 'sha256=' prefix if present
const receivedHash = signatureHeader.replace(/^sha256=/, "");
const computedHash = crypto
.createHmac("sha256", secretKey)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(receivedHash, "hex"),
Buffer.from(computedHash, "hex")
);
}# Python Webhook HMAC-SHA256 Verification
import hmac
import hashlib
def verify_signature(raw_body: bytes, signature_header: str, secret_key: str) -> bool:
received_hash = signature_header.replace("sha256=", "")
computed_hash = hmac.new(
secret_key.encode("utf-8"),
raw_body,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(received_hash, computed_hash)Zero-root accessibility protocol streaming Base64 JPEG frames over WebSocket or HTTP relay.
The native Android Companion application implements PhonePilotAccessibilityService with android:canTakeScreenshot="true". When activated:
AccessibilityService.takeScreenshot()./api/companion/relay.TAP, SWIPE, TYPE, and executes them within 1 second.