aid: vyond name: Vyond description: 'Vyond is a business video creation platform — formerly GoAnimate — used by enterprise learning, HR, sales enablement and internal-communications teams to produce animated, AI-avatar, mixed-media and screen-recorded video. Alongside the Vyond Studio web application and the generative Vyond Go and Turbo products, Vyond publishes a public OpenAPI 3.0 contract at api.vyond.com/doc/ covering two distinct surfaces: a versioned REST API (/rest/{version}/) for content generation, Turbo text-to-video tasks, video export, parameter lookup and HMAC-signed webhook subscriptions, and a SCIM 2.0 API (/scim/v2/) for enterprise user provisioning against identity providers such as Okta. Access is bearer-token based — API tokens for SCIM, OAuth 2.0 access tokens for REST — and is scoped per feature (VYOND_GO, VIDEO_EXPORT).' image: https://www.vyond.com/wp-content/uploads/2025/05/vyond-social-promo-card-1200x630-1.webp url: https://raw.githubusercontent.com/api-evangelist/vyond/refs/heads/main/apis.yml x-type: company x-source: harvest:secondary-market specificationVersion: '0.20' created: '2026-08-05' modified: '2026-08-05' tags: - Video - Animation - Video Generation - Artificial Intelligence - eLearning - Learning and Development - Content Generation - SCIM - Identity Provisioning - Webhooks - Enterprise - Media apis: - aid: vyond:vyond-content-generation-api name: Vyond Content Generation API description: APIs for content generation humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - Content Generation properties: - type: OpenAPI url: openapi/vyond-content-generation-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-parameter-api name: Vyond Parameter API description: APIs for getting parameters information humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - Parameter properties: - type: OpenAPI url: openapi/vyond-parameter-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-scim-api name: Vyond SCIM API description: SCIM 2.0 APIs humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - SCIM properties: - type: OpenAPI url: openapi/vyond-scim-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-turbo-api name: Vyond Turbo API description: >- APIs for creating and tracking Turbo video generation tasks. Turbo lets you generate a video from a text prompt, optionally grounded on reference files (e.g. `.txt`, `.pdf`, `.docx`, `.pptx`). Submit a prompt to start a task, then poll the task by its ID to retrieve the status and, once completed, the download URL of the generated video. ## Webhook events Instead of polling, you can listen to webhook events to be notified when a Turbo task completes. Webhook events are always emitted for every task, so you can register a webhook subscription (owner type `user`) before the task completes, or supply a one-off `callbackWebhook` in the create request. | Event | Description | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------- | | `turbo_generation.succeeded` | The Turbo video generation completed successfully. `data` contains `downloadUrl`, `creditConsumed` and `expiredAt`. | | `turbo_generation.failed` | The Turbo video generation failed (or timed out). An `error.code` is included. | The event `data` contains `id` (the task/thread ID), `status` and `turboThreadUrl`. Refer to [Webhook events](#tag/Webhook/Webhook-events) for the event body type definition, signature verification and sample payloads. humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - Turbo properties: - type: OpenAPI url: openapi/vyond-turbo-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-user-api name: Vyond User API description: APIs related to user humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - User properties: - type: OpenAPI url: openapi/vyond-user-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-video-api name: Vyond Video API description: The Video API from Vyond — 1 operation(s) for video. humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - Video properties: - type: OpenAPI url: openapi/vyond-video-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-video-export-api name: Vyond Video Export API description: APIs for video export humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - Video Export properties: - type: OpenAPI url: openapi/vyond-video-export-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - aid: vyond:vyond-webhook-api name: Vyond Webhook API description: >- 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 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 ```typescript type 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" } } ``` humanURL: https://api.vyond.com/doc/ baseURL: https://api.vyond.com tags: - Webhook properties: - type: OpenAPI url: openapi/vyond-webhook-api-openapi.yml - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API maintainers: - FN: Kin Lane email: kin@apievangelist.com - FN: APIs.json email: info@apis.io common: - type: AgenticAccess url: agentic-access/vyond-agentic-access.yml - type: DomainSecurity url: security/vyond-domain-security.yml - type: Authentication url: authentication/vyond-authentication.yml - type: Website url: https://www.vyond.com/ - type: Documentation url: https://api.vyond.com/doc/ - type: APIReference url: https://api.vyond.com/doc/ - type: GettingStarted url: https://help.vyond.com/hc/en-us/articles/51873650828052-How-do-I-use-the-Vyond-API - type: Support url: https://help.vyond.com/hc/en-us - type: HelpCenter url: https://help.vyond.com/hc/en-us - type: Blog url: https://www.vyond.com/blog/ - type: Pricing url: https://www.vyond.com/plans/ - type: SignUp url: https://think.vyond.com/signup - type: TermsOfService url: https://www.vyond.com/terms/ - type: PrivacyPolicy url: https://www.vyond.com/privacy/ - type: TrustCenter url: https://www.vyond.com/trust-center/ - type: Compliance url: https://www.vyond.com/trust-center/ - type: ChangeLog url: https://product.vyond.com/ - type: SecondaryMarket url: https://forgeglobal.com/vyond_stock/ - type: Packages url: packages/vyond-packages.yml - type: WellKnown url: well-known/vyond-well-known.yml - type: MCPCandidate url: mcp/vyond-mcp.yml - type: LLMsTxt url: llms/vyond-llms.txt - type: Overlay url: overlays/vyond-api-overlay.yaml - type: Conformance url: conformance/vyond-conformance.yml - type: ErrorCatalog url: errors/vyond-problem-types.yml - type: Lifecycle url: lifecycle/vyond-lifecycle.yml - type: OAuthScopes url: scopes/vyond-scopes.yml - type: Conventions url: conventions/vyond-conventions.yml - type: TrustCenter url: security/vyond-trust-center.yml - type: ChangeLog url: changelog/vyond-changelog.yml - type: DataModel url: data-model/vyond-data-model.yml - type: Webhooks url: asyncapi/vyond-webhooks.yml - type: AgentSkill url: skills/_index.yml - type: Arazzo name: Generate a Vyond video and export it url: arazzo/vyond-generate-and-export-video.yml - type: Arazzo name: Turbo text-to-video with a webhook subscription url: arazzo/vyond-turbo-with-webhook.yml - type: Arazzo name: Provision and deactivate a Vyond user over SCIM 2.0 url: arazzo/vyond-scim-provision-user.yml x-enrichment: date: '2026-08-05' status: enriched artifacts_added: 22 pass: local-v1