How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Vyond Webhook API

APIs for managing webhook## Verifying Vyond SignaturesVyond webhook events are sent with a signature, which the destination server can use to verify that the events are authentic from Vyond. It is recommended to verify the signature before processing each webhook event.### How to verify our signatures?1. Fetch the raw request body. ``` const express = require('express'); const app = express(); app.use(express.json({ verify: (req, res, buf, encoding) => { req.rawBody = buf.toString(encoding || 'utf-8'); }, })); ```2. Extract the timestamp from the request header `x-vyond-request-timestamp` and the signature from the request header `x-vyond-signature`. ``` const timestamp = req.headers['x-vyond-request-timestamp']; const signature = req.headers['x-vyond-signature']; ```3. Create a message by concatenating the timestamp and the raw request body together, using a colon (:) as a delimiter. ``` const message = `${timestamp}:${req.rawBody}`; ```4. Verify the signature, an HMAC created using the SHA256 hash function, using the webhook secret as a key. ``` const { webcrypto } = require('node:crypto'); const secret = 'your_webhook_secret'; const enc = new TextEncoder(); const key = await webcrypto.subtle.importKey( 'raw', enc.encode(secret), { name: 'HMAC', hash: { name: 'SHA-256' }, }, false, ['verify'], ); const isValid = await webcrypto.subtle.verify( { name: 'HMAC' }, key, Buffer.from(signature, 'hex'), enc.encode(message), ); ```5. To enhance security and mitigate the risk of replay attacks, consider verifying the timestamp. Reject requests containing timestamps older than a defined tolerance, such as ten minutes, to ensure that the events are recent and valid.## Webhook events### Event body type definition```typescripttype WebhookEventBody = { event: string; // Refer to API for possible event types data?: Record; // Differ based on event type // Exists if it is a failure event error?: { code: string; };};```### Sample events**Video generation succeeded**Note: `expiredAt` is when the `downloadUrl` will expire.```json{ "event": "video_generation.succeeded", "data": { "type": "vyondGo", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "videoId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", "status": "success", "name": "Video name", "url": "https://app.vyond.org/videos/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", "downloadUrl": "{downloadUrl}", "expiredAt": "2025-01-28T01:42:05.831Z" }}```**Video generation failed**```json{ "event": "video_generation.failed", "data": { "type": "vyondGo", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "videoId": null, "status": "failed", "name": null, "url": null }, "error": { "code": "UNSUITABLE_CONTENT" }}```**Turbo generation succeeded**Note: `id` is the Turbo video generation task (thread) ID. `expiredAt` is when the `downloadUrl` will expire. `turboThreadUrl` is the webpage URL for you to view the chat and progress.```json{ "event": "turbo_generation.succeeded", "data": { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "completed", "turboThreadUrl": "https://app.vyond.com/turbo/t/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "downloadUrl": "{downloadUrl}", "creditConsumed": 10, "expiredAt": "2025-01-28T01:42:05.831Z" }}```**Turbo generation failed**Note: `error.code`: `TIMEOUT` / `GENERATION_FAILED`.```json{ "event": "turbo_generation.failed", "data": { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "failed", "turboThreadUrl": "https://app.vyond.com/turbo/t/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }, "error": { "code": "GENERATION_FAILED" }}```**Turbo generation cancelled**```json{ "event": "turbo_generation.cancelled", "data": { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "status": "cancelled", "turboThreadUrl": "https://app.vyond.com/turbo/t/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }, "error": { "code": "CANCELLED" }}```

Vyond Webhook API is one of 8 APIs that Vyond publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Webhook. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, and a getting-started guide.

This API exposes 4 operations across 2 paths, and defines 7 schemas. It is described by OpenAPI 3.2.0, at version 1.1.0.

Requests are made against the base URL https://api.vyond.com.

4 operations 2 paths 7 schemas 1 DELETE1 GET1 PATCH1 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.1.0
Base URL
https://api.vyond.com
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

Vyond Webhook API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (bearer).

Paths & Operations 4

Across 2 paths, the API surfaces 4 operations — 1 DELETE, 1 GET, 1 PATCH, 1 POST. Each is listed below with its method, path, parameters, and response codes.

Webhook 4

APIs for managing webhook Verifying Vyond Signatures Vyond webhook events are sent with a signature, which the destination server can use to verify that the events are authentic f…

GET
/rest/v1/webhooks/
List webhooks
WebhookController.getWebhooks → 200401403429500
POST
/rest/v1/webhooks/
Create webhook
WebhookController.createWebhook body → 200401403429500
PATCH
/rest/v1/webhooks/{webhookId}
Update webhook
WebhookController.updateWebhook 1 param body → 200401403404429500
DELETE
/rest/v1/webhooks/{webhookId}
Delete webhook
WebhookController.deleteWebhook 1 param → 204401403404429500

Schemas 7

The contract defines 7 schemas that model the data the API accepts and returns. The most detailed are WebhookWithSecret (6 properties), Webhook (5 properties), ApiErrorResponse (5 properties), WebhookUpdateReqBody (4 properties). Each schema is shown below with its type and property counts.

WebhookUpdateReqBody
object
4 properties
WebhookCreateReqBody
object
3 properties 2 required
ValidationDetail
object
2 properties 2 required
WebhookListResBody
object
1 property 1 required
ApiErrorResponse
object
5 properties 1 required
Webhook
object
5 properties 4 required
WebhookWithSecret
object
6 properties 5 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

vyond-webhook-api-openapi.yml Raw ↑

Other APIs Vyond publishes across the network.

Vyond Content Generation API
Vyond Parameter API
Vyond SCIM API
Vyond Turbo API
Vyond User API
Vyond Video API
Vyond Video Export API
Where this information came from

This is an independent, third-party profile of Vyond Webhook API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.