Photos in. A priced inventory out.

The Contents.team API runs our claims pipeline from your software: create a claim, send room photos, and get back every visible item, priced from a real retailer and valued with depreciation.

Free for every Contents.team organization. The API adds no charge of its own; approved items count toward your plan exactly as they do in the app.

List your claims
curl https://contents.team/api/v1/claims?limit=1 \
  -H "Authorization: Bearer $CONTENTS_API_KEY"

200 OK

{
  "object": "list",
  "data": [
    {
      "id": "clm_0a6NnX3I9",
      "object": "claim",
      "mode": "live",
      "externalRef": "JOB-1042",
      "claimNumber": "HO-2026-118342",
      "insuredName": "Dana Whitfield",
      "lossAddress": "1418 Larkin St, Denver, CO 80211",
      "lossType": "Water",
      "dateOfLoss": "2026-10-19",
      "status": "in_progress",
      "insuranceCompany": "Front Range Mutual",
      "policyNumber": "FRM-HO3-7720931",
      "valuationMode": "rcv",
      "salesTaxBp": 881,
      "itemCount": 64,
      "approvedRcvCents": 1874215,
      "createdAt": "2026-10-21T15:02:11.000Z",
      "updatedAt": "2026-10-24T18:40:52.000Z"
    }
  ],
  "hasMore": true,
  "nextCursor": "clm_0a6NnX3I9"
}

One claim, start to finish.

Every integration follows the same six steps. A person reviews the inventory before anything is approved, in Contents.team or in your own product through the API, and only approved items reach an export.

  1. Create a claim

    Open a claim from your system with your own externalRef, so both sides stay linked and a retry never makes a duplicate.

    POST /api/v1/claimsAvailable
  2. Send room photos

    Pass photo URLs grouped by room. Each photo is analyzed and its visible items drafted as lines.

    POST /api/v1/claims/{claimId}/photosAvailable
  3. Hear when it is priced

    A signed webhook fires as photos finish analysis and as items are priced. Or poll the claim.

    webhook: items.priced
  4. Read the inventory

    Line items by room with quantity, condition, the replacement price and its source, depreciation, RCV and ACV.

    GET /api/v1/claims/{claimId}/itemsAvailable
  5. Review and approve

    Fix what the AI got wrong, pick a replacement offer, and approve, in Contents.team or inside your own product.

    POST /api/v1/claims/{claimId}/items/approveAvailable
  6. Export the report

    Generate the XactContents-format XLSX or the PDF report, and download it when export.ready arrives.

    POST /api/v1/claims/{claimId}/exportsAvailable

Steps marked rolling out ship in the coming weeks; the changelog records each one as it goes live.

What people build with it.

Built for software vendors whose users handle property claims, and just as useful to the team down the hall.

Claims and TPA platforms
Open a Contents.team claim from your own claim record, send the field photos, and pull the priced schedule back onto the file when the adjuster approves it.
Restoration and job software
Turn the photos your crews already take into the contents inventory for the job, with every line linked to the photo it came from.
In-house tools and AI agents
Script your own intake, sync claims into a data warehouse, or let an assistant create claims and read inventories over MCP.

Ready for AI agents.

Point Claude, ChatGPT, Cursor or Claude Code at our MCP server with an API key, and an assistant can open claims, add photos and read the inventory. Agents that read docs get llms.txt and the OpenAPI document.

Streamable HTTP endpoint

https://contents.team/api/mcp
  • list_claimsList claims
  • create_claimCreate a claim
  • add_photosAdd photos
  • get_claim_statusGet claim status
  • get_inventoryGet the inventory
  • export_reportExport a report
  • get_replacementsGet replacement offers
  • update_itemUpdate an item
  • approve_itemsApprove items
  • accept_replacementAccept a replacement offer
  • add_itemAdd an item
  • delete_itemDelete an item
  • unapprove_itemsUnapprove items
  • reject_itemsReject items
  • list_roomsList rooms
  • get_itemGet an item
  • list_categoriesList categories
  • update_claimUpdate a claim
  • get_meWho am I
  • get_upload_linkGet a photo upload link
  • create_photo_uploadStart a photo upload
  • complete_photo_uploadFinish a photo upload
  • list_photosList photos
  • get_photoLook at a photo
  • create_item_photo_uploadUpload photos for an item
  • attach_item_photosAttach photos to an item
  • price_from_linkPrice an item from a product link
  • search_replacementsSearch for replacements

The parts you will rely on.

API keys and scopes

Owners and admins create keys in Settings. Each key carries only the scopes it needs, and a write scope never implies the read.

Authentication

Test mode

ctk_test_ keys run a canned pipeline with realistic results, so you can build the whole flow without real photos. Nothing in test mode is billed.

Test mode

Signed webhooks

Events for new claims, finished analysis, priced items, approved inventories and ready exports, signed with HMAC-SHA256 and retried for three days.

Webhooks

Predictable requests

Prefixed ids, money in cents, rates in basis points, cursor pagination, Idempotency-Key on every POST and one error envelope.

Requests and errors

How we handle your data.

Every organization's claims, photos and items are isolated from every other organization's, and an API key only ever reaches the organization that created it. Keys are stored as hashes, shown once, and an owner or admin can revoke any of them from Settings. Photos are stored privately and encrypted at rest; we don't sell your data or use it to train outside models.

Read the privacy policy and the data processing agreement. Live keys for a partner integration come with a partner agreement and DPA.

Building an integration?

Tell us what your users do and we will help you scope it, set up live access, and list it.

Browse the API reference, the review and approve guide, the CompanyCam guide, the CompanyCam integration and the status page.

Email integrations@contents.team