Kinetic Systems · API Reference Request a key

Financial fraud recovery API

The Kinetic API

One REST API to run a recovery end to end: intake the judgment, trace the money across wallets and exchanges, build the legal and exchange packets, and follow every dollar back to the claimant. Authority-gated, fully audited, webhook-native.

103
Operations
141
Schemas
32
Webhooks
19
API Groups

Quickstart

Every request needs a scoped API key in the x-api-key header. The base URL is https://api.kineticsystems.uk. Start by confirming your key, then open a matter.

BASE_URL="https://api.kineticsystems.uk"
API_KEY="kinetic_test_..."

curl "$BASE_URL/v1/health" -H "x-api-key: $API_KEY"

1 · Open a matter

The container for a recovery: claimants, counsel, economics, jurisdiction, and audit state.

POST /v1/matters

2 · Intake the judgment

Normalize parties, amount, deadline, jurisdiction, and authority status.

POST /v1/judgments/intake

3 · Run a campaign

Build attribution, generate packets, assign actions, and track recovery.

POST /v1/claw/campaigns

Authentication

Kinetic uses scoped API keys issued per organization. Every operation declares the scope it requires (for example judgments:write or attribution:read). Keys carry only the scopes you grant them, and every authenticated call is written to the audit trail.

x-api-key: kinetic_live_xxxxxxxxxxxxxxxxxxxx

Operations that touch real recovery require an active matter with established authority. Demo and read calls work without it; anything that produces legal process, issuer remediation, or enforcement communication is gated behind matter authority and counsel review.

Concepts

A recovery flows through a fixed spine. Each stage is a set of endpoints, and each object carries its sources, its confidence, and its review state.

Judgment → Authority model → Debtor / adversary graph → Crypto attribution graph → Exchange / issuer packets → Sanctions & bankruptcy gates → Action queue → Recovery ledger → Waterfall → Audit trail

Health

Health and product metadata.

GET/v1/healthHealth check

Returns service status and API version.

operation: getHealthhealth:read

Request

No body. Path / query parameters only.

200 Response

{
  "status": "ok",
  "version": "string",
  "environment": "string",
  "timestamp": "2026-06-01T12:00:00Z"
}
GET/v1/capabilitiesList Kinetic capabilities

Returns available API modules, environments, enabled feature flags, and access posture.

operation: listCapabilitiescapabilities:read

Request

No body. Path / query parameters only.

200 Response

{
  "capabilities": [
    "string"
  ],
  "modules": [
    "string"
  ],
  "environments": [
    "string"
  ],
  "notes": "string"
}

Organizations

Organizations, users, roles, and API key scopes.

POST/v1/organizationsCreate organization

Creates an organization tenant for Meridian/internal, counsel, recovery operator, or partner use.

operation: createOrganizationorg:write

Request

{
  "name": "string",
  "type": "string",
  "retention_policy": "string"
}

201 Response

{
  "organization_id": "string",
  "name": "string",
  "type": "meridian_internal",
  "created_at": "2026-06-01T12:00:00Z",
  "features": [
    "string"
  ]
}
GET/v1/organizationsList organizations

Lists organizations accessible to the caller.

operation: listOrganizationsorg:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "organization_id": "...",
      "name": "...",
      "type": "...",
      "created_at": "...",
      "features": "..."
    }
  ]
}
GET/v1/organizations/{organization_id}Get organization

Gets an organization and feature flags.

operation: getOrganizationorg:read

Request

No body. Path / query parameters only.

200 Response

{
  "organization_id": "string",
  "name": "string",
  "type": "meridian_internal",
  "created_at": "2026-06-01T12:00:00Z",
  "features": [
    "string"
  ]
}
PATCH/v1/organizations/{organization_id}Update organization

Updates organization settings and retention defaults.

operation: updateOrganizationorg:write

Request

{
  "name": "string",
  "retention_policy": "string",
  "features": [
    "string"
  ]
}

200 Response

{
  "organization_id": "string",
  "name": "string",
  "type": "meridian_internal",
  "created_at": "2026-06-01T12:00:00Z",
  "features": [
    "string"
  ]
}
POST/v1/organizations/{organization_id}/api-keysIssue API key

Issues a scoped API key for sandbox or approved production workflows.

operation: issueApiKeykeys:write

Request

{
  "name": "string",
  "environment": "sandbox",
  "scopes": [
    "string"
  ],
  "matter_ids": [
    "string"
  ],
  "expires_at": "2026-06-01T12:00:00Z"
}

201 Response

{
  "key_id": "string",
  "secret_once": "string",
  "environment": "string",
  "scopes": [
    "string"
  ],
  "created_at": "2026-06-01T12:00:00Z"
}
GET/v1/organizations/{organization_id}/api-keysList API keys

Lists API keys and status metadata without revealing secret material.

operation: listApiKeyskeys:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "key_id": "string",
      "name": "string",
      "environment": "string",
      "scopes": [
        "..."
      ],
      "status": "string"
    }
  ]
}
POST/v1/organizations/{organization_id}/usersInvite user

Invites a user and assigns role/matter permissions.

operation: inviteUserusers:write

Request

{
  "email": "string",
  "roles": [
    "string"
  ],
  "name": "string",
  "matter_ids": [
    "string"
  ]
}

201 Response

{
  "user_id": "string",
  "email": "string",
  "name": "string",
  "roles": [
    "string"
  ],
  "matter_ids": [
    "string"
  ]
}
GET/v1/organizations/{organization_id}/usersList users

Lists users in an organization.

operation: listUsersusers:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "user_id": "...",
      "email": "...",
      "name": "...",
      "roles": "...",
      "matter_ids": "..."
    }
  ]
}

Matters

Recovery matters and campaign dashboards.

POST/v1/mattersCreate matter

Creates a recovery matter and establishes the primary authority object container.

operation: createMattermatters:write

Request

{
  "name": "string",
  "mode": "string",
  "lead_counsel": "string",
  "economics": {},
  "notes": "string"
}

201 Response

{
  "matter_id": "string",
  "name": "string",
  "mode": "small_judgment",
  "status": "string",
  "organization_id": "string",
  "lead_counsel": "string",
  "economics": {},
  "created_at": "2026-06-01T12:00:00Z"
}
GET/v1/mattersList matters

Lists matters available to the caller, filtered by role and matter permission.

operation: listMattersmatters:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "matter_id": "...",
      "name": "...",
      "mode": "...",
      "status": "...",
      "organization_id": "...",
      "lead_counsel": "...",
      "economics": "...",
      "created_at": "..."
    }
  ]
}
GET/v1/matters/{matter_id}Get matter

Gets a matter with summary status.

operation: getMattermatters:read

Request

No body. Path / query parameters only.

200 Response

{
  "matter_id": "string",
  "name": "string",
  "mode": "small_judgment",
  "status": "string",
  "organization_id": "string",
  "lead_counsel": "string",
  "economics": {},
  "created_at": "2026-06-01T12:00:00Z"
}
PATCH/v1/matters/{matter_id}Update matter

