API reference · VEED

veed/avatars/text-to-video

Integrate this model through SandBase's unified API, with production-ready schemas and examples.

VIDEOAsyncOpen model
Production endpoint

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

POSThttps://api.sandbase.ai/v1/run
Model IDveed/avatars/text-to-video
01

Input Schema

2 parameters · 0 required · 2 optional

ParameterTypeRequiredDescription
textstringOptional—
avatar_idstringOptionalThe avatar to use for the video · Options: emily_vertical_primary, emily_vertical_secondary, marcus_vertical_primary, marcus_vertical_secondary, mira_vertical_primary, mira_vertical_secondary, jasmine_vertical_primary, jasmine_vertical_secondary, jasmine_vertical_walking, aisha_vertical_walking, elena_vertical_primary, elena_vertical_secondary, any_male_vertical_primary, any_female_vertical_primary, any_male_vertical_secondary, any_female_vertical_secondary, any_female_vertical_walking, emily_primary, emily_side, marcus_primary, marcus_side, aisha_walking, elena_primary, elena_side, any_male_primary, any_female_primary, any_male_side, any_female_side
emily_vertical_primaryemily_vertical_secondarymarcus_vertical_primarymarcus_vertical_secondarymira_vertical_primarymira_vertical_secondaryjasmine_vertical_primaryjasmine_vertical_secondaryjasmine_vertical_walkingaisha_vertical_walkingelena_vertical_primaryelena_vertical_secondaryany_male_vertical_primaryany_female_vertical_primaryany_male_vertical_secondaryany_female_vertical_secondaryany_female_vertical_walkingemily_primaryemily_sidemarcus_primarymarcus_sideaisha_walkingelena_primaryelena_sideany_male_primaryany_female_primaryany_male_sideany_female_side
02

Output Schema

FieldTypeDescription
idstringUnique identifier for the generation task
statusstringTask status: pending, running, completed, failed, timeout
modelstringModel used for the generation
outputsarrayArray of output items
outputs[].urlstringURL of the generated artifact
outputs[].content_typestringMIME type (e.g. image/png, video/mp4)
errorobject | nullError details if failed, null on success
error.typestringMachine-readable error type code
error.messagestringHuman-readable error description

Async Workflow

This model uses asynchronous execution. Submit a request and poll for the result.

  1. Submit — POST to /v1/run, receive an id
  2. Poll — GET /v1/run/{id} until status is completed, failed, or timeout
  3. Retrieve — Read outputs from the completed response
03

Code Examples

Ready-to-run snippets

const apiKey = process.env.SANDBASE_API_KEY;
const response = await fetch("https://api.sandbase.ai/v1/run", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "veed/avatars/text-to-video",
    "text": "\nEver wondered how to get that flawless glow? \nIntroducing our new skincare line, designed for real life. \nStep one: Cleanse with our gentle, nourishing formula. \nStep two: Apply our hydrating serum for that dewy look. \nStep three: Lock it in with our lightweight moisturizer. \nFeel the difference with every application. \nSee the glow? That's the magic of our skincare. \nUse code 'GLOW20' for an exclusive discount. \nJoin the skincare revolution today!\n"
  }),
});

if (!response.ok) throw new Error(await response.text());
let result = await response.json();
for (let attempt = 0; attempt < 120 && !["completed", "failed", "timeout"].includes(result.status); attempt++) {
  await new Promise((resolve) => setTimeout(resolve, 2_000));
  const poll = await fetch(`https://api.sandbase.ai/v1/run/${result.id}`, {
    headers: { Authorization: `Bearer ${apiKey}` },
  });
  if (!poll.ok) throw new Error(await poll.text());
  result = await poll.json();
}
if (result.status !== "completed") throw new Error(`Generation ended: ${result.status}`);
console.log(result);