Check identifiers

Check up to five hashed identifiers for one user (for example a primary and a recovery email) against the Shared Registry. Returns one signal per category that other members reported, never who reported it. Each call counts against your daily check quota.

POSThttps://api.omnifence.ai/api/v1/registry/check

Check up to five hashed emails for one user against the Shared Registry. Hash each email with the published rules first. To act on the result, see Check a sign-up.

Request#

Headers#

Name Type Required Description
Authorization string Yes Your API key as a Bearer token: Bearer YOUR_API_KEY.

Body (application/json)#

Field Type Required Description
identifiers array of object Yes
identifiers[].type string Yes One of email.
identifiers[].sha256 string Yes Lowercase hex SHA-256 of the normalised email. Normalise it with the published spec first. See the Shared Registry guide.
context string Yes Why you are checking: at account creation, at login, or as a periodic re-check of existing accounts. One of signup, login, periodic.
Example bodyJSON
{
  "identifiers": [
    {
      "type": "email",
      "sha256": "string"
    }
  ],
  "context": "signup"
}

Responses#

200 OK#

Field Type Always present Description
match boolean Yes
signals array of object Yes
signals[].category string Yes One of payment_fraud, prohibited_content, ban_evasion.
signals[].reporter_count integer Yes
signals[].first_reported_at string (date-time) Yes
signals[].last_reported_at string (date-time) Yes
signals[].automated_refusal_permitted boolean Yes False means you must review the match, or give the user a way to contest it, before you refuse them.
normalisation_version integer Yes
Example responseJSON
{
  "match": false,
  "signals": [
    {
      "category": "payment_fraud",
      "reporter_count": 0,
      "first_reported_at": "2026-05-19T12:00:00.000Z",
      "last_reported_at": "2026-05-19T12:00:00.000Z",
      "automated_refusal_permitted": false
    }
  ],
  "normalisation_version": 0
}