Expert AI Labs
Back to API overview

Calls

Roadmap

Inbound call records ingested from CallRail and other call-tracking platforms. Each record includes recording URL, transcript, AI classification, and dispatch decision. Activates during pilot phase.

GET/api/v1/callsreadRoadmap

List calls

Filter by status, classification (water | fire | mold | biohazard | sales | junk), and qualified flag.

Example response
{
  "data": [
    {
      "id": "call_q4n8p2w7",
      "tracking_number": "+17705550199",
      "caller_number": "+14045550173",
      "duration_seconds": 142,
      "classification": "water",
      "qualified": true,
      "urgency": "high",
      "dispatch_decision": "auto_dispatch",
      "received_at": "2026-04-27T17:42:11.214Z"
    }
  ],
  "next_cursor": null
}
GET/api/v1/calls/{id}readRoadmap

Fetch a call

Returns the full record: signed recording URL (1-hour TTL), transcript, AI classification with confidence, dispatch decision and reason.

Example response
{
  "id": "call_q4n8p2w7",
  "tracking_number": "+17705550199",
  "caller_number": "+14045550173",
  "duration_seconds": 142,
  "recording_url": "https://signed.expertailabs.ai/recordings/q4n8p2w7?exp=1745783100&sig=...",
  "transcript": "Caller: Hi, I have water coming through my basement ceiling, I think a pipe burst...",
  "classification": {
    "intent": "water",
    "confidence": 0.96,
    "urgency": "high",
    "qualified": true
  },
  "dispatch_decision": {
    "action": "auto_dispatch",
    "reason": "in_service_radius + qualified + business_hours",
    "sms_callback_sent": true,
    "job_created_in_jobnimbus": "jn_117422"
  },
  "received_at": "2026-04-27T17:42:11.214Z"
}
GET/api/v1/calls/statsreadRoadmap

Call statistics

Aggregated counts by classification and qualified flag. Default window: last 7 days. Override with ?window=24h | 7d | 30d | 90d.

Example response
{
  "window": "7d",
  "total_calls": 47,
  "qualified": 18,
  "junk_filtered": 12,
  "by_intent": {
    "water": 21,
    "fire": 4,
    "mold": 6,
    "biohazard": 1,
    "sales_pitch": 8,
    "wrong_number": 4,
    "other": 3
  },
  "median_classification_seconds": 11
}