screen

Should you engage? A fast, deterministic engage-or-not answer

No key: free tier (rate-limited per IP). With a key: 1 check. No AI in the decision. Pass any of domain, url, email, phone or company_name; the context; an amount; a policy. Returns engage (true/false), risk, confidence, subject_type, reasons with sources, mitigations, checks, a read (headline, engage | verify_first | do_not_engage, failed checks, lookup links: render the read for humans), the matched Jid file and a signed receipt. Hard rules (engage=false under every policy): confirmed exclusion, possible sanctions or export-list name match (manual review, never a finding), registry hard failure, phishing or malware listing, disposable e-mail, domain with no MX and no website, domain under 30 days old with an amount of $1,000 or more, and (strict only) an affiliation mismatch. Individuals get technical signals only. engage is advisory. Rules version 2026-10-05.2: https://jid.com/screen-rules

post/v1/screen

Request

  • Base URL: https://jid.com
  • URL: https://jid.com/v1/screen
  • Auth: one of:
    • none
    • HTTP bearer

Request body

domainstring
urlstring

Only the host is used.

emailstring
phonestring

Ideally +E.164.

company_namestring
namestring

A person's name: accepted, never looked up.

context'lead' | 'inbound_email' | 'partnership' | 'vendor' | 'purchase' | 'marketplace_seller' | 'agent_action'

Default lead, or purchase when only a url or domain is given.

policy'strict' | 'balanced' | 'permissive'
amountnumber

USD at stake

countrystring

Default country for a phone number without +

retainboolean

Keep the receipt 13 months instead of 30 days

ip_countrystring

Location check: country of the request (e.g. x-vercel-ip-country)

ip_regionstring

Location check: ISO 3166-2 region of the request

ip_citystring

Accepted, not compared, not stored

ip_asninteger

Location check: ASN of the request's network (hosting/VPN recognition)

ipstring

Optional raw IP: used in memory for the Tor and ASN lookups only, never stored or returned

browser_timezonestring

Location check: IANA time zone from the browser

stated_countrystring

Location check: the country the counterparty stated

signalstring

Jid Signals token from the visitor's browser (the jid_signal form field set by https://jid.com/s/1.js; jid_signal is also accepted). When it verifies, its country, region, city, network type and time zone replace the ip_* fields and browser_timezone. Expired, altered or other-site tokens are skipped, never negative. See /signals.

sitestring

The submitting website's domain. Binds the signal token loosely: a token issued to another site is skipped.

Response

Screen result

engageboolean
risk'low' | 'medium' | 'high' | 'unknown'
confidencenumber
subject_type'business' | 'individual_or_unverified' | 'website'
summarystring
hard_rulesstring[]
risk_pointsnumber
check_runsobject

Which live lookups ran (this was checks before 2026-10-05).

receipt_idstring
receipt_urlstring
rules_versionstring
latency_msnumber
checks_usednumber

Example response

{
  "read": {
    "headline": "Passed all 7 checks Jid could run. Recommendation: engage."
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.