Fablori for developers and agent builders

Video as one API call.

Send a sentence or a website. Get back a finished, narrated MP4 in a few minutes, from your code or from your agent's tools.

REST API, MCP server and an agent skill on one key. Get an API key

The whole integration
curl https://fablori.com/api/v1/videos \
  -H "Authorization: Bearer $FABLORI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Explain compound interest to new savers", "seconds": 40}'

The call

One POST makes one video. You send what it should say, in a sentence or two, or the address of a public website. Fablori's director writes the voiceover and the storyboard, a scout finds real royalty-free photos and moving footage, one narrator reads it in one take, licensed music goes under the voice, and captions go on top.

The reply comes back at once with an id. Nothing waits on your connection: you ask for the status when it suits you, and download the file when it says done.

Keys look like fab_live_ followed by a long random tail. Send one as Authorization: Bearer or X-API-Key. Each key is shown once and stored only as a hash; an account can hold ten.

Fig. 1. The call, line by line
  1. curl https://fablori.com/api/v1/videos \1 One endpoint for story, launch and ad videos. Up to 10 creates a minute per account.
  2. -H "Authorization: Bearer $FABLORI_API_KEY" \2 Keep the key in the environment. A bad or revoked key gets a 401 that says so.
  3. -H "Content-Type: application/json" \3 JSON in, JSON out.
  4. -d '{"prompt": "...", "seconds": 40}'4 prompt is 10 to 2000 characters. Or send website instead for a launch video.
// 200, straight away
{ "id": "ebe1f62b-7489-44c4-9dec-d06d5136f17a",
  "status": "planning",
  "progress": "the director is writing the storyboard" }

After the call

  1. planningCharged now, one video from your balance, against the length you asked for. The director writes the storyboard. The API does not stop for approval.
  2. renderingFootage found and credited, one narrator, music mixed under, captions. A few minutes.
  3. donedownload_url needs the same key. studio_url opens it in the studio to change the storyboard and cut again.
  4. failedThe take did not finish and the video goes back to your balance. error says why.
Fig. 2. GET /api/v1/videos/:id, polled every 20 to 30 seconds. Fields as the API returns them; title and length from the explainer in our gallery.

Shapes and formats

Three fields decide what comes back. aspect picks one of three shapes. ad_format picks one of six YouTube ad formats and, when you send it, fixes both the shape and the length. style picks one of eleven looks for a story video.

Plate 1. aspect
A frame from The Fox and the Rain, a wide fable."16:9"wide, the default
A frame from Your Time to Train, a vertical gym ad."9:16"tall, for Reels, TikTok, Shorts
"1:1"square
Table 1. ad_format. Each one is a hard cap: the render never runs a second over, captions are on.
valueformatlengthshapeskip
bumper6Bumper6 s16:9cannot be skipped
instream15Non-skippable15 s16:9cannot be skipped
skip30Skippable30 s16:9after 5 s
skip60Skippable, long60 s16:9after 5 s
shorts15Shorts ad15 s9:16swipeable
shorts30Shorts ad30 s9:16swipeable

GET /api/v1/styles returns all of it, styles, aspects, tones and ad formats, and needs no key.

Launch videos (from website) take their colours, fonts and logo from the site instead of a style.

Now set your own.

Set your own call

A specimen page. Every setting below re-sets the request four ways, with the limits the API really applies. Blue marks the lines that just changed.

This page is setting the specimen as you scroll. Change anything to take over.

Make it from

0 characters. Load a real brief:

aspect
style story videos
ad_format optional
Fig. 4a. curl
Fig. 4b. The JSON body
Fig. 4c. fetch(), Node 18 or later
Fig. 4d. The same call as the MCP tool create_video

Notes on this request

    For agents

    The same calls are tools on Fablori's MCP server at https://fablori.com/api/mcp. It speaks streamable HTTP, stateless JSON-RPC 2.0, with the same key and the same balance as the API. In Claude Code it is one line:

    claude mcp add --transport http fablori https://fablori.com/api/mcp --header "Authorization: Bearer fab_live_..."

    Any other MCP client takes the same address and header. When the agent connects, the server tells it what a video costs and to poll get_video every 20 to 30 seconds until the status is done.

    Table 2. The five tools, from tools/list
    create_videoMake a video from prompt or website, with optional aspect, seconds, style, ad_format. Returns an id at once.
    get_videoStatus, scenes, and when done a download_url and studio_url.
    list_videosThe most recent videos on the account, up to 50.
    share_videoTurns on a public watch link for a finished video, or off again.
    accountVideos left, the price per video, where to buy more.

    The skill file

    For agents that read skills, Fablori publishes one. It tells the agent how to write a brief, which fields to send, how to poll, and when to stop. It also tells it to say what a video costs and get a clear yes before it spends one.

    Save it into your agent's skills folder, for Claude Code that is .claude/skills/fablori/, and keep your key in FABLORI_API_KEY.

    ---
    name: fablori
    description: Make finished, narrated videos
      with Fablori from one sentence (story
      videos, short ads, explainers) or from a
      public website (launch videos). ...
    ---
    
    ## Before you start
    
    - The user needs a Fablori API key. ...
    - Every video costs one video from their
      balance ... Say so and get a clear yes
      before you create one.
    - If the balance is empty, the API answers
      402 with buy_more_url. Give the user that
      link; do not retry.
    Plate 2. From /skills/fablori/SKILL.md, shortened where marked.

    What a call costs

    A call that makes a video costs one video from the same balance as the studio. Your first video is free once you confirm your email, through the API too. After that a video is $5 pay as you go, $4 on Creator, or $3 on Studio.

    It is charged when you create it, against the length you asked for. If the render does not finish, the video goes back to your balance. When there is nothing left, the API answers 402 with a buy_more_url. Status checks, lists and downloads cost nothing.

    Table 3. Per call, by plan
    planper videolongestalso
    First videofree30 s, 720psmall end card
    Pay as you go$560 s, 1080pno end card, kept until used
    Creator, $20 a month$4, 5 included90 sextra videos $4
    Studio, $45 a month$3, 15 included3 minextra $3, all three shapes from one storyboard, front of the queue

    Colophon

    This page was set in Literata and Red Hat Mono. Every request printed on it uses the field names, limits and messages of /api/v1 and /api/mcp as they run today, and every video on it was made by Fablori.

    To make your first one, get an API key and send the call from chapter IV, or hand your agent the skill file and let it ask you first.