APIFreaks - API Hub for Developers · AsyncAPI Specification

Apifreaks Api Hub For Developers Pdf Webhooks

Version

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

AsyncAPI Specification

Raw ↑
generated: '2026-08-09'
method: derived
spec_type: Webhooks
asyncapi_published: false
source: openapi/ (18 PDF operations declaring 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 18 operations in the OpenAPI. 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:
  - {operationId: mergePdf, http: 'POST /v1.0/pdf/merge', spec: apifreaks-api-hub-for-developers-merge-pdf-openapi.json}
  - {operationId: splitPdf, http: 'POST /v1.0/pdf/split', spec: apifreaks-api-hub-for-developers-pdf-split-pages-openapi.json}
  - {operationId: extractPdfPages, http: 'POST /v1.0/pdf/extract-pages', spec: apifreaks-api-hub-for-developers-pdf-extract-pages-openapi.json}
  - {operationId: deletePdfPage, http: 'POST /v1.0/pdf/remove-pages', spec: apifreaks-api-hub-for-developers-delete-pdf-page-openapi.json}
  - {operationId: rotatePdfPages, http: 'POST /v1.0/pdf/rotate', spec: apifreaks-api-hub-for-developers-rotate-pdf-pages-openapi.json}
  - {operationId: compressPdf, http: 'POST /v1.0/pdf/compress', spec: apifreaks-api-hub-for-developers-pdf-compress-openapi.json}
  - {operationId: linearizePdf, http: 'POST /v1.0/pdf/linearize', spec: apifreaks-api-hub-for-developers-linearize-pdf-openapi.json}
  - {operationId: encryptPdf, http: 'POST /v1.0/pdf/encrypt', spec: apifreaks-api-hub-for-developers-pdf-encrypt-openapi.json}
  - {operationId: decryptPdf, http: 'POST /v1.0/pdf/decrypt', spec: apifreaks-api-hub-for-developers-pdf-decrypt-openapi.json}
  - {operationId: restrictPdf, http: 'POST /v1.0/pdf/restrict', spec: apifreaks-api-hub-for-developers-pdf-restrict-openapi.json}
  - {operationId: unrestrictPdf, http: 'POST /v1.0/pdf/unrestrict', spec: apifreaks-api-hub-for-developers-pdf-unrestrict-openapi.json}
  - {operationId: pdfToImage, http: 'POST /v1.0/pdf/png', spec: apifreaks-api-hub-for-developers-pdf-to-image-openapi.json}
  - {operationId: null, http: 'POST /v1.0/pdf/jpg', spec: apifreaks-api-hub-for-developers-pdf-to-image-openapi.json, note: no operationId in the published spec}
  - {operationId: null, http: 'POST /v1.0/pdf/tif', spec: apifreaks-api-hub-for-developers-pdf-to-image-openapi.json, note: no operationId in the published spec}
  - {operationId: null, http: 'POST /v1.0/pdf/bmp', spec: apifreaks-api-hub-for-developers-pdf-to-image-openapi.json, note: no operationId in the published spec}
  - {operationId: null, http: 'POST /v1.0/pdf/gif', spec: apifreaks-api-hub-for-developers-pdf-to-image-openapi.json, note: no operationId in the published spec}
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.

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

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