Skip to main content
POST

Overview

Makes a reaction of one of your team’s own avatars, the same way Studio → Actors → Reactions does in the dashboard: a still of the avatar making the face, animated into a short silent clip (5-6 seconds). The call answers 202 at once; the reaction takes about 1-3 minutes. Follow it in Get Avatar under reactions. Once the reaction is COMPLETED, its id is an avatarId for Create Hook Demo, and it is listed in GET /v1/catalog/reactions next to the library reactions. A reaction that is not finished is refused by Hook Demo with 400.
Managed teams pay the still plus the clip at the models picked, the same price the dashboard quotes: 52 credits with the defaults (GPT Image 2 + Grok Imagine). It is charged now and refunded if the reaction fails. BYOK teams pay no credits; the team’s own OpenRouter key is used.
The avatar must be COMPLETED. Library avatars already have their reactions in the catalog; this endpoint is for your own avatars.

Errors

Authorizations

x-api-key
string
header
required

Headers

Idempotency-Key
string

Makes the request safe to retry. 1-255 printable ASCII characters, one per operation (your job id, or a UUID you store), reused on every retry. Within 24 hours the same key with the same body answers with the first response and the header Idempotent-Replayed: true, without running or charging again. Keys are scoped to your team and the endpoint. 5xx answers and refusals before anything ran (401, 402, 403, 409, 429) are not kept. See Idempotency.

Required string length: 1 - 255
Pattern: ^[\x20-\x7E]+$

Path Parameters

avatarId
string
required

The id of one of your team's own avatars (from List Avatars with type=custom, or a create call). Library avatars are not accepted here.

Body

application/json
reaction
enum<string>
required

The face to make. custom takes your own customPrompt.

Available options:
surprise,
shock,
excitement,
smirk,
confusion,
disgust,
happy,
laughing,
whispers,
nervous,
frustrated,
crying,
turn_reveal,
side_look,
double_take,
lean_in,
custom
customPrompt
string

What the avatar does, for reaction: custom (required then). Ignored for the other reactions.

Maximum string length: 1000
model
string
default:gpt_image_2

Image model for the still: an id of GET /v1/catalog/image-models.

videoModel
enum<string>
default:grok_imagine_video

Video model for the clip, cheapest first.

Available options:
grok_imagine_video,
seedance_2_0_fast,
seedance_2_0_mini,
seedance_2_0,
kling_3_0,
wan_2_7_i2v

Response

Reaction started

success
boolean
required
data
object
required

A Hook + Demo reaction of one of your avatars: a short clip of the avatar making a face, used as avatarId in Create Hook Demo once COMPLETED.

message
string