Updates matter metadata, mode, counsel, economics, and retention settings.

operation: updateMattermatters:write

Request

{
  "name": "string",
  "status": "string",
  "lead_counsel": "string",
  "economics": {},
  "retention_policy": "string"
}

200 Response

{
  "matter_id": "string",
  "name": "string",
  "mode": "small_judgment",
  "status": "string",
  "organization_id": "string",
  "lead_counsel": "string",
  "economics": {},
  "created_at": "2026-06-01T12:00:00Z"
}
GET/v1/matters/{matter_id}/dashboardGet matter dashboard

Returns command dashboard metrics for a matter.

operation: getMatterDashboardmatters:read

Request

No body. Path / query parameters only.

200 Response

{
  "matter_id": "string",
  "judgment_value": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "known_crypto_exposure": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "open_actions": 123,
  "open_packets": 123,
  "alerts": 123,
  "recovery_events": 123,
  "meridian_economics": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  }
}
POST/v1/matters/{matter_id}/closeClose matter

Closes a matter as paid, settled, exhausted, stayed, or administratively closed.

operation: closeMattermatters:write

Request

{
  "reason": "paid",
  "notes": "string"
}

200 Response

{
  "matter_id": "string",
  "name": "string",
  "mode": "small_judgment",
  "status": "string",
  "organization_id": "string",
  "lead_counsel": "string",
  "economics": {},
  "created_at": "2026-06-01T12:00:00Z"
}

Judgments

Judgment intake, validation, deadlines, and enforcement plans.

POST/v1/judgments/intakeIntake judgment

Creates a structured judgment record from entered fields and optional uploaded source references.

operation: intakeJudgmentjudgments:write

Request

{
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "creditor": "string",
  "debtor": "string",
  "amount": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "date_entered": "2026-06-01"
}

201 Response

{
  "judgment_id": "string",
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "date_entered": "2026-06-01",
  "creditor": "string",
  "debtor": "string"
}
GET/v1/judgments/{judgment_id}Get judgment

Gets judgment, validation, deadlines, linked matter, and balance summary.

operation: getJudgmentjudgments:read

Request

No body. Path / query parameters only.

200 Response

{
  "judgment_id": "string",
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "date_entered": "2026-06-01",
  "creditor": "string",
  "debtor": "string"
}
PATCH/v1/judgments/{judgment_id}Update judgment

Updates judgment metadata and review flags.

operation: updateJudgmentjudgments:write

Request

{
  "status": "string",
  "appeal_stay_status": "string",
  "bankruptcy_status": "string",
  "renewal_deadline": "2026-06-01",
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

200 Response

{
  "judgment_id": "string",
  "matter_id": "string",
  "court": "string",
  "case_number": "string",
  "jurisdiction": "string",
  "date_entered": "2026-06-01",
  "creditor": "string",
  "debtor": "string"
}
POST/v1/judgments/{judgment_id}/validateValidate judgment readiness

Runs authority, stay/appeal/bankruptcy, consumer/commercial, and required-document gates.

operation: validateJudgmentjudgments:validate

Request

{
  "checks": [
    "string"
  ],
  "consumer_debt": true,
  "bankruptcy_known": true,
  "appeal_stay_known": true
}

200 Response

{
  "judgment_id": "string",
  "enforcement_ready": true,
  "review_required": true,
  "missing_items": [
    "string"
  ],
  "gates": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}
GET/v1/judgments/{judgment_id}/deadlinesGet judgment deadlines

Returns renewal, service, response, hearing, packet, and monitoring deadlines.

operation: getJudgmentDeadlinesjudgments:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "deadline_id": "...",
      "type": "...",
      "date": "...",
      "owner": "...",
      "status": "..."
    }
  ]
}
POST/v1/judgments/{judgment_id}/enforcement-profileSet enforcement profile

Sets Measured, Assertive, or Maximum Lawful posture after compliance gates.

operation: setEnforcementProfilejudgments:plan

Request

{
  "profile": "measured",
  "notes": "string"
}

200 Response

{
  "judgment_id": "string",
  "profile": "string",
  "pressure_level": 123,
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/judgments/{judgment_id}/enforcement-planGenerate enforcement plan

Generates a lawful action plan from judgment, debtor graph, crypto map, exchange opportunities, issuer opportunities, sanctions gates, and selected profile.

operation: generateEnforcementPlanjudgments:plan

Request

{
  "profile": "measured",
  "constraints": {
    "consumer_debt": true,
    "bankruptcy_known": true,
    "appeal_stay_known": true,
    "sanctions_review_required": true
  },
  "known_wallets": [
    "string"
  ],
  "known_exchanges": [
    "string"
  ]
}

200 Response

{
  "plan_id": "string",
  "judgment_id": "string",
  "profile": "string",
  "review_required": true,
  "priority_actions": [
    {
      "action_id": "...",
      "matter_id": "...",
      "campaign_id": "...",
      "type": "...",
      "title": "...",
      "owner_id": "...",
      "priority": "...",
      "status": "..."
    }
  ],
  "blocked_actions": [
    {
      "type": "string",
      "reason": "string"
    }
  ],
  "deadlines": [
    {
      "deadline_id": "...",
      "type": "...",
      "date": "...",
      "owner": "...",
      "status": "..."
    }
  ],
  "gates": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}

Claimants

Claimant registry and recovery economics.

POST/v1/matters/{matter_id}/claimantsAdd claimant

Adds claimant, creditor, assignee, or recovery interest holder to a matter.

operation: addClaimantclaimants:write

Request

{
  "name": "string",
  "role": "string",
  "economics": {},
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}

201 Response

{
  "claimant_id": "string",
  "matter_id": "string",
  "name": "string",
  "role": "creditor",
  "economics": {},
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
GET/v1/matters/{matter_id}/claimantsList claimants

Lists matter claimants and recovery economics.

operation: listClaimantsclaimants:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "claimant_id": "...",
      "matter_id": "...",
      "name": "...",
      "role": "...",
      "economics": "...",
      "review_state": "..."
    }
  ]
}
GET/v1/claimants/{claimant_id}Get claimant

Gets claimant and economics terms.

operation: getClaimantclaimants:read

Request

No body. Path / query parameters only.

200 Response

