Skip to main content
← Videos Endpoint: POST https://makelocalads.com/api/v1/videos Permission: videos:generate

Open in LocalAds

The create-video dialog in the product’s Video Ads studio.
Make a video from any recipe the app offers: a 30 second UGC voiceover, a Pixar style story, a podcast clip, a song and more. List them, with each one’s length range and top price, from GET /video-recipes. You make the same choices as the app’s create-video dialog: the recipe, the audience and the language. We write a story for that audience (or follow story_idea, your own idea in your words), write the script, draw the cast, pick their voices and render it.

Usage notes

  • audience_id is required: a saved audience of the product, or null for a deliberately broad video. Omitting it is an error.
  • The product’s plan must include Video Ads.
  • The recipe’s top price (max_credits in GET /video-recipes) is charged when the request is accepted. Once the script is written, the video costs what it runs to and the rest is refunded, so credits_charged on the video drops to its real price. It never costs more than the top price.
  • max_credits refuses the request with 422 before anything is charged if the recipe’s top price is more. A video that fails is refunded in full.
  • A recipe made in a style or footage look (stylized animation, found footage) is made in its first one.
  • Send an Idempotency-Key so a retry after a network failure never starts and charges for a second video.

List the recipes

cURL

Quick start

Input fields

string
required
recipe for a recipe video. Use animation to animate a photo instead.
string
required
The product the video is for.
string
The recipe, from GET /video-recipes. Defaults to the 30 second UGC voiceover, ugc-30s-voiceover.
string
required
A saved audience of the product, from GET /products/{product_id}/audiences, or null for a deliberately broad video.
string
default:"English"
The language the video is spoken in, such as English, Hindi or Hinglish.
string
Your own idea for the story, in your words, up to 2,000 characters. The story and script keep to it. Leave it out and we write the story.
integer
Refuse the request with 422 credit_limit_exceeded, before anything is charged, if the recipe’s top price is more than this many credits.

Response

202 Accepted:
The title is the recipe’s until the story is written, then the story’s. duration_seconds and credits_charged start at the recipe’s top length and price, and settle to the real ones once the script is written. A video is usually ready in about 10 to 15 minutes. Poll GET /videos/{video_id} with backoff until status is completed or failed; see Polling. A completed video carries video_url and thumbnail_url.

Errors

See Errors and retries for the error format.
Last modified on October 25, 2026