checks and explanation are only present when you ask for them.
Optional sections are omitted from the response when not requested — they are never
null in a single analysis response.
metadata.usage and metadata.plan reflect your own account. For exact field definitions, see the API reference.
email
The email section reports how the address was normalized and structurally interpreted:
Structural validity is not mailbox verification. Signup Risk API does not
confirm mailbox existence, SMTP deliverability, or catch-all behavior — it
analyzes the address, its domain, and the context you supply.
decision
The decision section is the part your integration acts on:
The band is derived directly from the score, and the action from the band:
action is a recommendation. Signup Risk API never allows or blocks anyone itself — your application remains responsible for enforcement and should apply its own policy on top of the score. The score estimates signup risk given the available evidence; it is not a judgment that a person is trusted or that fraud has been proven.
decision.assessment
The assessment describes the quality of the evidence behind the decision:
The distinction matters: the risk score estimates signup risk; the assessment tells you how strongly the available evidence supports that estimate. A high score with low confidence deserves different handling than a high score with high confidence.
confidence is a qualitative stability rating, not a probability. When evidence was unavailable — for example a temporary DNS failure, a missing name, or an IP not supplied — the assessment reflects it:
evidence_coveragedrops topartialorlimiteduncertaintyrises- a code such as
domain_intelligence_unavailable,name_not_supplied, orip_not_suppliedappears inlimitations
checks
Request per-check detail with options.include_checks:
ip_reputation reports available: false) rather than removing it.
Most checks share a common shape:
Each check adds its own fields on top of this common shape. For example,
disposable_email adds is_disposable; ip_reputation adds network classification and an available flag. When evidence for a check could not be evaluated, its result is unknown, confidence is unknown, and its risk_contribution is 0 — unavailable evidence is never treated as either a pass or a failure.
The illustrative snippet below shows the shape of checks.disposable_email for a clean address:
explanation
Request a human-readable decision narrative with options.include_explanation:
checks— structured, machine-readable evidence for your own rules, logging, and auditingexplanation— human-readable decision context: a summary, the top contributing reasons, grouped risk factors, and the reasoning behind the recommendation
explanation.explanation_available is false with explanation_omitted_reason: "limit_exceeded", the X-Explanation-Omitted: true header is set, and a warning appears in metadata.warnings. See Warnings & Quotas.
metadata
metadata carries context about the request and your account:
The response shape varies slightly across operations: batch responses wrap per-address results in a
results array (inapplicable sections are null per item rather than omitted), bulk jobs return a CSV with the core decision columns, and webhook payloads carry a reduced decision-first envelope. See the API reference for each operation’s schema.
Next steps
Core Concepts
How scoring works: determinism, the eight checks, industry profiles, and evidence reconciliation.
API reference
Exact request and response schemas for every operation.