{
  "claimant_id": "string",
  "matter_id": "string",
  "name": "string",
  "role": "creditor",
  "economics": {},
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
PATCH/v1/claimants/{claimant_id}Update claimant

Updates claimant terms and review status.

operation: updateClaimantclaimants:write

Request

{
  "name": "string",
  "economics": {},
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

200 Response

{
  "claimant_id": "string",
  "matter_id": "string",
  "name": "string",
  "role": "creditor",
  "economics": {},
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

Debtors

Debtor/adversary profiles, graphs, and asset hypotheses.

POST/v1/debtorsCreate debtor/adversary

Creates a debtor, adversary, nominee, entity, or related enforcement subject.

operation: createDebtordebtors:write

Request

{
  "matter_id": "string",
  "type": "string",
  "legal_name": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {}
}

201 Response

{
  "debtor_id": "string",
  "matter_id": "string",
  "type": "individual",
  "legal_name": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "wallets": [
    "string"
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
GET/v1/debtorsList debtors

Lists debtors/adversaries available to the caller.

operation: listDebtorsdebtors:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "debtor_id": "...",
      "matter_id": "...",
      "type": "...",
      "legal_name": "...",
      "aliases": "...",
      "identifiers": "...",
      "wallets": "...",
      "review_state": "..."
    }
  ]
}
GET/v1/debtors/{debtor_id}Get debtor/adversary

Gets profile, aliases, wallets, assets, and review status.

operation: getDebtordebtors:read

Request

No body. Path / query parameters only.

200 Response

{
  "debtor_id": "string",
  "matter_id": "string",
  "type": "individual",
  "legal_name": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "wallets": [
    "string"
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
PATCH/v1/debtors/{debtor_id}Update debtor/adversary

Updates profile and linked identifiers.

operation: updateDebtordebtors:write

Request

{
  "legal_name": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

200 Response

{
  "debtor_id": "string",
  "matter_id": "string",
  "type": "individual",
  "legal_name": "string",
  "aliases": [
    "string"
  ],
  "identifiers": {},
  "wallets": [
    "string"
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/debtors/{debtor_id}/graphBuild debtor graph

Builds debtor/adversary graph with aliases, entities, wallets, service targets, public records, and source-linked claims.

operation: buildDebtorGraphdebtors:graph

Request

{
  "include_sources": [
    "string"
  ],
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}

200 Response

{
  "graph_id": "string",
  "debtor_id": "string",
  "nodes": [
    {}
  ],
  "edges": [
    {}
  ],
  "claims": [
    {
      "claim_id": "...",
      "matter_id": "...",
      "subject": "...",
      "predicate": "...",
      "object": "...",
      "source_type": "...",
      "source_refs": "...",
      "confidence": "..."
    }
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/debtors/{debtor_id}/asset-hypothesesCreate asset hypotheses

Generates source-linked asset hypotheses from debtor graph, judgment data, relationship data, and crypto attribution.

operation: createAssetHypothesesdebtors:graph

Request

{
  "asset_classes": [
    "string"
  ],
  "min_confidence": 123.45
}

200 Response

{
  "items": [
    {
      "hypothesis_id": "string",
      "asset_type": "string",
      "description": "string",
      "confidence": 123.45,
      "source_refs": [
        "..."
      ]
    }
  ]
}

Relationships

Exchange, issuer, counsel, vendor, and counterparty relationships.

POST/v1/relationshipsCreate relationship

Creates an exchange, issuer, counsel, vendor, LE-only channel, receiver, special master, claimant, or counterparty relationship object.

operation: createRelationshiprelationships:write

Request

{
  "counterparty_type": "string",
  "counterparty_name": "string",
  "channel_type": "string",
  "usable_by_meridian": true,
  "usable_by_counsel": true,
  "usable_by_law_enforcement": true,
  "authorized_submitter_required": true,
  "packet_types_supported": [
    "string"
  ]
}

201 Response

{
  "relationship_id": "string",
  "counterparty_type": "exchange",
  "counterparty_name": "string",
  "channel_type": "string",
  "usable_by_meridian": true,
  "usable_by_counsel": true,
  "usable_by_law_enforcement": true,
  "authorized_submitter_required": true
}
GET/v1/relationshipsList relationships

Lists relationship registry objects.

operation: listRelationshipsrelationships:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "relationship_id": "...",
      "counterparty_type": "...",
      "counterparty_name": "...",
      "channel_type": "...",
      "usable_by_meridian": "...",
      "usable_by_counsel": "...",
      "usable_by_law_enforcement": "...",
      "authorized_submitter_required": "..."
    }
  ]
}
GET/v1/relationships/{relationship_id}Get relationship

Gets channel type, allowed users, packet support, and contact history.

operation: getRelationshiprelationships:read

Request

No body. Path / query parameters only.

200 Response

{
  "relationship_id": "string",
  "counterparty_type": "exchange",
  "counterparty_name": "string",
  "channel_type": "string",
  "usable_by_meridian": true,
  "usable_by_counsel": true,
  "usable_by_law_enforcement": true,
  "authorized_submitter_required": true
}
PATCH/v1/relationships/{relationship_id}Update relationship

Updates channel metadata, allowed use, and risk levels.

operation: updateRelationshiprelationships:write

Request

{
  "channel_type": "string",
  "packet_types_supported": [
    "string"
  ],
  "risk_level": "string",
  "notes": "string"
}

200 Response

{
  "relationship_id": "string",
  "counterparty_type": "exchange",
  "counterparty_name": "string",
  "channel_type": "string",
  "usable_by_meridian": true,
  "usable_by_counsel": true,
  "usable_by_law_enforcement": true,
  "authorized_submitter_required": true
}
POST/v1/relationships/{relationship_id}/contact-logAdd contact log

Records a relationship contact attempt, authorized sender, packet ID, outcome, and response state.

operation: addContactLogrelationships:write

Request

{
  "matter_id": "string",
  "authorized_sender": "string",
  "contact_type": "string",
  "packet_id": "string",
  "outcome": "string",
  "notes": "string"
}

201 Response

{
  "contact_log_id": "string",
  "relationship_id": "string",
  "matter_id": "string",
  "authorized_sender": "string",
  "outcome": "string",
  "created_at": "2026-06-01T12:00:00Z"
}
GET/v1/relationships/counterparties/{counterparty_id}Get counterparty relationships

Gets all relationships, packets, and response history for an exchange, issuer, vendor, or other counterparty.

operation: getCounterpartyRelationshipsrelationships:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "relationship_id": "...",
      "counterparty_type": "...",
      "counterparty_name": "...",
      "channel_type": "...",
      "usable_by_meridian": "...",
      "usable_by_counsel": "...",
      "usable_by_law_enforcement": "...",
      "authorized_submitter_required": "..."
    }
  ]
}

Attribution

Wallet, entity, source, confidence, and attribution graph workflows.

POST/v1/attribution/wallets/importImport wallets

Imports wallet addresses with matter, evidence, source, role, and confidence context.

operation: importWalletsattribution:write

Request

{
  "matter_id": "string",
  "wallets": [
    {
      "wallet_id": "...",
      "address": "...",
      "network": "...",
      "role": "...",
      "confidence": "...",
      "source_refs": "..."
    }
  ]
}

201 Response

{
  "imported": 123,
  "wallets": [
    {
      "wallet_id": "...",
      "address": "...",
      "network": "...",
      "role": "...",
      "confidence": "...",
      "source_refs": "..."
    }
  ]
}
POST/v1/attribution/graphCreate attribution graph

Creates or refreshes a source-linked graph of wallets, entities, exchanges, claims, contradictions, and confidence scores.

operation: createAttributionGraphattribution:graph

Request

{
  "matter_id": "string",
  "wallet_ids": [
    "string"
  ],
  "include_contradictions": true
}

200 Response

{
  "graph_id": "string",
  "matter_id": "string",
  "nodes": [
    {}
  ],
  "edges": [
    {}
  ],
  "claims": [
    {
      "claim_id": "...",
      "matter_id": "...",
      "subject": "...",
      "predicate": "...",
      "object": "...",
      "source_type": "...",
      "source_refs": "...",
      "confidence": "..."
    }
  ],
  "confidence_matrix": [
    {
      "claim_id": "...",
      "score": "...",
      "label": "...",
      "basis": "..."
    }
  ]
}
POST/v1/attribution/claimsCreate attribution claim

Creates a single attribution claim with subject, predicate, object, source basis, confidence, and review state.

operation: createAttributionClaimattribution:write

Request

{
  "matter_id": "string",
  "subject": "string",
  "predicate": "string",
  "object": "string",
  "source_type": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "confidence": 123.45,
  "basis": [
    "string"
  ]
}

201 Response

{
  "claim_id": "string",
  "matter_id": "string",
  "subject": "string",
  "predicate": "string",
  "object": "string",
  "source_type": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "confidence": 123.45
}
GET/v1/attribution/graphs/{graph_id}Get attribution graph

Gets an attribution graph and source manifest.

operation: getAttributionGraphattribution:read

Request

No body. Path / query parameters only.

200 Response

{
  "graph_id": "string",
  "matter_id": "string",
  "nodes": [
    {}
  ],
  "edges": [
    {}
  ],
  "claims": [
    {
      "claim_id": "...",
      "matter_id": "...",
      "subject": "...",
      "predicate": "...",
      "object": "...",
      "source_type": "...",
      "source_refs": "...",
      "confidence": "..."
    }
  ],
  "confidence_matrix": [
    {
      "claim_id": "...",
      "score": "...",
      "label": "...",
      "basis": "..."
    }
  ]
}
POST/v1/attribution/confidence-scoreScore attribution

Scores attribution claims based on evidence hierarchy, corroboration, contradictions, source type, and review status.

operation: scoreAttributionattribution:score

Request

{
  "claim_id": "string",
  "evidence_tier": "string",
  "corroboration": [
    "string"
  ],
  "contradictions": [
    "string"
  ]
}

200 Response

{
  "claim_id": "string",
  "score": 123.45,
  "label": "weak_signal",
  "basis": [
    "string"
  ]
}

Network Attribution

Lawful IP/network auxiliary attribution signals.

POST/v1/network-attribution/signalsAdd network attribution signal

Adds lawful auxiliary IP/network/provider signal with source restrictions and confidence level.

operation: addNetworkSignalnetwork:write

Request

{
  "matter_id": "string",
  "signal_type": "string",
  "source": "string",
  "wallet_address": "string",
  "legal_process_id": "string",
  "timestamp": "2026-06-01T12:00:00Z",
  "raw_value_redacted": "string",
  "privacy_restrictions": [
    "string"
  ]
}

201 Response

{
  "network_attribution_id": "string",
  "matter_id": "string",
  "wallet_address": "string",
  "signal_type": "exchange_login_ip",
  "source": "string",
  "legal_process_id": "string",
  "timestamp": "2026-06-01T12:00:00Z",
  "confidence_level": "L0"
}
POST/v1/network-attribution/correlateCorrelate network signals

Correlates wallet, exchange, provider, claimant, domain, cloud, and telemetry signals without treating IP as standalone proof.

operation: correlateNetworkSignalsnetwork:correlate

Request

{
  "matter_id": "string",
  "wallet_ids": [
    "string"
  ],
  "signal_ids": [
    "string"
  ]
}

200 Response

{
  "matter_id": "string",
  "correlations": [
    {
      "subject": "string",
      "signal_id": "string",
      "confidence_level": "string",
      "explanation": "string",
      "review_required": true
    }
  ]
}
GET/v1/network-attribution/{network_attribution_id}Get network attribution

Gets a network signal/correlation result with privacy restrictions and legal process provenance.

operation: getNetworkAttributionnetwork:read

Request

No body. Path / query parameters only.

200 Response

{
  "network_attribution_id": "string",
  "matter_id": "string",
  "wallet_address": "string",
  "signal_type": "exchange_login_ip",
  "source": "string",
  "legal_process_id": "string",
  "timestamp": "2026-06-01T12:00:00Z",
  "confidence_level": "L0"
}

Crypto

Asset maps, timelines, exchange hypotheses, stablecoin exposure.

POST/v1/crypto/asset-mapCreate crypto asset map

Maps known and suspected crypto exposure: wallets, token balances, transaction timelines, exchange hypotheses, stablecoins, NFTs, DeFi, bridges, and confidence scores.

operation: createCryptoAssetMapcrypto:map

Request

{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "chains": [
    "string"
  ],
  "include_stablecoins": true,
  "include_exchanges": true,
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}

200 Response

{
  "map_id": "string",
  "matter_id": "string",
  "wallets": [
    {
      "wallet_id": "...",
      "address": "...",
      "network": "...",
      "role": "...",
      "confidence": "...",
      "source_refs": "..."
    }
  ],
  "token_exposures": [
    {
      "asset": "string",
      "network": "string",
      "amount": 123.45,
      "usd_value": 123.45,
      "wallet": "string"
    }
  ],
  "exchange_hypotheses": [
    {
      "hypothesis_id": "...",
      "exchange": "...",
      "wallet": "...",
      "basis": "...",
      "confidence": "...",
      "packet_readiness": "...",
      "source_refs": "..."
    }
  ],
  "stablecoin_exposure": [
    {
      "issuer": "...",
      "asset": "...",
      "network": "...",
      "wallet": "...",
      "amount": "...",
      "freeze_capability_notes": "...",
      "remediation_candidates": "...",
      "review_required": "..."
    }
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/crypto/transaction-timelineCreate transaction timeline

Builds a source-linked transaction timeline for a wallet set, matter, token, chain, or target cluster.

operation: createTransactionTimelinecrypto:timeline

Request

{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "from": "2026-06-01T12:00:00Z",
  "to": "2026-06-01T12:00:00Z"
}

200 Response

{
  "timeline_id": "string",
  "events": [
    {
      "transaction_hash": "string",
      "timestamp": "2026-06-01T12:00:00Z",
      "from_address": "string",
      "to_address": "string",
      "asset": "string",
      "amount": 123.45,
      "notes": "string"
    }
  ]
}
POST/v1/crypto/exchange-hypothesesCreate exchange hypotheses

Creates exchange/VASP off-ramp hypotheses with confidence, evidence, and packet readiness.

operation: createExchangeHypothesescrypto:exchange

Request

{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "min_confidence": 123.45
}

200 Response

{
  "items": [
    {
      "hypothesis_id": "...",
      "exchange": "...",
      "wallet": "...",
      "basis": "...",
      "confidence": "...",
      "packet_readiness": "...",
      "source_refs": "..."
    }
  ]
}
POST/v1/crypto/stablecoin-exposureAnalyze stablecoin exposure

Identifies freeze-capable or issuer-remediation-relevant stablecoin exposure and packet opportunities.

operation: analyzeStablecoinExposurecrypto:stablecoin

Request

{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "assets": [
    "string"
  ]
}

200 Response

{
  "items": [
    {
      "issuer": "...",
      "asset": "...",
      "network": "...",
      "wallet": "...",
      "amount": "...",
      "freeze_capability_notes": "...",
      "remediation_candidates": "...",
      "review_required": "..."
    }
  ]
}
GET/v1/crypto/asset-map/{map_id}Get crypto asset map

Gets crypto asset map and source manifest.

operation: getCryptoAssetMapcrypto:read

Request

No body. Path / query parameters only.

200 Response

{
  "map_id": "string",
  "matter_id": "string",
  "wallets": [
    {
      "wallet_id": "...",
      "address": "...",
      "network": "...",
      "role": "...",
      "confidence": "...",
      "source_refs": "..."
    }
  ],
  "token_exposures": [
    {
      "asset": "string",
      "network": "string",
      "amount": 123.45,
      "usd_value": 123.45,
      "wallet": "string"
    }
  ],
  "exchange_hypotheses": [
    {
      "hypothesis_id": "...",
      "exchange": "...",
      "wallet": "...",
      "basis": "...",
      "confidence": "...",
      "packet_readiness": "...",
      "source_refs": "..."
    }
  ],
  "stablecoin_exposure": [
    {
      "issuer": "...",
      "asset": "...",
      "network": "...",
      "wallet": "...",
      "amount": "...",
      "freeze_capability_notes": "...",
      "remediation_candidates": "...",
      "review_required": "..."
    }
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

Claw

Claw campaigns: focus, expand, pressure, actions, boards.

POST/v1/claw/campaignsCreate Claw campaign

Creates a lawful enforcement campaign around a judgment, target set, exchange/issuer opportunities, sanctions gates, and economics.

operation: createClawCampaignclaw:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "mode": "string",
  "target_set": {}
}

201 Response

{
  "campaign_id": "string",
  "matter_id": "string",
  "judgment_id": "string",
  "mode": "measured",
  "pressure_level": 123,
  "target_set": {},
  "operator_state": {
    "focus_score": 123.45,
    "expand_queue": 123,
    "next_claw_action": "string"
  },
  "gates": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}
GET/v1/claw/campaignsList Claw campaigns

Lists Claw campaigns accessible to caller.

operation: listClawCampaignsclaw:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "campaign_id": "...",
      "matter_id": "...",
      "judgment_id": "...",
      "mode": "...",
      "pressure_level": "...",
      "target_set": "...",
      "operator_state": "...",
      "gates": "..."
    }
  ]
}
GET/v1/claw/campaigns/{campaign_id}Get Claw campaign

Gets campaign configuration, pressure level, action board, gates, and metrics.

operation: getClawCampaignclaw:read

Request

No body. Path / query parameters only.

200 Response

{
  "campaign_id": "string",
  "matter_id": "string",
  "judgment_id": "string",
  "mode": "measured",
  "pressure_level": 123,
  "target_set": {},
  "operator_state": {
    "focus_score": 123.45,
    "expand_queue": 123,
    "next_claw_action": "string"
  },
  "gates": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}
PATCH/v1/claw/campaigns/{campaign_id}Update Claw campaign

Updates campaign mode, target set, operator state, and review flags.

operation: updateClawCampaignclaw:write

Request

{
  "mode": "string",
  "target_set": {},
  "pressure_level": 123
}

200 Response

{
  "campaign_id": "string",
  "matter_id": "string",
  "judgment_id": "string",
  "mode": "measured",
  "pressure_level": 123,
  "target_set": {},
  "operator_state": {
    "focus_score": 123.45,
    "expand_queue": 123,
    "next_claw_action": "string"
  },
  "gates": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}
POST/v1/claw/campaigns/{campaign_id}/focusFocus Claw

Ranks wallets, exchanges, issuers, packets, actions, and operator tasks by actionability.

operation: focusClawclaw:operate

Request

{
  "criteria": [
    "string"
  ],
  "weights": {}
}

200 Response

{
  "campaign_id": "string",
  "ranked_targets": [
    {
      "target_type": "string",
      "target_id": "string",
      "focus_score": 123.45,
      "reason": "string"
    }
  ]
}
POST/v1/claw/campaigns/{campaign_id}/expandExpand Claw

Adds lawful graph expansion leads, attribution leads, legal process targets, and counterparty opportunities.

operation: expandClawclaw:operate

Request

{
  "expansion_types": [
    "string"
  ],
  "max_leads": 123
}

200 Response

{
  "campaign_id": "string",
  "leads": [
    {}
  ]
}
POST/v1/claw/campaigns/{campaign_id}/pressureSet pressure level

Moves campaign across lawful pressure levels: observe, prepare, preserve, discover, freeze/block, seize/turn over, recover/distribute.

operation: setClawPressureclaw:pressure

Request

{
  "pressure_level": 123,
  "reason": "string",
  "counsel_approval_id": "string"
}

200 Response

{
  "campaign_id": "string",
  "matter_id": "string",
  "judgment_id": "string",
  "mode": "measured",
  "pressure_level": 123,
  "target_set": {},
  "operator_state": {
    "focus_score": 123.45,
    "expand_queue": 123,
    "next_claw_action": "string"
  },
  "gates": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}
POST/v1/claw/campaigns/{campaign_id}/actionsCreate Claw action

Creates a campaign action: watch, packet, discovery, exchange, issuer, sanctions, legal process, ledger, or reporting task.

operation: createClawActionclaw:operate

Request

{
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "due_at": "2026-06-01T12:00:00Z",
  "linked_packet_id": "string",
  "review_required": true
}

201 Response

{
  "action_id": "string",
  "matter_id": "string",
  "campaign_id": "string",
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "priority": "string",
  "status": "string"
}
GET/v1/claw/campaigns/{campaign_id}/boardGet Claw board

Gets operator board with focus queue, expand queue, pressure state, legal packets, alerts, and blockers.

operation: getClawBoardclaw:read

Request

No body. Path / query parameters only.

200 Response

{
  "campaign": {
    "campaign_id": "string",
    "matter_id": "string",
    "judgment_id": "string",
    "mode": "measured",
    "pressure_level": 123,
    "target_set": {},
    "operator_state": {
      "focus_score": "...",
      "expand_queue": "...",
      "next_claw_action": "..."
    },
    "gates": [
      "..."
    ]
  },
  "focus_queue": [
    {}
  ],
  "expand_queue": [
    {}
  ],
  "packet_queue": [
    {
      "packet_id": "...",
      "matter_id": "...",
      "type": "...",
      "status": "...",
      "authorized_sender": "...",
      "review_state": "...",
      "source_refs": "...",
      "audit": "..."
    }
  ],
  "alerts": [
    {
      "alert_id": "...",
      "matter_id": "...",
      "type": "...",
      "severity": "...",
      "status": "...",
      "target": "...",
      "reason": "...",
      "created_at": "..."
    }
  ],
  "blockers": [
    {
      "gate": "...",
      "status": "...",
      "reasons": "...",
      "required_actions": "..."
    }
  ]
}

Packets

Legal, exchange, sanctions, and recovery packet generation.

POST/v1/packets/exchange-interceptCreate exchange intercept packet

Prepares a source-linked packet for exchange/VASP preservation, freeze, information request, turnover, or remittance workflows.

operation: createExchangeInterceptPacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

"string"
POST/v1/packets/vasp-legal-processCreate VASP legal process packet

Prepares counsel-reviewed subpoena, records request, preservation, or VASP response packet.

operation: createVaspLegalProcessPacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

"string"
POST/v1/packets/exchange-freezeCreate exchange freeze packet

Prepares exchange freeze/hold request packet subject to court/counsel/authorized-channel review.

operation: createExchangeFreezePacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

"string"
POST/v1/packets/exchange-turnoverCreate exchange turnover packet

Prepares turnover request packet for court/counsel/exchange workflows.

operation: createExchangeTurnoverPacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

"string"
POST/v1/packets/turnover-workflowCreate self-custody turnover workflow

Prepares court-supervised self-custody turnover workflow with proof-of-control evidence and noncompliance tracker.

operation: createTurnoverWorkflowPacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

"string"
POST/v1/packets/sanctions-reviewCreate sanctions review packet

Prepares OFAC/SDN/DPRK/Lazarus/TCO evidence packet and blocked-property review queue.

operation: createSanctionsReviewPacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

{
  "review_id": "string",
  "matter_id": "string",
  "status": "string",
  "blocked_property_analysis": "string",
  "ofac_report_required": true,
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/packets/law-enforcement-referralCreate law enforcement referral packet

Prepares referral packet for authorized counsel/LE workflows. Does not impersonate or use LE-only channels.

operation: createLawEnforcementReferralPacketpackets:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

"string"
GET/v1/packets/{packet_id}Get packet

Gets packet, source manifest, review state, authorized sender, and export state.

operation: getPacketpackets:read

Request

No body. Path / query parameters only.

200 Response

{
  "packet_id": "string",
  "matter_id": "string",
  "type": "string",
  "status": "string",
  "authorized_sender": "string",
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  },
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "audit": {
    "request_id": "string",
    "actor_id": "string",
    "organization_id": "string",
    "matter_id": "string",
    "timestamp": "2026-06-01T12:00:00Z"
  }
}
POST/v1/packets/{packet_id}/exportExport packet

Exports packet to PDF/ZIP/JSON bundle and records export audit event.

operation: exportPacketpackets:export

Request

{
  "format": "pdf",
  "redaction_profile": "string"
}

201 Response

{
  "export_id": "string",
  "object_type": "string",
  "object_id": "string",
  "format": "pdf",
  "status": "string",
  "download_url": "string",
  "audit_id": "string"
}

Issuer Remediation

Stablecoin freeze, burn/reissue, destination-wallet workflows.

POST/v1/issuer-remediation/freeze-packetCreate issuer freeze packet

Prepares issuer-controlled freeze/preserve packet for stablecoin issuer workflows.

operation: createIssuerFreezePacketissuer:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

{
  "remediation_id": "string",
  "matter_id": "string",
  "issuer": "string",
  "asset": "string",
  "network": "string",
  "action_type": "freeze_only",
  "status": "string",
  "destination_wallet_certificate_id": "string"
}
POST/v1/issuer-remediation/burn-reissue-packetCreate burn/reissue packet

Prepares order-backed burn/reissue workflow packet. Kinetic does not burn, mint, freeze, transfer, or redeem tokens.

operation: createBurnReissuePacketissuer:write

Request

{
  "matter_id": "string",
  "judgment_id": "string",
  "wallets": [
    "string"
  ],
  "packet_type": "string",
  "authorized_sender": "string",
  "legal_authority_id": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ],
  "notes": "string"
}

201 Response

{
  "remediation_id": "string",
  "matter_id": "string",
  "issuer": "string",
  "asset": "string",
  "network": "string",
  "action_type": "freeze_only",
  "status": "string",
  "destination_wallet_certificate_id": "string"
}
POST/v1/issuer-remediation/destination-wallet-certificateCreate destination wallet certificate

Creates custody, purpose, chain, signers, sanctions screen, and approval certificate for remittance/reissue destination wallet.

operation: createDestinationWalletCertificateissuer:write

Request

{
  "matter_id": "string",
  "wallet_address": "string",
  "network": "string",
  "purpose": "string",
  "owner": "string",
  "custodian": "string",
  "signer_model": "string",
  "allowed_assets": [
    "string"
  ]
}

201 Response

{
  "destination_wallet_id": "string",
  "wallet_address": "string",
  "network": "string",
  "purpose": "string",
  "owner": "string",
  "custodian": "string",
  "sanctions_screen_complete": true,
  "approval_status": "string"
}
GET/v1/issuer-remediation/{remediation_id}Get issuer remediation

Gets issuer remediation status: freeze, burn, reissue, remit, reject, close.

operation: getIssuerRemediationissuer:read

Request

No body. Path / query parameters only.

200 Response

{
  "remediation_id": "string",
  "matter_id": "string",
  "issuer": "string",
  "asset": "string",
  "network": "string",
  "action_type": "freeze_only",
  "status": "string",
  "destination_wallet_certificate_id": "string"
}

Sanctions

OFAC/SDN/DPRK/Lazarus/TCO screening and blocked-property workflows.

POST/v1/sanctions/screenRun sanctions screen

Screens wallets, entities, addresses, exchanges, and counterparties for SDN/DPRK/Lazarus/TCO/sanctions risk.

operation: runSanctionsScreensanctions:screen

Request

{
  "matter_id": "string",
  "wallets": [
    "string"
  ],
  "entities": [
    "string"
  ],
  "counterparties": [
    "string"
  ]
}

200 Response

{
  "review_id": "string",
  "status": "clear",
  "matches": [
    {}
  ],
  "ordinary_collection_paused": true,
  "required_actions": [
    "string"
  ]
}
POST/v1/sanctions/review-packetCreate sanctions review packet

Creates sanctions review packet with source manifest, wallet/entity matches, blocked-property issue, and counsel review queue.

operation: createSanctionsReviewsanctions:write

Request

{
  "matter_id": "string",
  "screen_id": "string",
  "notes": "string"
}

201 Response

{
  "review_id": "string",
  "matter_id": "string",
  "status": "string",
  "blocked_property_analysis": "string",
  "ofac_report_required": true,
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/sanctions/ofac-report-workflowCreate OFAC report workflow

Creates OFAC reporting/licensing/remittance workflow tracker when sanctions counsel flags potential blocked property.

operation: createOfacReportWorkflowsanctions:write

Request

{
  "matter_id": "string",
  "sanctions_review_id": "string",
  "report_type": "string",
  "counsel_owner": "string"
}

201 Response

{
  "ofac_report_id": "string",
  "matter_id": "string",
  "status": "string",
  "submitted_by": "string",
  "submitted_at": "2026-06-01T12:00:00Z"
}
GET/v1/sanctions/{review_id}Get sanctions review

Gets sanctions review state, matches, required gates, and packet status.

operation: getSanctionsReviewsanctions:read

Request

No body. Path / query parameters only.

200 Response

{
  "review_id": "string",
  "matter_id": "string",
  "status": "string",
  "blocked_property_analysis": "string",
  "ofac_report_required": true,
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

Monitoring

Wallet watchlists, alert rules, movement alerts.

POST/v1/watchlistsCreate watchlist

Creates matter-tied wallet/token/exchange watchlist.

operation: createWatchlistmonitoring:write

Request

{
  "matter_id": "string",
  "name": "string",
  "chains": [
    "string"
  ],
  "thresholds": {}
}

201 Response

{
  "watchlist_id": "string",
  "matter_id": "string",
  "name": "string",
  "addresses": [
    "string"
  ],
  "status": "string",
  "alert_rules": [
    {}
  ]
}
GET/v1/watchlistsList watchlists

Lists matter-tied watchlists.

operation: listWatchlistsmonitoring:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "watchlist_id": "...",
      "matter_id": "...",
      "name": "...",
      "addresses": "...",
      "status": "...",
      "alert_rules": "..."
    }
  ]
}
GET/v1/watchlists/{watchlist_id}Get watchlist

Gets watchlist and alert rules.

operation: getWatchlistmonitoring:read

Request

No body. Path / query parameters only.

200 Response

{
  "watchlist_id": "string",
  "matter_id": "string",
  "name": "string",
  "addresses": [
    "string"
  ],
  "status": "string",
  "alert_rules": [
    {}
  ]
}
POST/v1/watchlists/{watchlist_id}/addressesAdd watchlist addresses

Adds matter-linked addresses to monitoring watchlist.

operation: addWatchlistAddressesmonitoring:write

Request

{
  "addresses": [
    "string"
  ],
  "reason": "string",
  "source_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}

200 Response

{
  "watchlist_id": "string",
  "matter_id": "string",
  "name": "string",
  "addresses": [
    "string"
  ],
  "status": "string",
  "alert_rules": [
    {}
  ]
}
GET/v1/alertsList alerts

Lists wallet movement, exchange proximity, stablecoin exposure, sanctions, deadline, and compliance alerts.

operation: listAlertsmonitoring:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "alert_id": "...",
      "matter_id": "...",
      "type": "...",
      "severity": "...",
      "status": "...",
      "target": "...",
      "reason": "...",
      "created_at": "..."
    }
  ]
}
POST/v1/alerts/{alert_id}/triageTriage alert

