Skip to main content
POST
/
v1
/
compliance
/
screen
curl -X POST https://api.engram.training/v1/compliance/screen \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "addresses": [
      {"address": "12QtD5BFwRsdNsAZY76UVE1xyCGNTojH9h", "chain": "bitcoin"}
    ]
  }'
{
  "results": [
    {
      "address": "12QtD5BFwRsdNsAZY76UVE1xyCGNTojH9h",
      "chain": "bitcoin",
      "status": "sanctioned",
      "matches": [
        {
          "entityId": "ofac-identity-17012",
          "entityName": null,
          "source": "ofac_sdn",
          "category": "sanctions",
          "severity": "critical"
        }
      ],
      "screenedAt": "2026-04-05T17:30:47.770Z"
    }
  ],
  "dataSources": ["ofac_sdn", "opensanctions", "community"],
  "proof": {
    "screeningId": "d3b1649c-1ede-4bc7-adc3-a8fadf6b254c",
    "timestamp": "2026-04-05T17:30:47.758Z",
    "resultsHash": "0c17939f1da5e18806deae3444851c9f6f286d3b7219421fdc8bd29a084bd011",
    "dataSources": ["ofac_sdn", "opensanctions", "community"],
    "dataSnapshots": {
      "ofac_sdn": {
        "blobName": "compliance/ofac_sdn/0cf0c1e8-....json",
        "shelbyUrl": "https://api.testnet.shelby.xyz/..."
      }
    }
  },
  "rateLimit": {
    "freeLimit": 10,
    "freeRemaining": 9,
    "freeReset": "2026-04-06T10:00:00.000Z",
    "billableAddresses": 0,
    "creditCharged": 0
  }
}

Authentication

This endpoint accepts both authentication methods:
  • API Key: Authorization: Bearer sk_live_... (for agents and programmatic access)
  • Developer JWT: Authorization: Bearer <jwt> (for dashboard and OAuth sessions)
Billing is resolved to the developer account in both cases.

Request

addresses
array
required
Array of addresses to screen. Maximum 100 per request.
includeCommunity
boolean
default:"true"
Include community-submitted reports in the screening results.
All available data sources (OFAC, OpenSanctions, community reports) are used automatically. No opt-in toggles needed.

Response

results
array
proof
object
Verifiable screening proof uploaded to Shelby.
rateLimit
object
Freemium rate limit info.

Rate Limiting

First 10 addresses per hour per developer are free. After that, each address costs 1 credit. Response headers include:
X-RateLimit-Free-Limit: 10
X-RateLimit-Free-Remaining: 7
X-RateLimit-Free-Reset: 2026-04-06T10:00:00.000Z
X-RateLimit-Billable: 0
curl -X POST https://api.engram.training/v1/compliance/screen \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "addresses": [
      {"address": "12QtD5BFwRsdNsAZY76UVE1xyCGNTojH9h", "chain": "bitcoin"}
    ]
  }'
{
  "results": [
    {
      "address": "12QtD5BFwRsdNsAZY76UVE1xyCGNTojH9h",
      "chain": "bitcoin",
      "status": "sanctioned",
      "matches": [
        {
          "entityId": "ofac-identity-17012",
          "entityName": null,
          "source": "ofac_sdn",
          "category": "sanctions",
          "severity": "critical"
        }
      ],
      "screenedAt": "2026-04-05T17:30:47.770Z"
    }
  ],
  "dataSources": ["ofac_sdn", "opensanctions", "community"],
  "proof": {
    "screeningId": "d3b1649c-1ede-4bc7-adc3-a8fadf6b254c",
    "timestamp": "2026-04-05T17:30:47.758Z",
    "resultsHash": "0c17939f1da5e18806deae3444851c9f6f286d3b7219421fdc8bd29a084bd011",
    "dataSources": ["ofac_sdn", "opensanctions", "community"],
    "dataSnapshots": {
      "ofac_sdn": {
        "blobName": "compliance/ofac_sdn/0cf0c1e8-....json",
        "shelbyUrl": "https://api.testnet.shelby.xyz/..."
      }
    }
  },
  "rateLimit": {
    "freeLimit": 10,
    "freeRemaining": 9,
    "freeReset": "2026-04-06T10:00:00.000Z",
    "billableAddresses": 0,
    "creditCharged": 0
  }
}