SimilarWeb · AsyncAPI Specification

Similarweb Webhooks

Version

View Spec View on GitHub Digital IntelligenceWeb AnalyticsTraffic AnalyticsCompetitive IntelligenceKeyword AnalyticsAudience DemographicsApp IntelligenceMarket ResearchE-CommerceSEOAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://docs.similarweb.com/api-v5/batch-api-general/webhook-endpoints,
  openapi/similarweb-webhooks-api-openapi.yml
spec_type: Webhooks
asyncapi_published: false
description: >-
  Similarweb publishes no AsyncAPI document — searched the developer docs, the
  docs.similarweb.com/api-v5 llms.txt index, the github.com/similarweb organisation and
  /asyncapi.yaml on every host; nothing. It does, however, document a real webhook surface
  for the Batch API, captured here. The event surface is narrow by design: webhooks exist
  only to signal that an asynchronous bulk report changed state, so a consumer stops
  polling getRequestStatus. There is no event stream for the REST measurement data.

transport:
  style: outbound-http-post
  direction: similarweb -> subscriber
  content_type: application/json
  timeout_seconds: 5
  timeout_behaviour: >-
    A subscriber that does not respond within 5 seconds is treated as a failure.
  retries: not documented
  signature_verification:
    supported: partial
    note: >-
      The subscribe request schema (WebhookSubscribeRequest) carries a `secret` field, but
      the docs describe no signature header or verification algorithm, so a subscriber has
      no documented way to authenticate an inbound delivery.

setup_flow:
- step: Create an HTTPS endpoint in your application that accepts POST
- step: Validate it with the test operation (testWebhook, POST /v3/batch/webhooks/test) and confirm you receive the test_webhook_endpoint event
- step: Include the validated webhook_url in the report request body (requestReport) or subscribe it (subscribeWebhook)
- step: Similarweb POSTs to the URL when the report status changes

events:
- name: test_webhook_endpoint
  description: >-
    Sent immediately when the test operation is called; confirms end-to-end delivery.
  payload_example: |
    {
      "event_type": "test_webhook_endpoint",
      "payload": "Webhook Integration with Similarweb is successful!"
    }
  trigger_operation: testWebhook
  verbatim: true
- name: report status change
  description: >-
    Sent when a Batch report transitions state. The docs enumerate the possible report
    statuses but do not publish the delivered payload schema for this event, so it is NOT
    reproduced here.
  statuses: [processing, complete, internal_error]
  trigger_operation: requestReport
  payload_documented: false

operations:
  source: openapi/similarweb-webhooks-api-openapi.yml
  entries:
  - {operationId: subscribeWebhook, method: POST, path: /batch/v4/webhooks/subscribe}
  - {operationId: listWebhookSubscriptions, method: GET, path: /batch/v4/webhooks/list}
  - {operationId: unsubscribeWebhook, method: DELETE, path: /batch/v4/webhooks/unsubscribe}
  - {operationId: testWebhook, method: POST, path: /batch/v4/webhooks/test}
  version_note: >-
    The captured spec uses /batch/v4/webhooks/*; the V5 documentation shows the test
    operation at /v3/batch/webhooks/test. Both path generations appear in provider
    documentation — recorded as observed rather than reconciled.

gaps:
- No AsyncAPI or CloudEvents document is published
- The report-status event payload schema is not documented
- No signature header or verification procedure is documented for the `secret`
- No delivery-retry policy is documented

x-evidence:
  fetched: '2026-08-13'
  probes:
  - {url: https://docs.similarweb.com/api-v5/batch-api-general/webhook-endpoints.md, http_status: 200}