Verisoul · AsyncAPI Specification

Verisoul Email Intelligence Webhooks

Version 1.0.0

Asynchronous results for the Verisoul Email Intelligence API are delivered to your configured endpoint as signed webhooks. When an email submitted via POST /email (or the batch endpoint) finishes analysis, Verisoul POSTs an `email.intelligence.completed` event. Deliveries are signed with HMAC-SHA256 in the `x-signature` header (see webhook signature verification). Provenance: generated 2026-07-21, method searched, source https://docs.verisoul.ai/email-intelligence/webhook-reference and https://docs.verisoul.ai/email-intelligence/webhook-signature-verification

View Spec View on GitHub CompanyFraud DetectionIdentity VerificationFake Account DetectionDevice FingerprintingEmail IntelligenceBot DetectionKYCTrust and SafetyRisk ScoringAsyncAPIEventsWebhooks

Channels

emailIntelligenceCompleted

Messages

EmailIntelligenceCompleted
Email Intelligence Completed

Servers

https
consumer
Your webhook receiver endpoint (configured in the Verisoul dashboard).

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Verisoul Email Intelligence Webhooks
  version: 1.0.0
  description: >-
    Asynchronous results for the Verisoul Email Intelligence API are delivered
    to your configured endpoint as signed webhooks. When an email submitted via
    POST /email (or the batch endpoint) finishes analysis, Verisoul POSTs an
    `email.intelligence.completed` event. Deliveries are signed with HMAC-SHA256
    in the `x-signature` header (see webhook signature verification).

    Provenance: generated 2026-07-21, method searched, source
    https://docs.verisoul.ai/email-intelligence/webhook-reference and
    https://docs.verisoul.ai/email-intelligence/webhook-signature-verification
  license:
    name: Documentation © Verisoul
    url: https://docs.verisoul.ai/email-intelligence/webhook-reference
defaultContentType: application/json
servers:
  consumer:
    host: your-app.example.com
    protocol: https
    description: Your webhook receiver endpoint (configured in the Verisoul dashboard).
channels:
  emailIntelligenceCompleted:
    address: /webhook
    messages:
      emailIntelligenceCompleted:
        $ref: '#/components/messages/EmailIntelligenceCompleted'
operations:
  receiveEmailIntelligenceCompleted:
    action: receive
    channel:
      $ref: '#/channels/emailIntelligenceCompleted'
    summary: Receive the result of an asynchronous email intelligence analysis.
    bindings:
      http:
        method: POST
components:
  messages:
    EmailIntelligenceCompleted:
      name: email.intelligence.completed
      title: Email Intelligence Completed
      contentType: application/json
      headers:
        type: object
        properties:
          x-event-type:
            type: string
            const: email.intelligence.completed
          x-event-id:
            type: string
            description: Unique delivery/event id.
          x-signature:
            type: string
            description: "HMAC-SHA256 signature: t=<unix>,h=content-type x-event-id x-event-type,v1=<hex>"
      payload:
        $ref: '#/components/schemas/EmailIntelligencePayload'
  schemas:
    EmailIntelligencePayload:
      type: object
      required: [request_id, project_id, event_type, status]
      properties:
        request_id: {type: string}
        batch_id: {type: [string, 'null']}
        project_id: {type: string}
        event_type: {type: string, const: email.intelligence.completed}
        created_at: {type: string, format: date-time}
        completed_at: {type: string, format: date-time}
        status: {type: string, enum: [success, error]}
        data:
          type: [object, 'null']
          properties:
            input:
              type: object
              properties:
                email: {type: string}
                claims: {type: object}
            result:
              type: object
              properties:
                decision:
                  type: string
                  enum: [high_trust, trusted, moderate, risky, high_risk]
                risk_score: {type: number, description: -1 (high trust) to 1 (high risk)}
                trust_signals: {type: array, items: {type: string}}
                risk_signals: {type: array, items: {type: string}}
                domain:
                  type: object
                  properties:
                    risk_score: {type: number}
                    fqdn: {type: string}
                    apex: {type: string}
                    type: {type: string}
                    age_years: {type: number}
                    country: {type: string}
                email:
                  type: object
                  properties:
                    username: {type: string}
                    normalized: {type: string}
                    first_seen_at: {type: string}
                    age_years: {type: number}
                    seen_countries: {type: array, items: {type: string}}
                deliverability:
                  type: object
                  properties:
                    risk_score: {type: number}
                    send_recommendation: {type: string, enum: [send, send_with_caution, do_not_send]}
                breach_intelligence:
                  type: object
                  properties:
                    breach_count: {type: integer}
                    trusted_breach_count: {type: integer}
                    breach_list: {type: array, items: {type: object}}
                identity_intelligence:
                  type: object
                  description: Present only when identity_intelligence:true was submitted.
                  properties:
                    match_risk_score: {type: number}
                    online_accounts_count: {type: integer}
                    online_accounts: {type: array, items: {type: string}}
                    connected_names: {type: array, items: {type: string}}
                    connected_phones: {type: array, items: {type: string}}
                    claim_matches:
                      type: object
                      properties:
                        name: {type: string, enum: [match, partial_match, no_match, skipped]}
                        phone: {type: string, enum: [match, partial_match, no_match, skipped]}
                        country: {type: string, enum: [match, partial_match, no_match, skipped]}
        error:
          type: [object, 'null']
          properties:
            email: {type: string}
            code: {type: string}
            message: {type: string}

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/verisoul-email-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.