Marks alert actionability, creates linked actions/packets, or closes false positive.

operation: triageAlertmonitoring:write

Request

{
  "status": "actionable",
  "notes": "string",
  "create_action": true,
  "create_packet_type": "string"
}

200 Response

{
  "alert_id": "string",
  "matter_id": "string",
  "type": "string",
  "severity": "string",
  "status": "string",
  "target": "string",
  "reason": "string",
  "created_at": "2026-06-01T12:00:00Z"
}

Actions

Operator action queue and task state.

POST/v1/actionsCreate action

Creates operator/counsel/vendor/review action.

operation: createActionactions:write

Request

{
  "matter_id": "string",
  "type": "string",
  "title": "string",
  "campaign_id": "string",
  "owner_id": "string",
  "priority": "string",
  "due_at": "2026-06-01T12:00:00Z",
  "linked_packet_id": "string"
}

201 Response

{
  "action_id": "string",
  "matter_id": "string",
  "campaign_id": "string",
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "priority": "string",
  "status": "string"
}
GET/v1/actionsList actions

Lists actions filtered by owner, matter, campaign, status, and due date.

operation: listActionsactions:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "action_id": "...",
      "matter_id": "...",
      "campaign_id": "...",
      "type": "...",
      "title": "...",
      "owner_id": "...",
      "priority": "...",
      "status": "..."
    }
  ]
}
GET/v1/actions/{action_id}Get action

