# Fake Text Video API

> Generate text-message conversation videos with an API call: 6 to 14 messages, a different voice for each side, dark or light phone theme.

- Canonical page: https://www.autofeed.ai/video-api/fake-text
- API reference: https://www.autofeed.ai/docs/api
- Publisher: AutoFeed.ai (https://www.autofeed.ai)

Send a story premise. AutoFeed writes the conversation, plays it out message by message on a phone screen, voices both sides and returns the video.

- 6 to 14 messages per conversation
- A separate voice for each side of the thread
- Dark or light phone theme, optional video background
- Optional earlier messages above the story for context

## Example request

Costs 1,000 credits, the same as in the dashboard.

```bash
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"
  }'
```

202 Accepted:

```json
{
  "id": "1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11",
  "type": "fake_text",
  "status": "processing",
  "costInCredits": 1000,
  "createdAt": "2026-11-02T12:00:00.000Z"
}
```

`video.completed` webhook body:

```json
{
  "id": "1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11",
  "type": "fake_text",
  "status": "completed",
  "error": null,
  "costInCredits": 1000,
  "createdAt": "2026-11-02T12:00:00.000Z",
  "completedAt": "2026-11-02T12:03:41.000Z",
  "url": "https://.../1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11.mp4"
}
```

## Input fields

| Field | Type | Default | Notes |
|---|---|---|---|
| `topic` (required) | string (max 2000) | - | Required. The premise the conversation is written from. |
| `numberOfMessages` | integer 6-14 | 10 |  |
| `historyMode` | "auto" \| "always" \| "never" | "auto" | Whether to show earlier messages above the story: "auto", "always" or "never". |
| `backgroundCategory` | "None" \| "Minecraft" \| "GTA V" \| "Subway Surfers" \| "Fortnite" \| "Satisfying" | "None" | "None" is the plain phone canvas; the others put a background video behind it. |
| `theme` | "dark" \| "light" | "dark" |  |
| `music` | string (max 255) | "" (none) |  |
| `voiceThem` | string | "cgSgspJ2msm6clMCkdW9" | Voice for the other person (left, grey bubbles). |
| `voiceMe` | string | "TX3LPaxmHKxFdv7VOQHJ" | Voice for the phone owner (right, blue bubbles). |
| `format` | "9:16" \| "16:9" \| "1:1" | "9:16" |  |

Included with Ultimate. Rendered files are kept for 14 days.

## Frequently asked questions

### Can I write the messages myself?

Not through this type. You send the premise and the message count; the conversation is written for you.

### How is a Fake Text video billed?

From the same credit balance as the dashboard, at the same price per video. The cost is in the 202 response before any work starts, and a failed render refunds it.
