InsuredAuditDeveloper Portal

Quickstart

Ingest your first event into InsuredAudit and request a Court Ready Evidentiary Bundle in five minutes. Examples use the official TypeScript SDK; the Python SDK mirrors the same surface one-for-one.

1. Provision an API key

API keys are tenant-scoped. Have an operator with the admin scope mint one for you:

curl -X POST https://api.insuredaudit.com/v1/api-keys \
  -H "Authorization: Bearer <admin_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": "acme",
    "name": "integration-bot",
    "scopes": ["events:write", "events:read", "bundles:request", "bundles:read", "bundles:export"]
  }'

The response includes the secret exactly once as api_key. Store it in your secret manager — it can’t be retrieved later.

2. Install the SDK

npm install @creb/sdk
# or
pip install creb-sdk

3. Ingest an event

import { CrebClient } from "@creb/sdk";

const client = new CrebClient({
  baseUrl: "https://api.insuredaudit.com",
  apiKey: process.env.CREB_API_KEY!,
  tenantId: "acme",
});

const result = await client.ingestEvent({
  event_family: "claim",
  event_type: "CLAIM_SUBMITTED",
  tenant_id: "acme",
  member_id: "01HZZMEMBERID0000000000001",
  source_system: "EDI_CLAIMS_GW",
  source_record_type: "x12_837",
  source_record_id: "GW-2026-05-23-000123",
  event_effective_timestamp: "2026-05-23T12:00:00Z",
  payload: { claim_amount_cents: 24500 },
});
console.log(result.event_id, result.envelope_hash);

The server returns the assigned event_id (ULID), the envelope’s SHA-256 hash, and the WORM blob hash you can later present to prove what the system saw. Identical envelopes de-duplicate; you’ll get back status: DUPLICATE with the original event_id.

4. Request a Court Ready Evidentiary Bundle

const sealed = await client.requestBundleAndWait({
  scope: { tenant_id: "acme", member_id: "01HZZMEMBERID0000000000001" },
  bundle_type: "MEMBER",
  requested_by: "[email protected]",
});
const blob = await client.downloadBundle(sealed.bundle_id);
// 'blob' is a Fetch Response — stream it to disk, send it on, etc.

5. Subscribe to a webhook

const { id, secret } = await client.createWebhook({
  tenant_id: "acme",
  url: "https://hooks.example.com/creb",
  event_types: ["bundle.sealed", "exception.opened"],
});
// 'secret' is the HMAC signing key — store it now, you won't see it again.

Verify inbound webhooks with HMAC-SHA256 over the request body using the secret returned above. See Webhooks for the full signing recipe.

Next: read Event envelope for the full schema of every field on the envelope, and CREB bundles for the bundle scope syntax.