ParseForMe · AsyncAPI Specification

Parseforme Webhooks

Version

View Spec View on GitHub Document ParsingOCRData ExtractionDocument AIIDPInvoicesBank StatementsReceiptsResumePDFWebhookRESTAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-03'
method: searched
source: https://parseforme.com/developers
spec_type: webhook-catalog
note: >-
  ParseForMe documents a full webhook surface but publishes no AsyncAPI document (none found on the docs
  host or spec). This captures the webhook catalog.
events:
  - name: document.parsed
    description: A parse finished; data.document is the same object GET /v1/documents/{id} returns, data.result present only with includeResult.
  - name: document.failed
    description: >-
      A parse ended failed - including the trailing-24h OCR page-limit refusal, when the parse was
      started through the API.
delivery:
  transport: https POST
  egress_ips: ['46.62.162.196']
  egress_ips_source: GET /v1/meta (webhookEgressIps) - allowlist rather than hard-code
  headers: [X-ParseForMe-Event, X-ParseForMe-Delivery, X-ParseForMe-Signature]
  payload_cap: >-
    A body that would pass 1 MB is sent without the result and with data.resultOmitted: "too_large" -
    fetch the document instead.
  semantics: at-most-once, unordered; queued after the parse commits (crash loses, never duplicates); keep GET /v1/documents?since= as the backstop
signing:
  scheme: HMAC-SHA256
  header: 'X-ParseForMe-Signature: t=<unix seconds>,v1=<hex>'
  payload: t + "." + RAW request body (verify before parsing JSON; compare constant-time)
  tolerance: reject > 300 seconds old; every retry is re-signed with a fresh timestamp
  secret_format: pfm_whsec_... (returned once at registration; secretHint = last 4 chars)
  rotation: two v1 entries during the 24-hour rotation window; either matching is valid
retries:
  success: 2xx within 10 seconds - acknowledge first, work afterwards
  retried_on: [5xx, 408, 425, 429, no-answer]
  policy: exponential backoff, up to 12 attempts over ~13 hours, same X-ParseForMe-Delivery id
  not_retried: 3xx (redirects never followed), 401, 404 - one failure, no retry
  disable: answering 410 disables immediately; 50 consecutive failures disable; owners/admins emailed either way; a 2xx resets the count
registration:
  endpoint_limit: 10 per workspace
  url_policy: https on port 443, public hostname, no credentials, no IP literal; re-checked at every delivery and /test
  auth_header: optional static header, stored encrypted, value never returned; reserved names refused
  notification: every registration emails workspace owners and admins (stolen-key visibility)
testing:
  operation: POST /v1/webhooks/{id}/test
  fixture: synthetic document.parsed with test:true inside the signed body and the nil UUID as document id - never a real document
  limit: 5 per minute per workspace

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/parseforme-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.