Skip to main content
CapOut gives you a straightforward API for submitting insurance PDFs, generating downloadable Contractor and Carrier ESX files, and subscribing to status changes as work completes. If you are working in Codex, Claude Code, Gemini CLI, OpenCode, GitHub Copilot CLI, or another MCP-aware client, CapOut also exposes the same workflow through the hosted MCP endpoint https://mcp.capout.ai/mcp.

Base endpoints

  • REST: https://api.capout.ai
  • WebSocket status stream: wss://api.capout.ai/ws/status
  • SSE status stream: https://api.capout.ai/sse/status

Core workflow

  1. Send capout-api-key on REST requests.
  2. Upload a PDF for ESX generation with POST /upload.
  3. Poll GET /status/{document_id} or subscribe to realtime updates while the export workflow runs.
  4. Download the Contractor or Carrier ESX file from the stable links returned at upload time.
  5. Read claim balances with GET /claims.

MCP setup

For Codex, install CapOut MCP with:
CapOut’s hosted MCP endpoint is:
For copyable setup examples in Codex, npx add-mcp, Claude Code, Gemini CLI, OpenCode, and GitHub Copilot CLI, see MCP Installation.

Start here

What the API covers

Uploads

Submit an insurance PDF either by passing a public url or by sending file_base64. Every accepted upload returns a document_id plus stable Contractor and Carrier download links that you can store immediately. CapOut generates both ESX profiles; xn_address and profile_code remain optional only for compatibility with older integrations. For agent-driven workflows, the CapOut MCP can also process PDFs directly and uses a staged local upload flow for local files because the CapOut MCP is hosted remotely.

Status tracking

Use GET /status/{document_id} when polling a single job, or GET /documents when you need the authenticated organization’s recent uploads and their workflow state.

ESX downloads

Request https://api.capout.ai/{document_id}.esx with capout-api-key for the Contractor (8D) file, or add ?profile=carrier for Carrier (5L). These stable, organization-scoped links refresh the private S3 signature after authorization, so store the CapOut URL rather than the redirected storage URL.

Realtime delivery

Call POST /ws/token to mint a short-lived token, then connect over WebSocket or SSE using that token as a query parameter.

Claims

Use GET /claims to see the current organization claim balance plus any buckets that expire soon. A live Xactimate export uses 1 claim.