Mobile app ad video generator API: creator demos, end cards

Make a mobile app ad with the Sume API: run sume-mobile-app-ugc with app screenshots, add a logo end card, and join both clips with Timeline 1.0.

6 min readSume
All posts

To make a mobile app ad video with the Sume API, run the catalog Format sume-mobile-app-ugc at POST /v1/formats/sume/sume-mobile-app-ugc/runs with app screenshots attached and the app's details in input. For a branded intro or end card, run sume-logo-motion-design on your app icon, then join the two clips with POST /v1/timeline-1.0/render.

The facts below come from Sume's Format catalog, Create a run, Timeline 1.0, and Audio detach docs, read on 2026-09-27. A presenter who reads your exact script is the Avatar 1.0 route, covered in AI UGC ad generator API.

Which catalog Formats fit an app ad?

Three video Formats name app or tech work in their descriptions; each ends “Not for: static campaign deliverables.” The quoted wording is each Format's stated aim, not a guarantee about any one video.

Quoted from each Format's description, which GET /v1/formats/sume/{slug} returns; slugs from the Format catalog, read 2026-09-27.
SlugStated aimUse when the brief is for
sume-mobile-app-ugc“a relatable creator, a visible phone, and a clear app benefit or reaction”“consumer app testimonials, app discovery hooks, phone demonstrations, and creator-led SaaS ads”
sume-logo-motion-design“reveals a supplied brand mark through clean material, light, depth, or graphic movement”“logo idents, brand stings, app intros, launch bumpers, and social end cards”
sume-cinematic-studio-commercial“premium lighting, macro product detail, precise art direction, and a high-end camera move”“flagship product launches, technology ads, luxury objects, and polished brand campaigns”

What should I send about the app?

Screenshots go in attachments as input_image entries with public HTTPS URLs: JPEG, PNG, WebP, GIF, or AVIF, 30 MB each. Facts about the app go in input, a JSON object of at most 64 top-level keys and 2 MiB. Sume publishes no field list for it: you choose the key names. It is written whole to a file in the run, and the agent is told to read it as data, never as instructions.

Media URLs in input share the run's budget of 30 files, at most 10 of them videos, so a screen-recording URL counts as one video. Only URLs whose filename ends in a media extension count; a store-listing page URL does not.

curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-mobile-app-ugc/runs" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: budget-app-v4-ugc-v1" \
  -d '{
    "instruction": "Vertical creator ad: finds the app, reacts to the bill-split screen.",
    "input": {
      "app_name": "Acme Budget",
      "store_url": "https://example.com/apps/acme-budget",
      "benefit": "Splits shared bills in two taps"
    },
    "attachments": [
      { "type": "input_image", "image_url": "https://example.com/screens/home.png" },
      { "type": "input_image", "image_url": "https://example.com/screens/split.png" }
    ],
    "generation_spend_cap_usd": 25
  }'

How do I add an app intro or end card?

Run sume-logo-motion-design with the app icon attached; its description works from “a supplied brand mark”. Making the card itself is covered in Logo animation API.

Both runs return durable media.sume.com URLs in artifacts[], and a run's media belongs to the key that called it. That matters because Timeline 1.0 takes nothing else: every URL must already be this workspace's media.sume.com artifact or asset, so render with a key from the workspace that ran the Formats.

How do I join the creator cut and the card?

Timeline 1.0 renders one MP4 from one audio spine plus ordered video[] slots, so the ad's sound is the spine. Detach each clip's audio with POST /v1/audio-detach (a sample-exact wav by default) and list the files in audio.parts[] in playing order. A clip with no audio track fails with detach_source_has_no_audio, so check probe.has_audio with video inspect first. If the card is silent, start it over the creator's closing seconds and use the creator audio alone as the spine.

  • video[0].start must be 0 and later starts must increase. Declared part lengths that sum to less than audio.duration_seconds are refused.
  • A transition goes on slots after the first (fade, dissolve, wipes, or slides), at most 1 second and at most half the shorter neighbor.
  • For an intro, put the card first at start: 0 and the creator cut after it. The default output is 1080×1920.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: budget-app-v4-ad-v1" \
  -d '{
    "audio": {
      "duration_seconds": 18,
      "parts": [
        { "url": "https://media.sume.com/artifacts/artf_demo/creator.wav", "duration": 15 },
        { "url": "https://media.sume.com/artifacts/artf_demo/card.wav", "duration": 3 }
      ]
    },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/creator.mp4", "start": 0, "duration": 15 },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/card.mp4", "start": 15, "duration": 3,
        "transition": { "type": "fade", "duration": 0.5 } }
    ]
  }'

What does it cost, and what are the limits?

Each Format run meters generation at the API pricing rates under its generation_spend_cap_usd, up to $500. A Timeline render is listed at $0.10 per output minute, reserved as the spine's length rounded up to whole minutes, and each audio detach has a flat per-job rate on the Audio detach page, each plus a 5.5% agent fee by default. POST /v1/timeline-1.0/plan checks a render body without billing; see Validate a timeline before rendering.

  • A Format run takes 30 media files in total, at most 10 of them videos and 10 audio, counting attachments and media URLs in input.
  • Timeline: a spine of 1–1,800 seconds, 1–200 video[] slots, and up to 20 audio.parts[].
  • Audio detach: a source of up to 1,800 seconds and an output of up to 900 seconds.
  • Each Format's description is its stated aim. The Format's tools choose the models, and a run that cannot finish comes back failed.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume