Tools
Classic formats
The older layout engine. Only used when you ask for it by name.
ReelFarm's older layout engine. Agents only use it when you name a classic format or ask for create_post.
create_post
Make a slideshow with a classic format and return its preview images.
Parameters
textstringYour finished copy (a tweet, a paragraph, a long post). It is split across the slides in order, keeping your wording; it's only trimmed where a sentence can't fit. The number of body slides follows the text's length unless slide_count is set.
contentstringSource material to rewrite into a post (notes, an article excerpt). Its meaning is kept, but the copy is rewritten in the format's style. Use text instead to keep your wording.
topicstringA prompt for what to write, e.g. "make it about 5 habits that changed my mornings, funny tone". Use this when you don't have the text yet.
formatstringFormat id (fmt_123) or exact name from list_formats. Defaults to the account's default format.
slidesobject[]The preferred input: exact text per slide that you wrote (or split from the user's copy) to fit the format's slots and word limits, keyed by slot name, in order: hook slides, then body, then CTA. Skips ReelFarm's AI writing, so it's faster. Example: [{"hook":"..."},{"body":"..."}]
slide_countnumberTotal number of slides. Must be within the format's range.
images"auto" | string[]"auto" (default) uses the format's image setup or finds matching images. Or a list of public https image URLs, used for slides in order.
tonestringOverride the format's writing tone, e.g. "witty and blunt".
languagestringLanguage to write in natively, e.g. "Spanish". Defaults to the format's language, else English.
waitbooleanWait for the rendered previews before returning (default true). If false, returns immediately; poll get_post.
content_type"slideshow"Only "slideshow" for now.
get_post
Read a classic post's status, slides and preview images.
Parameters
post_idstringrequiredThe post id returned by create_post, e.g. "post_48213".
edit_slide
Change one slide's text, placement, size, style, color, overlay or image.
Parameters
post_idstringrequiredThe post id returned by create_post, e.g. "post_48213".
slidenumber | stringrequiredWhich slide: a 1-based number, "first", "last", or a slide_id from get_post.
itemnumber | stringWhich text item: a slot name (e.g. "hook", "body"), a 1-based number, or an item_id. Leave out to change every item on the slide, or for slide-level changes.
textstringNew text for the item. Must fit the slot's word limit.
rewritestringAn instruction for the AI to rewrite the item's text within its limit, e.g. "make it punchier".
alignstringHorizontal placement of the text and its box.
leftcenterrightpositionstringVertical placement of the slide's whole text block (slide-level; leave out item).
topcenterbottomsizestringsmall, medium, large, xl, or a pixel size like "18px".
widthstringnarrow, medium, wide, full, or a percentage like "60%".
stylestringA style preset: classic, bubble_white, bubble_black, soft_white, plain_white, headline, serif, serif_italic.
colorstringText color from the palette (white, black, yellow, pink, red, ...), keeping the current style.
overlaystringDarkening over the image. Applies to every slide in this slide's section (hook, body or CTA).
nonelightmediumdarkimage_urlstringReplace the slide's image with this public https URL.
waitbooleanWait for the new preview before returning (default true).
list_formats
List the classic formats: yours and ReelFarm's built-ins.
Parameters
include_builtinbooleanInclude ReelFarm's built-in formats (default true).
save_format
Save a classic post's layout as a reusable format.
Parameters
post_idstringrequiredThe post id returned by create_post, e.g. "post_48213".
namestringrequiredName for the format. Must be unique on the account.
when_to_usestringrequiredOne sentence on what content this format suits. Agents use it to pick formats.
slot_namesobjectRename slots, e.g. {"body": "tip", "body_2": "explanation"}.
limitsobjectWord limits per slot, e.g. {"hook": {"max_words": 8}}. Defaults come from the post's current text.
purposesobjectWhat each slot should contain, by slot name.
tonestringWriting tone for posts made with this format.
body_template_slidenumberWhich body slide's layout to use when body slides differ (1-based).
make_defaultbooleanUse this format when create_post is called without one.