Skip to main content

Overview

Hook + Demo videos open on a short avatar reaction clip with your hook text on screen, followed by your demo media. Perfect for social media marketing, product teasers, and viral content. avatarId here is an avatar reaction ID, not an ID from /v1/avatar/list. It is a string: one of the library reactions ("1" to "38") or the ID of a custom reaction your team created. Get Catalog with name=reactions lists both, with a thumbnail of each. media takes IDs of images or videos in your media library, shown in the order you list them. An ID that does not exist or belongs to another team answers 400 with media: Media "<id>" not found.

Quick Example

The create call answers with the projectId. The video then renders: poll GET /v1/project/{projectId} until data.video.status is COMPLETED, or pass a webhook.

Complete Example with All Options

Parameters

Text presets: modern, tiktok, social, impact, slicedText, minimalMonochrome, highlight, gradient, neonFuture, avantGarde, glassmorphic, stageEffect, neonEffect, glowEffect, wrapEffect.
A Hook + Demo costs 7 credits in managed mode. Teams in bring-your-own-keys mode are not charged credits for generation, but need their own OpenRouter key in Settings → AI keys; without it the call answers 402 with code: "missing_credentials" and the missingProviders list. To retry a create call after a timeout or 5xx, send it with an Idempotency-Key: the same key never creates or charges twice.

Tips for Hook + Demo Videos

Hook in first 2 seconds: Your text should grab attention immediately
Use action words: “Wait for it”, “Watch this”, “POV:” work great
Match media to message: The demo should deliver on the hook’s promise
Keep it vertical: 9:16 ratio performs best on TikTok, Reels, and Shorts

Effective Hook Formulas

Use Cases

  • Product Teasers: Build anticipation for launches
  • Social Proof: Showcase results or testimonials
  • Tutorial Hooks: Tease how-to content
  • Behind the Scenes: Reveal interesting processes
  • Before/After: Show transformations

Handling the Webhook Response

Webhooks are signed: check the Hooked-Signature header as shown in Webhooks.