Pagesnap · AsyncAPI Specification

Pagesnap Webhooks

Version

View Spec View on GitHub developer-toolsweb-scrapingweb-to-markdownscreenshot-apipdf-generationmetadata-extractionmcpa2ax402ai-agentscontent-extractionstructured-dataweb-crawlingchange-monitoringllms-txtagent-paymentssaasAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-02'
method: searched
source: https://pagesnap.142-93-197-141.sslip.io/docs
asyncapi_spec: null
asyncapi_note: >-
  Pagesnap publishes no AsyncAPI document. Probed /asyncapi.json and /asyncapi.yaml alongside the
  OpenAPI discovery sweep; the spec itself declares an empty `webhooks` object and no callbacks.
  The event surface below is documented in prose and in the Monitor schema, so it is captured as a
  webhook catalog rather than fabricated as an AsyncAPI file.
surface: outbound-webhook
scope: change monitors only
subscription:
  operation_id: createMonitor
  field: webhook_url
  constraints: https?:// URL, max 4096 chars, must pass the same public-address policy as a monitored target
  auth_required: true
security:
  signature_header: X-Pagesnap-Signature
  algorithm: 'sha256=<hex HMAC-SHA256>'
  signed_over: the exact JSON request body, including its timestamp
  secret_delivery: >-
    webhook_secret is returned exactly once, in the createMonitor 201 response (MonitorWithSecret).
    listMonitors deliberately omits it and there is no rotation or re-reveal operation.
  verification_guidance: >-
    Verify the exact raw bytes with a constant-time comparison BEFORE parsing, then reject
    timestamps outside your replay window.
delivery:
  timeout_seconds: 10
  retries: 3 after the initial attempt
  redirects_followed: false
  response_body: discarded
  address_policy: The destination is re-resolved on every attempt against the same SSRF policy as monitored targets.
  disable_rule: >-
    After 20 consecutive failed change deliveries the webhook is disabled and the monitor records
    a generic note. The monitor itself stays active.
native_integrations:
  - Slack (injection-safe native payload)
  - Discord (injection-safe native payload)
events:
  - name: monitor.change
    trigger: >-
      A scheduled or manual monitor check detects a change above threshold_percent in text, visual
      or meta mode.
    modes: [text, visual, meta]
    intervals: ['1h', '6h', '24h']
    payload_schema: null
    payload_note: >-
      The provider documents the signing scheme, delivery semantics and failure behavior but does
      not publish the change-notification body schema. Recorded as null rather than guessed.
poll_alternatives:
  - operation_id: getMonitor
    note: Returns the monitor plus recent check results - the pull equivalent of the webhook.
  - operation_id: checkMonitor
    note: Runs a check immediately.
  - operation_id: getCrawlJob
    note: >-
      Asynchronous crawl and llms-txt jobs have NO webhook; completion is discovered by polling
      status_url. This is the one place where a callback would help and none is offered.

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/pagesnap-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 email required.

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