For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhooks

Receive real-time enhancement notifications via VIESUS Cloud webhooks. Setup, signature verification, retry behavior, and delivery logs.

Webhooks deliver push notifications to your server when an enhancement completes (or fails). This eliminates the need to poll the API and is the recommended pattern for production integrations.

Up to 5 webhooks can be registered per account. Webhooks fire only for enhancements triggered via the API — not for enhancements run through the dashboard UI.


Create a webhook

mutation {
  createWebhook(input: {
    url: "https://your-server.com/webhooks/viesus"
  }) {
    id
    url
    secret
    createdAt
  }
}

Save the returned secret immediately — it is used to verify incoming requests and is shown only once. If lost, delete the webhook and create a new one.


List webhooks

query {
  webhooks {
    id
    url
    createdAt
  }
}

Retrieve a single webhook


Delete a webhook


Webhook payload

When an enhancement finishes, VIESUS Cloud sends a POST request to your URL with a JSON body:

Your endpoint must return a 2xx status code to acknowledge delivery. Non-2xx responses trigger retries.


Verifying webhook signatures

Every incoming webhook request includes an x-viesus-cloud-signature header containing an HMAC-SHA256 hash of the raw request body, signed with your webhook secret.

Always verify this signature before processing the payload to ensure the request came from VIESUS Cloud.

Node.js (Express):

Python (Flask):

A full Node.js example is available at: https://github.com/Viesus-Cloud/webhooks-node-example


Retry behavior

If your endpoint does not return a 2xx response within the timeout, VIESUS Cloud retries delivery 9 times with a 1-hour delay between attempts. After 9 failures the event is marked as permanently failed.

Design your endpoint to be idempotent — it may receive the same event multiple times.


Webhook logs

Inspect delivery history for debugging failed webhooks:

Filter by outcome:


Events reference

The Cloud API documents a single webhook event:

Event
When it fires
Key fields

upload.sub_status_update

An upload's status / sub-status changes — e.g. PDF analysis progress (METADATA_ANALYZINGMETADATA_ANALYZED_SUCCESSFULLY / METADATA_ANALYZED_FAILED)

data.status, data.subStatus — branch your handler on these

To check whether an enhancement has finished, query enhancedImage { status fullUrl errorCode }status is QUEUED, FINISHED, or ERROR. The API does not document a separate webhook event name for enhancement completion.

Last updated

Was this helpful?