Check Catalog

Alpha

Discover available check types as data. Render what's live, filter by availability, and feed types straight into screening.

Base path: /v1

Purpose

The check catalog is the self-describing list of what Customer Intelligence can tell you. Each entry's `type` is exactly what you pass to `POST /entities/{id}/check`. No hard-coded lists in your client.

Usage

Fetch the catalog at integration time or on a schedule to render available checks in your dashboard. Filter to `availability: live` for production UI. Use `GET /checks/{type}` for detail on a single check including `reason_codes` and required identifiers.

Unlocking This Service

Requires `checks:read` scope. The check catalog endpoint is in alpha. Shape is stable; availability flags update as rollout checks go live.

Common Workflow

  1. 1`GET /checks`: list the curated catalog with availability and required identifiers.
  2. 2Filter client-side to `live` checks for your onboarding UI.
  3. 3Pass any `type` to screening: `{"types": ["velocity", "sanctions"]}`.
  4. 4`GET /checks/{type}`: detail for one check type.

Integration Notes

  • Catalog is a curated subset of the full check registry, led by the Shared Fraud Map (`velocity`).
  • `availability` values: `live` · `in_rollout`.
  • New checks appear here automatically when enabled. No client update needed to discover them.

API Reference

GET/v1/checks

List Check Types

Browse the catalog of available checks.

Returns a paginated list of check definitions. Each item includes `type`, human-readable name, summary, required identifiers (`needs`), reason codes, and availability.

Examples

Sample input
{}
Sample output
{
  "object": "list",
  "data": [
    {
      "object": "check",
      "type": "velocity",
      "name": "Shared Fraud Map",
      "summary": "How many other accounts across the shared fraud network share this user's device, wallet, or email.",
      "needs": [
        "device_id",
        "wallet_address",
        "email"
      ],
      "reason_codes": [
        "VELOCITY_DEVICE_REUSE",
        "VELOCITY_WALLET_REUSE",
        "VELOCITY_EMAIL_REUSE",
        "VELOCITY_LINKED_TO_FLAGGED"
      ],
      "availability": "live"
    },
    {
      "object": "check",
      "type": "sanctions",
      "name": "Sanctions & Watchlist Screening",
      "summary": "Is this person on a sanctions or watchlist?",
      "needs": [
        "display_name"
      ],
      "reason_codes": [
        "SANCTIONS_MATCH",
        "SANCTIONS_CLEAR"
      ],
      "availability": "live"
    },
    {
      "object": "check",
      "type": "phone",
      "name": "Phone Intelligence",
      "summary": "Validity, region, and line type. Flags VoIP and unreachable numbers.",
      "needs": [
        "phone"
      ],
      "reason_codes": [
        "PHONE_VOIP",
        "PHONE_INVALID",
        "PHONE_OK"
      ],
      "availability": "live"
    },
    {
      "object": "check",
      "type": "device",
      "name": "Device Intelligence",
      "summary": "Emulator and spoofing detection.",
      "needs": [
        "device_id"
      ],
      "reason_codes": [
        "DEVICE_EMULATOR",
        "DEVICE_SPOOFED",
        "DEVICE_FIRST_SEEN"
      ],
      "availability": "in_rollout"
    }
  ]
}
LLM markdown preview
### List Check Types

Browse the catalog of available checks.

Use `GET /v1/checks` to browse the catalog of available checks.

Returns a paginated list of check definitions. Each item includes `type`, human-readable name, summary, required identifiers (`needs`), reason codes, and availability.

Example request:

```json
{}
```

Example response:

```json
{
  "object": "list",
  "data": [
    {
      "object": "check",
      "type": "velocity",
      "name": "Shared Fraud Map",
      "summary": "How many other accounts across the shared fraud network share this user's device, wallet, or email.",
      "needs": [
        "device_id",
        "wallet_address",
        "email"
      ],
      "reason_codes": [
        "VELOCITY_DEVICE_REUSE",
        "VELOCITY_WALLET_REUSE",
        "VELOCITY_EMAIL_REUSE",
        "VELOCITY_LINKED_TO_FLAGGED"
      ],
      "availability": "live"
    },
    {
      "object": "check",
      "type": "sanctions",
      "name": "Sanctions & Watchlist Screening",
      "summary": "Is this person on a sanctions or watchlist?",
      "needs": [
        "display_name"
      ],
      "reason_codes": [
        "SANCTIONS_MATCH",
        "SANCTIONS_CLEAR"
      ],
      "availability": "live"
    },
    {
      "object": "check",
      "type": "phone",
      "name": "Phone Intelligence",
      "summary": "Validity, region, and line type. Flags VoIP and unreachable numbers.",
      "needs": [
        "phone"
      ],
      "reason_codes": [
        "PHONE_VOIP",
        "PHONE_INVALID",
        "PHONE_OK"
      ],
      "availability": "live"
    },
    {
      "object": "check",
      "type": "device",
      "name": "Device Intelligence",
      "summary": "Emulator and spoofing detection.",
      "needs": [
        "device_id"
      ],
      "reason_codes": [
        "DEVICE_EMULATOR",
        "DEVICE_SPOOFED",
        "DEVICE_FIRST_SEEN"
      ],
      "availability": "in_rollout"
    }
  ]
}
```
GET/v1/checks/{type}

Get Check Type

Fetch a single check type by name.

Returns full detail for one check type, with the same fields as list items. Use the `type` path segment (e.g. `velocity`, `sanctions`).

Parameters

NameTypeRequiredDescription
typestringRequiredCheck type identifier.e.g. velocity

Examples

Sample input
{
  "path": {
    "type": "velocity"
  }
}
Sample output
{
  "object": "check",
  "type": "velocity",
  "name": "Shared Fraud Map",
  "summary": "How many other accounts across the shared fraud network share this user's device, wallet, or email. Cross-program reuse no single-user check can see.",
  "needs": [
    "device_id",
    "wallet_address",
    "email"
  ],
  "reason_codes": [
    "VELOCITY_DEVICE_REUSE",
    "VELOCITY_WALLET_REUSE",
    "VELOCITY_EMAIL_REUSE",
    "VELOCITY_LINKED_TO_FLAGGED"
  ],
  "availability": "live"
}
LLM markdown preview
### Get Check Type

Fetch a single check type by name.

Use `GET /v1/checks/{type}` to fetch a single check type by name.

Returns full detail for one check type, with the same fields as list items. Use the `type` path segment (e.g. `velocity`, `sanctions`).

Required parameters:
- `type`: string (example: `"velocity"`). Check type identifier.

Example request:

```json
{
  "path": {
    "type": "velocity"
  }
}
```

Example response:

```json
{
  "object": "check",
  "type": "velocity",
  "name": "Shared Fraud Map",
  "summary": "How many other accounts across the shared fraud network share this user's device, wallet, or email. Cross-program reuse no single-user check can see.",
  "needs": [
    "device_id",
    "wallet_address",
    "email"
  ],
  "reason_codes": [
    "VELOCITY_DEVICE_REUSE",
    "VELOCITY_WALLET_REUSE",
    "VELOCITY_EMAIL_REUSE",
    "VELOCITY_LINKED_TO_FLAGGED"
  ],
  "availability": "live"
}
```