Gets action details, requirements, status, and linked packet/evidence.

operation: getActionactions:read

Request

No body. Path / query parameters only.

200 Response

{
  "action_id": "string",
  "matter_id": "string",
  "campaign_id": "string",
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "priority": "string",
  "status": "string"
}
PATCH/v1/actions/{action_id}Update action

Updates status, owner, priority, due date, and evidence requirements.

operation: updateActionactions:write

Request

{
  "title": "string",
  "status": "string",
  "priority": "string",
  "owner_id": "string",
  "due_at": "2026-06-01T12:00:00Z"
}

200 Response

{
  "action_id": "string",
  "matter_id": "string",
  "campaign_id": "string",
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "priority": "string",
  "status": "string"
}
POST/v1/actions/{action_id}/assignAssign action

Assigns action to operator, counsel, analyst, vendor, or reviewer.

operation: assignActionactions:assign

Request

{
  "owner_id": "string",
  "notes": "string"
}

200 Response

{
  "action_id": "string",
  "matter_id": "string",
  "campaign_id": "string",
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "priority": "string",
  "status": "string"
}
POST/v1/actions/{action_id}/completeComplete action

Completes action with completion evidence and audit event.

operation: completeActionactions:complete

Request

{
  "completion_notes": "string",
  "evidence_refs": [
    {
      "source_id": "...",
      "source_type": "...",
      "title": "...",
      "uri": "...",
      "hash": "...",
      "chain_of_custody_id": "...",
      "admissibility_notes": "..."
    }
  ]
}

200 Response

{
  "action_id": "string",
  "matter_id": "string",
  "campaign_id": "string",
  "type": "string",
  "title": "string",
  "owner_id": "string",
  "priority": "string",
  "status": "string"
}
GET/v1/actions/matters/{matter_id}List matter actions

Lists actions for a matter.

operation: listMatterActionsactions:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "action_id": "...",
      "matter_id": "...",
      "campaign_id": "...",
      "type": "...",
      "title": "...",
      "owner_id": "...",
      "priority": "...",
      "status": "..."
    }
  ]
}

Ledger

Recovery events, remittance events, waterfalI calculations.

POST/v1/ledger/recovery-eventsCreate recovery event

Records frozen, blocked, seized, turned over, remitted, settled, or recovered value.

operation: createRecoveryEventledger:write

Request

{
  "matter_id": "string",
  "event_type": "frozen",
  "asset": "string",
  "gross_amount": 123.45,
  "network": "string",
  "usd_value": 123.45,
  "source": "string",
  "packet_id": "string"
}

201 Response

{
  "recovery_event_id": "string",
  "matter_id": "string",
  "event_type": "string",
  "asset": "string",
  "gross_amount": 123.45,
  "status": "string",
  "audit": {
    "request_id": "string",
    "actor_id": "string",
    "organization_id": "string",
    "matter_id": "string",
    "timestamp": "2026-06-01T12:00:00Z"
  }
}
POST/v1/ledger/remittance-eventsCreate remittance event

