Expert AI Labs
Back to API overview

Claims (Documentation Assist)

Roadmap

Insurance Documentation Assist generates structured inputs (scope items, photo summaries, room dimensions) that the operator pastes into Xactimate or the carrier portal. We do not write to Xactimate. Activates during pilot phase.

GET/api/v1/claimsreadRoadmap

List documentation jobs

Each job represents a claim documentation extraction run.

Example response
{
  "data": [
    {
      "id": "clm_8w3p1m",
      "job_external_ref": "jn_117422",
      "loss_type": "water",
      "status": "ready_for_review",
      "scope_item_count": 14,
      "photo_count": 38,
      "created_at": "2026-04-27T18:09:11.000Z"
    }
  ],
  "next_cursor": null
}
POST/api/v1/claimswriteRoadmap

Create a documentation job

Provide a CompanyCam project ID or upload photos directly via signed URLs. Extraction runs async; subscribe to claim.scope.ready webhook.

Example request body
{
  "loss_type": "water",
  "source": { "vendor": "companycam", "project_id": "cc_proj_5482" },
  "job_external_ref": "jn_117422"
}
Example response
{
  "id": "clm_8w3p1m",
  "status": "extracting",
  "estimated_ready_at": "2026-04-27T18:14:00.000Z",
  "created_at": "2026-04-27T18:09:11.000Z"
}
GET/api/v1/claims/{id}readRoadmap

Fetch a documentation job

Returns extracted scope items with confidence scores and photo references.

Example response
{
  "id": "clm_8w3p1m",
  "loss_type": "water",
  "status": "ready_for_review",
  "rooms": [
    {
      "name": "Basement",
      "dimensions": { "length_ft": 24, "width_ft": 18, "height_ft": 8 },
      "scope_items": [
        { "code": "WTR DRY3", "description": "Tear out wet drywall, cleanup, bag for disposal", "qty": 312, "unit": "SF", "confidence": 0.94 }
      ]
    }
  ],
  "summary_pdf_url": "https://signed.expertailabs.ai/claims/clm_8w3p1m.pdf?exp=...",
  "summary_txt_url": "https://signed.expertailabs.ai/claims/clm_8w3p1m.txt?exp=..."
}
POST/api/v1/claims/{id}/reviewwriteRoadmap

Approve, edit, or reject scope items

Human-in-loop reviewer marks each line as approved, edited, or rejected. Audit-logged.

Example request body
{
  "decisions": [
    { "scope_item_id": "scope_a1", "decision": "approve" },
    { "scope_item_id": "scope_a2", "decision": "edit", "qty": 410, "note": "Re-measured on site" },
    { "scope_item_id": "scope_a3", "decision": "reject", "reason": "Pre-existing damage, not from loss" }
  ]
}
Example response
{
  "id": "clm_8w3p1m",
  "status": "reviewed",
  "decisions_recorded": 3,
  "reviewed_at": "2026-04-27T19:55:11.000Z"
}