AutoFeed API

Generate faceless videos, AI videos and UGC ads from your code.

One REST endpoint for all 8 AutoFeed video types. Send JSON, get a finished MP4 back by webhook. It runs on the same pipeline and the same credits as the dashboard, included with Ultimate.

Video types
8
AI video models
28
Creates
20 / min
Media kept
14 days

8 Video Types, One Endpoint

Every type the dashboard makes, with the same inputs and the same price. Each request below is checked against the live API schema.

AI Slideshow

ai_slideshow

A topic or brief in, a scripted and narrated faceless video out.

This example costs 1,200 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "ai_slideshow",
    "input": {
      "category": "History Facts",
      "topic": "How the Romans built roads that still exist today",
      "duration": "45 to 60 seconds",
      "substyle": "Painting",
      "format": "9:16"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-ai-slideshow"
  }'
AI Slideshow Video API →

Reddit Stories

reddit_stories

A subreddit style in, a narrated vertical story video out.

This example costs 1,000 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "reddit_stories",
    "input": {
      "subreddit": "AskReddit",
      "commentsCount": 3,
      "backgroundCategory": "Minecraft",
      "captionStyle": "YouTuber"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-reddit-stories"
  }'
Reddit Story Video API →

Would You Rather

would_you_rather

A topic in, an illustrated "Would You Rather" quiz video out.

This example costs 1,000 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "would_you_rather",
    "input": {
      "topic": "Superpowers with a catch",
      "numberOfComparisons": 8,
      "format": "9:16"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-would-you-rather"
  }'
Would You Rather Video API →

Pick One

pick_one

A topic in, a "Pick One" image video out.

This example costs 1,000 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "pick_one",
    "input": {
      "topic": "Pick your dream supercar",
      "numberOfImages": 5,
      "format": "9:16"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-pick-one"
  }'
Pick One Video API →

Fake Text

fake_text

A premise in, a voiced text-message story video out.

This example costs 1,000 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "fake_text",
    "input": {
      "topic": "A son texts his mom that he scratched her new car",
      "numberOfMessages": 10,
      "theme": "dark"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-fake-text"
  }'
Fake Text Video API →

A hook and your demo clip in, an avatar UGC ad out.

This example costs 1,000 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "ugc",
    "input": {
      "hook": "I cancelled four subscriptions after finding this app",
      "avatarSrc": "/ugc-templates/1.mp4",
      "demoSrc": "https://example.com/media/app-demo.mp4"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-ugc-ads"
  }'
AI UGC Ad Video API →

AI Video

ai_video

28 text-to-video and image-to-video models behind one endpoint.

This example costs 1,000 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "ai_video",
    "input": {
      "model": "Wan 3.0",
      "mode": "text_to_video",
      "textPrompt": "A slow dolly shot through a neon-lit night market in the rain, steam rising from food stalls",
      "duration": 5,
      "resolution": "720p",
      "format": "9:16"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-ai-video"
  }'
AI Video Generation API →

A YouTube link in, several captioned short clips out.

This example costs 6,500 credits

Show the curl request
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "yt_clips",
    "input": {
      "youtubeUrl": "https://www.youtube.com/watch?v=aqz-KE-bpKQ",
      "clipCount": 5,
      "enableHook": true,
      "format": "9:16"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-youtube-clips"
  }'
YouTube Clipping API →

From Request to MP4

The whole lifecycle. Webhooks are the main path; polling is the fallback.

  1. 1

    Create a key

    On Ultimate, open API Keys in the dashboard and create a key. Keys are shown once and belong on your server, never in a browser or an app bundle.

  2. 2

    POST /v1/videos

    Send the type, its input and an optional webhookUrl to https://www.autofeed.ai/api/v1/videos. Invalid input is a 400 that names the field. A valid request returns 202 with the job id and its exact cost in credits, which is charged then.

  3. 3

    We render it

    The job runs on the same pipeline as a dashboard video: script, images, voice, captions and render, depending on the type.

  4. 4

    Get the webhook

    When the video is done we POST a video.completed event to your webhookUrl, signed with an X-Autofeed-Signature header (HMAC-SHA256 over the timestamp and body). Failed deliveries are retried with backoff. Prefer polling? GET /v1/videos/{id} returns the same body.

  5. 5

    Download the file

    The url in the event points at the rendered MP4. Media is deleted after 14 days, so copy it to your own storage.

The Webhook You Receive

Verify the signature, answer 2xx quickly, then fetch the file. GET /v1/videos/{id} returns the same body.

Headers
POST /webhooks/autofeed HTTP/1.1
Content-Type: application/json
X-Autofeed-Event: video.completed
X-Autofeed-Signature: t=1793620000,v1=6a3c9f1e...
Body
{
  "id": "1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11",
  "type": "ai_slideshow",
  "status": "completed",
  "error": null,
  "costInCredits": 1200,
  "createdAt": "2026-11-02T12:00:00.000Z",
  "completedAt": "2026-11-02T12:03:41.000Z",
  "url": "https://.../1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11.mp4"
}

Pricing: Included With Ultimate

No separate API plan. Pick the Ultimate size that covers your volume; bigger sizes cost less per credit.

Ultimate sizeCredits / month$ / 1k credits≈ Reddit Stories videos / monthCheckout
$249/mo180k$1.38180
$449/mo500k$0.90500
$799/mo1M$0.801,000
$1,399/mo2M$0.702,000
  • Credits are the same as the dashboard: one balance, one price per video, whichever door it comes through.
  • API videos and your autoposting series spend the same balance. There is no reserve held back for autoposting, so size your plan for both.
  • Every response tells you what the request cost. A render that fails refunds its credits automatically.
  • Run low? Credit packs top up the same balance, or move to a bigger Ultimate size.

Limits and Guarantees

Create requests

20 / minute

Per account, not per key, so a second key does not double it. Over the limit is a 429 with Retry-After, and nothing is charged.

Read requests

120 / minute

Status and list calls. Use webhooks instead of tight polling loops.

Out of credits

402

INSUFFICIENT_CREDITS before any work starts, nothing queued. A past-due subscription answers 402 PAYMENT_REQUIRED.

Media storage

14 days

Rendered files are deleted after that. Download what you keep.

Retries

idempotencyKey

Send the same key again and you get the original job back instead of a second charge.

API Questions, Answered

Which plan includes the API?

Ultimate, at every size. Hobby and Pro do not include API access, and there is no separate API plan to buy.

Do API videos cost the same as dashboard videos?

Yes. The API prices every request with the same function the dashboard uses and spends the same credit balance. The cost is in the 202 response.

What happens when I run out of credits?

The create call answers 402 INSUFFICIENT_CREDITS before anything is queued or charged. Buy a credit pack or move to a bigger Ultimate size, then retry.

What if a video fails to render?

The job ends with status "failed", an error message, and its credits refunded to your balance automatically.

How long are the videos stored?

14 days. Download each file when its webhook arrives.

Can I call the API from a browser or a mobile app?

No. Keys are secrets and the API is meant to be called from your backend. If your own users trigger videos, queue their requests on your server and call us from there.

Does the API post videos to social accounts?

No. The API returns video files. Scheduled posting to TikTok and YouTube Shorts is a dashboard feature (series and autoposting), not part of the API.

Webhooks or polling?

Webhooks. Each video.completed event is signed so you can verify it came from us, and failed deliveries are retried. GET /v1/videos/{id} is there as a fallback and returns the same body.

Start Building

Read the reference, then create a key on Ultimate. Your first request is one curl away.