Records remittance to receiver, court registry, custodian, claimant, or waterfall account.

operation: createRemittanceEventledger:write

Request

{
  "matter_id": "string",
  "destination": "string",
  "amount": 123.45,
  "asset": "string",
  "waterfall_id": "string",
  "source_recovery_event_id": "string"
}

201 Response

{
  "remittance_event_id": "string",
  "matter_id": "string",
  "destination": "string",
  "asset": "string",
  "amount": 123.45,
  "status": "string",
  "audit": {
    "request_id": "string",
    "actor_id": "string",
    "organization_id": "string",
    "matter_id": "string",
    "timestamp": "2026-06-01T12:00:00Z"
  }
}
GET/v1/ledger/matters/{matter_id}Get matter ledger

Gets recovery/remittance/collection ledger for a matter.

operation: getMatterLedgerledger:read

Request

No body. Path / query parameters only.

200 Response

{
  "matter_id": "string",
  "recovery_events": [
    {
      "recovery_event_id": "...",
      "matter_id": "...",
      "event_type": "...",
      "asset": "...",
      "gross_amount": "...",
      "status": "...",
      "audit": "..."
    }
  ],
  "remittance_events": [
    {
      "remittance_event_id": "...",
      "matter_id": "...",
      "destination": "...",
      "asset": "...",
      "amount": "...",
      "status": "...",
      "audit": "..."
    }
  ],
  "total_recovered": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  }
}
POST/v1/waterfall/calculateCalculate waterfall

