ToAPIs · AsyncAPI Specification

Toapis Webhooks

Version

View Spec View on GitHub AI APILLM/AI gatewaymodel aggregationOpenAI-compatiblemodel routingprovider failovertext generationimage generationvideo generationdeveloper toolsAsyncAPIEvents

AsyncAPI Specification

toapis-webhooks.yml Raw ↑
generated: '2026-09-07'
method: searched
source: https://docs.toapis.com/docs/cn/api-reference/webhooks/task-webhooks.md
type: webhook-catalog
notes: >-
  ToAPIs documents a signed webhook surface for async image/video generation tasks
  but publishes no AsyncAPI document, so this captures the webhook catalog only.
  Only final-state events are sent (no intermediate progress events). Delivery is
  at-least-once: the event id stays stable across retries and receivers must
  deduplicate on it before executing side effects.
delivery:
  guarantee: at-least-once
  dedupe_key: id (event ID, stable across retries)
  retry_schedule: immediate, then ~10s, 30s, 2m, 10m, 1h, 6h, 24h
  success_criteria: 2xx response only (3xx not followed; 4xx and 5xx both retried)
  timeout: 10s per delivery; at most 4KB of response body read for diagnostics
  transport: HTTPS only; userinfo/fragment/private, loopback, link-local and
    reserved addresses rejected; DNS/IP re-validated per delivery (SSRF/DNS-rebinding
    protection)
configuration: >-
  Configured per token in the console: HTTPS default callback URL + a 32-byte
  signing secret (shown once). A request-level callback_url may override only the
  path and query of the token default (scheme/host/port must match). Passing
  callback_url without webhook configuration returns error code
  webhook_not_configured.
signature:
  headers:
    - User-Agent: ToAPIs-Webhook/1.0
    - X-ToAPIs-Webhook-Id
    - X-ToAPIs-Webhook-Timestamp
    - X-ToAPIs-Webhook-Signature: 'v1=<current>[,v1=<previous>]'
  algorithm: HMAC-SHA256 (lowercase hex) over 'event_id + "." + timestamp + "." + raw_request_body'
  timestamp_tolerance: reject first deliveries older/newer than 5 minutes
  key_rotation: for 24h after rotation both current and previous key signatures are sent
events:
  - name: generation.completed
    description: Async image or video generation task finished successfully.
    payload_fields: [id, type, api_version, created_at, data.task_id, data.client_business_id, data.task_type, data.model, data.status, data.progress, data.result, data.error, data.submitted_at, data.finished_at]
  - name: generation.failed
    description: >-
      Task failed after all internal retries ended and final billing/refund
      completed; transient failures never trigger it.
  - name: endpoint.test
    description: Console-triggered test event to verify the receiving endpoint.
constraints:
  - task_type is only image or video
  - result matches the task-status query response and never includes channel IDs, upstream task IDs, upstream secrets or PrivateData
  - result URLs expire (download promptly; docs elsewhere state 24 hours)
  - Seedance real-person verification callback_url, payment webhooks and OAuth callbacks are separate surfaces, not task webhooks

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