APIFreaks - API Hub for Developers · AsyncAPI Specification

Apifreaks Api Hub For Developers Pdf Webhooks

Version

View Spec View on GitHub IP IntelligenceGeolocationWHOISDomain IntelligenceDNSGeocodingEmail VerificationPhone ValidationSSLWeb ScrapingScreenshotsPDF ProcessingCurrencyForexCommoditiesfinancial validationZIP CodesWeatherTimezoneGeoDBUser-Agent ParsingAstronomyDeveloper ToolsMCPAgent ReadyOCRAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-09-04'
method: derived
spec_type: Webhooks
asyncapi_published: false
source: 'openapi/_original/ (104 specs, re-measured 2026-09-04: 16 async PDF operations declare webhook_url / webhook_failure_notification
  / X-Webhook-Authorization)'
docs: https://apifreaks.com/api/merge-pdf
summary: 'APIFreaks has exactly one event surface, and it is outbound webhooks on the asynchronous PDF pipeline. Every
  long-running PDF operation returns a taskId immediately and will POST a completion notification to a caller-supplied
  webhook_url. There is no streaming API, no event bus, no subscription management endpoint, and no published AsyncAPI
  document — the whole contract lives as three query/header parameters repeated across 16 operations in the OpenAPI.
  Re-measured against the 2026-09-03 republish: still 16, and the two NEW PDF Template operations shipped 2026-08-11
  (generatePdfFromTemplate, generatePdfsFromCsv) are deliberately outside it — they render synchronously and return
  a hosted URL, so there is nothing to notify. The rest of the platform (IP, WHOIS, DNS, currency, weather, GeoDB,
  validation) is synchronous request/response only and has no event surface at all.'
model:
  style: caller-supplied-url
  direction: outbound
  subscription: per-request
  registration_endpoint: null
  notes: There is no webhook-registration API and no dashboard endpoint catalog. The destination URL is passed on
    the request that starts the task, so each task carries its own callback.
parameters:
- name: webhook_url
  in: query
  type: string
  required: false
  description: The URL to which the webhook notification will be sent after the task is completed.
- name: webhook_failure_notification
  in: query
  type: boolean
  required: false
  description: If true, an email notification is also sent when the webhook request fails all retries. The email goes
    to the requesting user, or to their organization's admin if they belong to one.
- name: X-Webhook-Authorization
  in: header
  type: string
  required: false
  description: Optional custom header forwarded on the webhook call. Format `Key:Value` (e.g. `Authorization:Bearer
    <token>`).
delivery:
  retries: true
  retry_policy_published: false
  failure_fallback: email notification (opt-in via webhook_failure_notification)
  signature_scheme: null
  signature_note: No HMAC signature, no timestamp, no replay-protection header is documented. Receiver-side authentication
    is delegated entirely to whatever static value the caller puts in X-Webhook-Authorization, which is a shared secret
    echoed on every call rather than a per-payload signature.
producers:
  count: 16
  operations:
  - mergePdf
  - splitPdf
  - extractPdfPages
  - deletePdfPage
  - rotatePdfPages
  - compressPdf
  - linearizePdf
  - encryptPdf
  - decryptPdf
  - restrictPdf
  - unrestrictPdf
  - pdfToImage
  unnamed_operations:
  - POST /pdf/jpg
  - POST /pdf/tif
  - POST /pdf/bmp
  - POST /pdf/gif
  note: Four of the 16 carry NO operationId upstream and can only be referenced by path.
polling_alternative:
  operationId: getTaskStatus
  http: GET /v1.0/pdf/task-status
  spec: apifreaks-api-hub-for-developers-pdf-task-status-openapi.json
  states:
  - completed
  - failed
  payload_shape:
    source: components.schemas.TaskStatusResponse (published example)
    fields:
    - taskId
    - status
    - createdAt
    - outputUrls
    - outputIds
    - inputIds
    - expiresAt
    - error
    - message
  retention: The published example shows expiresAt exactly 7 days after createdAt, i.e. generated output resources
    are retained for one week.
gaps:
- No AsyncAPI document is published for the webhook surface, so the event payload has no machine-readable schema of
  its own. The closest thing is the TaskStatusResponse schema on the polling endpoint; whether the webhook body is
  identical is not documented.
- No webhook signature scheme. A receiver cannot verify that a completion callback came from APIFreaks other than
  by checking a static header it supplied itself.
- No published retry schedule or maximum attempt count, only "all the retries" in the parameter description.
not_event_bearing:
- generatePdfFromTemplate
- generatePdfsFromCsv

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/apifreaks-api-hub-for-developers-pdf-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.