Calculates costs, counsel fees, Meridian economics, claimant distributions, holdbacks, and remittance constraints.

operation: calculateWaterfallwaterfall:calculate

Request

{
  "matter_id": "string",
  "recovery_event_ids": [
    "string"
  ],
  "costs": {},
  "meridian_percentage": 123.45
}

200 Response

{
  "waterfall_id": "string",
  "matter_id": "string",
  "gross_recovered": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "costs": {},
  "meridian_economics": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "claimant_distributions": [
    {
      "claimant_id": "string",
      "amount": 123.45
    }
  ],
  "holdbacks": [
    {}
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
GET/v1/waterfall/matters/{matter_id}Get matter waterfall

Gets current matter economics and distribution waterfall.

operation: getMatterWaterfallwaterfall:read

Request

No body. Path / query parameters only.

200 Response

{
  "waterfall_id": "string",
  "matter_id": "string",
  "gross_recovered": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "costs": {},
  "meridian_economics": {
    "amount": 123.45,
    "currency": "string",
    "valuation_time": "2026-06-01T12:00:00Z"
  },
  "claimant_distributions": [
    {
      "claimant_id": "string",
      "amount": 123.45
    }
  ],
  "holdbacks": [
    {}
  ],
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}

Reports

Executive, counsel, claimant, and operator reports.

POST/v1/reports/campaign-briefGenerate campaign brief

Generates executive/counsel/operator campaign brief with board metrics, risks, next actions, and source-linked attachments.

operation: generateCampaignBriefreports:write

Request

{
  "matter_id": "string",
  "audience": "internal",
  "include_sections": [
    "string"
  ]
}

201 Response

{
  "report_id": "string",
  "matter_id": "string",
  "type": "string",
  "status": "string",
  "content_uri": "string",
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/reports/claimant-updateGenerate claimant update

Generates claimant-facing update with sanitized status, recovery events, and next milestones.

operation: generateClaimantUpdatereports:write

Request

{
  "matter_id": "string",
  "claimant_id": "string",
  "redaction_profile": "string"
}

201 Response

{
  "report_id": "string",
  "matter_id": "string",
  "type": "string",
  "status": "string",
  "content_uri": "string",
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
GET/v1/reports/{report_id}Get report

Gets report metadata and content pointers.

operation: getReportreports:read

Request

No body. Path / query parameters only.

200 Response

{
  "report_id": "string",
  "matter_id": "string",
  "type": "string",
  "status": "string",
  "content_uri": "string",
  "review_state": {
    "review_required": true,
    "review_status": "not_required",
    "review_owner": "string",
    "review_notes": "string"
  }
}
POST/v1/reports/{report_id}/exportExport report

Exports report to PDF/ZIP/JSON and writes audit event.

operation: exportReportreports:export

Request

{
  "format": "pdf",
  "redaction_profile": "string"
}

201 Response

{
  "export_id": "string",
  "object_type": "string",
  "object_id": "string",
  "format": "pdf",
  "status": "string",
  "download_url": "string",
  "audit_id": "string"
}

Audit

Immutable event history and export trails.

GET/v1/audit/matters/{matter_id}Get matter audit

Gets audit events for a matter with filters by object, actor, event type, export state, and time range.

operation: getMatterAuditaudit:read

Request

No body. Path / query parameters only.

200 Response

{
  "items": [
    {
      "event_id": "...",
      "matter_id": "...",
      "event_type": "...",
      "actor_id": "...",
      "object_type": "...",
      "object_id": "...",
      "timestamp": "...",
      "details": "..."
    }
  ]
}
POST/v1/audit/eventsCreate audit event

Creates a custom audit event for external actions or manual events.

operation: createAuditEventaudit:write

Request

{
  "matter_id": "string",
  "event_type": "string",
  "object_type": "string",
  "object_id": "string",
  "details": {}
}

201 Response

{
  "event_id": "string",
  "matter_id": "string",
  "event_type": "string",
  "actor_id": "string",
  "object_type": "string",
  "object_id": "string",
  "timestamp": "2026-06-01T12:00:00Z",
  "details": {}
}
GET/v1/audit/events/{event_id}Get audit event

Gets a single audit event.

operation: getAuditEventaudit:read

Request

No body. Path / query parameters only.

200 Response

{
  "event_id": "string",
  "matter_id": "string",
  "event_type": "string",
  "actor_id": "string",
  "object_type": "string",
  "object_id": "string",
  "timestamp": "2026-06-01T12:00:00Z",
  "details": {}
}

Webhooks

32 events keep your systems in sync as a recovery moves. Subscribe per organization and verify the signature on every delivery. Representative events:

judgment.validated          attribution.claim.scored
matter.authority.granted    packet.exchange_freeze.exported
debtor.graph.updated        sanctions.screen.hit
campaign.action.assigned    ledger.recovery_event.recorded
alert.movement.detected     waterfall.calculated

Errors

Standard HTTP status codes. Error bodies carry a stable code, a human message, and the field path where relevant.

{
  "error": {
    "code": "authority_required",
    "message": "This operation requires an active matter with established authority.",
    "status": 403
  }
}

Common codes: invalid_request · unauthenticated · insufficient_scope · authority_required · sanctions_gate · stay_in_effect · rate_limited.

© 2026 Kinetic Systems · Financial fraud recovery · kineticsystems.uk