Send a check
POST /api/v1/registry/check needs a key with the registry:check scope.
sha256 is the lowercase hexadecimal digest from Hash an email. Send more than
one identifier when the user gave you more than one email, for example a login email and a recovery
email. The registry ignores repeated identifiers.
Read the result
Each signal combines every member’s report in that category. See
What a check returns for the fields. Your own reports
count too: if you reported the user, your check matches your report.
Act on a match
A match is information for your own decision. Use the signals to choose an action:
You can use
reporter_count and the dates to weigh a signal. For example, a recent report from
several members is stronger than one old report.
This example implements the check and the decision for a sign-up handler:
What to tell the user
- Do not tell the user that they are in the registry, which category matched, or how many platforms reported them. Use your normal message for a refused or held account.
- If you refuse or hold an account, give the user your usual route to contest the decision. If the user wants to know what the registry holds about them, refer them to Disputes.
- You do not know which member reported the user, so you cannot pass that on.
When the registry cannot answer
The registry is one signal among your own controls. If a check fails, by a timeout, a5xx or a
429, continue the sign-up as if there was no match, and check the user again later with context
periodic. Do not retry a failed check in a tight loop: it counts against your quota and your rate
limit. See Errors.
Check at login and periodically
login: Check when an existing user logs in, if you want to find users that another member reported after they signed up with you.periodic: Re-check existing users on a schedule, for example accounts that signed up while the registry was unreachable.
Daily check quota
Your membership has a daily check quota, sized to your sign-up volume. Each check request counts once, whatever number of identifiers it carries. The count resets at 00:00 UTC. A check over the quota returns429 RATE_LIMITED with the message
Daily Shared Registry check quota of <quota> reached, and does no lookup. If your volume grows,
contact support@omnifence.ai to raise the quota.
Registry keys also follow your account’s rate limits: by default, 60
requests per minute and 6 per second. A 429 from the rate limit carries a retry-after header; the
quota 429 does not.