🛡️ InsuranceChain API

Submit a loss, let InsuranceChain hash + score + anchor it on-chain, and read back a tamper-proof, independently-verifiable proof. Integrate in minutes.

Base URL https://insurancechain.ripitlabs.com
Interactive docs /api/docs (Swagger) · /api/redoc
Try the app /app · create an API key under Billing & API

Authentication

All client calls use a workspace API key in the X-API-Key header. Create and revoke keys in the app (Billing & API tab). Keys are shown once.

X-API-Key: ic_live_xxxxxxxxxxxxxxxxxxxx

Endpoints

POST /api/v1/claims — submit a claim (+ evidence), scored & anchored
GET /api/v1/claims — list your claims
GET /api/v1/claims/{id} — one claim + anchor proof
POST /api/v1/claims/{id}/anchor — anchor on-chain
PUT /api/v1/webhook — register a callback URL for claim.anchored
GET /api/v1/verify/{id} — public verification (no auth)
GET /api/v1/certificate/{id} — court-ready PDF (no auth)

Submit a claim

Provide the insured, the line, and evidence items. For each item, either send content_base64 (we hash the bytes) or a precomputed sha256. The evidence hashes are embedded in the anchored packet — the proof is the document itself.

cURL

curl -X POST https://insurancechain.ripitlabs.com/api/v1/claims \
  -H "X-API-Key: $IC_KEY" -H "Content-Type: application/json" -d '{
    "line": "marine",
    "claim_type": "cargo_damage",
    "insured_name": "Blue Horizon Freight",
    "subject_ref": "MSKU7829143",
    "subject_desc": "1x40 reefer, Valparaiso -> Long Beach",
    "occurred_at": "2026-07-15",
    "evidence": [
      {"kind": "bill_of_lading", "label": "BL MAEU-2291", "detail": {"bl_no": "MAEU-2291"}},
      {"kind": "survey_report",  "label": "SGS survey",   "sha256": "0xabc123..."},
      {"kind": "photo",          "label": "thaw.jpg",     "content_base64": "<base64 bytes>"}
    ],
    "auto_anchor": true
  }'

Response

{
  "id": "…", "claim_number": "CLM-00001",
  "claim_type": "cargo_damage", "doc_quality_score": 60,
  "anchor": {
    "content_hash": "0x…", "signature": "…",
    "tx_hash": "0x…", "explorer_url": "https://xdcscan.com/tx/0x…",
    "demo": false
  }
}

Python

import requests, base64
r = requests.post("https://insurancechain.ripitlabs.com/api/v1/claims",
  headers={"X-API-Key": IC_KEY},
  json={"line":"repo","claim_type":"wrongful_repossession","insured_name":"Sun Valley Recovery",
        "evidence":[{"kind":"alpr","label":"AZ4729X","detail":{"confidence":0.98}},
                    {"kind":"photo","label":"front.jpg",
                     "content_base64": base64.b64encode(open("front.jpg","rb").read()).decode()}]})
print(r.json()["anchor"]["explorer_url"])

Webhooks

Register a callback and we POST {"event":"claim.anchored","data":{…}} when a claim anchors. We include your secret in X-IC-Signature.

curl -X PUT https://insurancechain.ripitlabs.com/api/v1/webhook \
  -H "X-API-Key: $IC_KEY" -H "Content-Type: application/json" \
  -d '{"url":"https://your-system/hooks/ic","secret":"whsec_..."}'

Verify (public, no key)

Anyone can verify a proof or pull a certificate — an adjuster, a lawyer, a court.

GET  https://insurancechain.ripitlabs.com/api/v1/verify/{claim_id}
GET  https://insurancechain.ripitlabs.com/api/v1/certificate/{claim_id}   # PDF
Web  https://insurancechain.ripitlabs.com/verify?id={claim_id}

Lines & evidence kinds

LineCommon evidence kinds
repoalpr, photo, condition_report, property_inventory, compliance_note, gps
marinebill_of_lading, survey_report, photo, ais_track, reefer_log, commercial_invoice, delivery_receipt
lifedeath_certificate, policy_document, beneficiary_designation, identity_verification, physician_statement

Part of the Rip It Labs suite · Powered by RILBOT — hire AI agents on-chain · anchored on-chain · home