Snov.io · AsyncAPI Specification

Snov Io Webhooks

Version

View Spec View on GitHub Sales AutomationEmail FinderEmail VerificationLead GenerationDrip CampaignsCRMLinkedIn AutomationProspect ManagementData EnrichmentCold EmailAsyncAPIEvents

AsyncAPI Specification

Raw ↑
name: Snov.io Webhook Event Catalog
specificationVersion: '0.1'
generated: '2026-08-13'
method: searched
source: https://snov.io/api
description: >-
  Snov.io publishes NO AsyncAPI document and no event-schema registry, but it does publish a
  complete, tabulated webhook catalog in its developer reference: eight event objects, twenty
  actions, a stated delivery contract and a full retry ladder. Captured here verbatim in
  substance. Subscriptions are managed over REST at /v2/webhooks; there is no UI-only path and
  no signing scheme.

asyncapi_published: false
asyncapi_searched:
  paths:
    - https://snov.io/asyncapi.yaml
    - https://api.snov.io/asyncapi.json
    - GitHub devsnovio org
  note: No AsyncAPI artifact exists on any Snov.io host or repository.

delivery:
  transport: HTTP POST
  content_type: application/json
  target: subscriber-supplied endpoint URL
  success_criteria: HTTP status in the 200-299 range received within 3 seconds
  timeout_seconds: 3
  signing: none
  note: >-
    No HMAC signature, no shared secret, no timestamp header and no source IP allowlist is
    published. A receiver cannot cryptographically verify that a delivery came from Snov.io.
    This is a material security gap for an events surface that carries prospect PII.

retry_policy:
  attempts: 7
  window_hours: 38
  on_exhaustion: subscription is automatically deactivated
  schedule:
    - attempt: 1
      after: immediately after the event
      cumulative: 0
    - attempt: 2
      after: 20 minutes after the last attempt
      cumulative: 20 minutes
    - attempt: 3
      after: 40 minutes after the last attempt
      cumulative: 1 hour
    - attempt: 4
      after: 60 minutes after the last attempt
      cumulative: 2 hours
    - attempt: 5
      after: 4 hours after the last attempt
      cumulative: 6 hours
    - attempt: 6
      after: 8 hours after the last attempt
      cumulative: 14 hours
    - attempt: 7
      after: 24 hours after the last attempt
      cumulative: 38 hours

limits:
  max_subscriptions: 50
  plan_requirement: premium plans
  note: Premium plan users can create up to 50 webhooks per account.

subscription_management:
  base_url: https://api.snov.io
  operations:
    - operationId: listWebhooks
      method: GET
      path: /v2/webhooks
    - operationId: addWebhook
      method: POST
      path: /v2/webhooks
    - operationId: updateWebhook
      method: PUT
      path: /v2/webhooks/{id}
      note: Toggles status between active and deactivated.
    - operationId: deleteWebhook
      method: DELETE
      path: /v2/webhooks/{id}
  subscription_model:
    event_object: string
    event_action: string
    endpoint_url: string
    status:
      - active
      - deactivated
    created_at: Unix timestamp (integer)

events:
  - object: campaign_email
    actions:
      - action: sent
        trigger: When any email is sent to the recipient in any drip campaign
      - action: first_sent
        trigger: When the first email is sent to the recipient in any drip campaign
      - action: opened
        trigger: When a recipient opens any email from any drip campaign
      - action: bounced
        trigger: When a campaign email bounces
      - action: clicked
        trigger: When a recipient clicked a link in a campaign email
  - object: campaign_reply
    actions:
      - action: received
        trigger: When the recipient responds to any email in any of the campaigns
      - action: first_received
        trigger: When the recipient responds to the email for the first time in any of the campaigns
      - action: autoreply_received
        trigger: When you receive an auto-reply to a campaign email
  - object: campaign_li_reply
    actions:
      - action: received
        trigger: >-
          When the recipient sends a subsequent reply over LinkedIn — to a connection request, to
          a direct message or to an InMail — in any of the campaigns
      - action: first_received
        trigger: >-
          When the recipient sends their first reply over LinkedIn — to a connection request, to
          a direct message or to an InMail — in any of the campaigns
  - object: campaign_li
    actions:
      - action: connection_request_accepted
        trigger: When the recipient accepts a LinkedIn connection request sent from a campaign
  - object: company
    actions:
      - action: found_domains_by_names
        trigger: When you request a company's domain based on its name
      - action: found_company_by_domain
        trigger: When you search a company by its domain
  - object: prospect
    actions:
      - action: found_by_li_url
        trigger: When you request a prospect's profile info based on their LinkedIn URL
      - action: found_emails_by_name_by_domain
        trigger: When you search for a prospect's email
      - action: campaign_finished
        trigger: 'When a campaign is completed for a recipient (status: Finished)'
      - action: unsubscribed
        trigger: When a campaign recipient unsubscribed from your emails
      - action: found_company_by_domain
        trigger: When you search prospects by company domain
  - object: email_verification
    actions:
      - action: verified
        trigger: When you request email verification
  - object: email
    actions:
      - action: found_emails_by_domain
        trigger: When you search all emails by domain
      - action: found_generic_contacts_by_domain
        trigger: When you search generic emails by domain
      - action: found_prospect_emails
        trigger: When you search prospect emails
  - object: database_search
    actions:
      - action: task_result
        trigger: When you request a prospect or company search

inline_callbacks:
  supported: true
  parameter: webhook_url
  description: >-
    Distinct from subscriptions. Most async /start operations accept a per-request `webhook_url`
    input parameter; supplying it makes Snov.io POST that one task's completed result to the URL
    instead of requiring the caller to poll the matching /result endpoint with the task_hash.
  operations:
    - startDomainSearch
    - startDomainProspectSearch
    - startDomainEmailsSearch
    - startGenericContactsSearch
    - startFindEmailsByName
    - startFindDomainByCompanyName
    - startLinkedInProfileEnrichment
    - startEmailVerification
  cross_reference: conventions/snov-io-conventions.yml

summary:
  event_objects: 8
  event_actions: 20
  signed: false
  asyncapi: false
  max_subscriptions: 50
  finding: >-
    A genuinely well-documented webhook surface — the retry ladder and success criteria are
    published to a level of detail most providers skip — undermined by the absence of any
    payload signing and of any machine-readable event schema. There is no AsyncAPI document and
    no per-event payload schema, so a subscriber cannot generate types for the twenty events it
    can subscribe to.

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/snov-io-webhooks"
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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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