---
name: fablori
description: Make finished, narrated videos with Fablori from one sentence (story videos, short ads, explainers) or from a public website (launch videos). Use when the user asks for a video, a promo, an ad, a launch video, a product explainer or a social clip (wide, tall or square). Each video costs one video from the user's Fablori balance ($5, or a plan video).
---

# Fablori video

Fablori turns one sentence, or a website, into a finished video: script, storyboard,
real stock photos and footage, a narrator, music and captions. You send the request,
Fablori plans and renders it, and you get an MP4 back in a few minutes.

## Before you start

- The user needs a Fablori API key. They create one at https://fablori.com/developers
  and keep it in the environment as `FABLORI_API_KEY`. Never print the key or put it
  in a URL.
- **Every video costs one video from their balance** ($5 pay as you go, $4 on Creator, $3 on Studio, or a video
  from their monthly plan). Say so and get a clear yes before you create one. Check
  the balance first with `GET /api/v1/account`.
- If the balance is empty, the API answers 402 with `buy_more_url`. Give the user
  that link; do not retry.

## Make a video

1. Write the brief in one or two sentences: who it is for, what it should say, the
   feeling, and how it should end (for example a web address or "book a table").
   Use only facts the user gave you. No invented numbers, prices or claims.
2. Create it:

```bash
curl -s https://fablori.com/api/v1/videos \
  -H "Authorization: Bearer $FABLORI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A 30-second video for Harbour Coffee, a small roaster in Lisbon that now delivers fresh beans every Friday. Warm, ending on: order by Thursday.", "aspect": "16:9", "seconds": 30, "style": "warm"}'
```

   For a launch video made from a website's own colours, fonts, logo and pages, send
   `"website": "example.com"` instead of `prompt` (an optional `prompt` becomes notes).

   Options: `aspect` is `16:9` (default), `9:16` (Reels, TikTok, Shorts) or `1:1`;
   `seconds` is the target length (the plan sets the maximum); `style` is one of
   clean, bold, warm, dark, playful, editorial, cinematic, tech, minimal, retro, luxe.

3. The reply has an `id` and `status: "planning"`. Poll every 20 to 30 seconds:

```bash
curl -s https://fablori.com/api/v1/videos/$ID -H "Authorization: Bearer $FABLORI_API_KEY"
```

   `status` goes planning, rendering, done (or failed, in which case the video was
   handed back to the balance). `progress` says what is happening. A 30-second video
   usually takes three to eight minutes.

4. When `status` is `done`, download it (the URL needs the same key):

```bash
curl -sL -o video.mp4 -H "Authorization: Bearer $FABLORI_API_KEY" "$DOWNLOAD_URL"
```

   To give the user a link anyone can watch, turn sharing on:
   `POST /api/v1/videos/$ID/share` with `{"public": true}` returns `watch_url`.
   `studio_url` opens the video in the Fablori studio, where they can change the
   storyboard and render a new cut.

## Other calls

- `GET /api/v1/videos` lists recent videos with their status.
- `GET /api/v1/styles` lists styles, shapes and launch-video tones.

## MCP instead of HTTP

If the agent supports MCP, the same actions are tools on Fablori's MCP server:
`https://fablori.com/api/mcp` with the header `Authorization: Bearer <key>`.
Tools: `create_video`, `get_video`, `list_videos`, `share_video`, `account`.
