Prerequisites
Before you begin, make sure you have:- A Verisoul API key (available from the Dashboard)
Step 1: Configure Your Webhook Endpoint (Optional)
Webhook configuration is optional. All email intelligence results are available in the Dashboard regardless of whether a webhook is configured. Set up a webhook only if you need results delivered to your own endpoint in real time.
- Accept POST requests with JSON payloads
- Respond with a 2xx HTTP status code on success
- Be idempotent (Verisoul may retry delivery)
- Verify webhook signatures for security (see Step 3)
Step 2: Submit Emails
Submit emails to thePOST /email endpoint. You can submit a single email or a batch of emails.
Submit Email
Submit a single email with optional identity claims. Returns a
request_id for webhook correlation.Submit Email Batch
Submit up to 1,000 emails with per-email claims. Returns a
batch_id for grouping webhook results.request_id (single) or batch_id (batch), plus a webhook_configured boolean indicating whether a webhook subscription is active for your project. This confirms the email has been accepted for processing — it does not contain the analysis results.
Step 3: Receive and Verify Webhook Results
Once analysis completes, Verisoul delivers a webhook to your configured endpoint with the event typeemail.intelligence.completed.
Webhook Signature Verification
All webhook requests include anx-signature header containing an HMAC-SHA256 signature over the timestamp, selected headers, and the raw request body.
See the Webhook Signature Verification guide for the full algorithm, code examples in Node.js, Python, Go, and C#, and troubleshooting tips.
Processing the Payload
- Verify the webhook signature
- Check the
statusfield — eithersuccessorerror - On success, use
data.result.decisionanddata.result.risk_scorefor your business logic - On error, inspect the
errorobject for details
Latency and Delivery Guarantees
The time between submitting an email and receiving the webhook depends on whether Verisoul has previously analyzed the email or its domain. Single email requests:| Scenario | Typical latency |
|---|---|
| Invalid or previously analyzed email | Under 1 second |
| New email on a known domain | Approximately 5 seconds |
| New domain never seen before | 30–60 seconds (one-time domain analysis) |
status: "error" and error.code: "timed_out" so your system is never left waiting.
Batch requests:
For batch submissions (up to 1,000 emails), Verisoul guarantees that all webhooks in the batch will be delivered within 5 minutes of submission. Each email in the batch triggers its own webhook as soon as its analysis completes — you do not need to wait for the entire batch to finish before receiving results.
Batch emails are processed at a lower priority than single email requests, so real-time single-email submissions are never delayed by batch processing.
FAQ
What is the webhook retry policy?
What is the webhook retry policy?
If your endpoint does not return a 2xx response, Verisoul retries delivery:
- Up to 5 fast retries with increasing delays
- Up to 5 slow retries approximately once per hour
What is my rate limit?
What is my rate limit?
Calls to
/email count toward your API key’s rate limit. If you need a higher limit, contact Verisoul.What IP address do webhooks come from?
What IP address do webhooks come from?
All Verisoul webhooks are sent from:You can allowlist this IP if your endpoint is behind a firewall. You should still verify webhook signatures regardless.
