create_branded_image
posts:writeuses credits
Render an on-brand social image (PNG, or SVG too) from a template filled with your copy, in the workspace's brand colours, fonts and logo. It takes about a second and returns public image URLs to show the user. Templates: headline, quote, stat, list, photo; formats: square, portrait, landscape, link, story, pin, x_header, linkedin_banner (alsoFormats renders the same design in more sizes at once); themes: brand, light, dark.
Write short copy: a title under about 12 words reads best. Call list_visual_options for what each template uses. aiBackground.prompt adds an AI-generated background from an OpenRouter image model (no text in it, the copy is set on top); it takes 5 to 20 seconds and costs money, so use it only when the user wants imagery.
To use the user's own photo instead, pass backgroundImage (an assetId from create_media_upload or import_media_from_url, or an https url), usually with the photo template; it costs nothing extra. Nothing is attached to a post yet: to post the image, pass the returned postMedia as media to create_draft_post or update_post.
Input
contentobjectrequiredFields
titlestringrequiredmin length 1 · max length 220
eyebrowstringmin length 1 · max length 60
bodystringmin length 1 · max length 420
bulletsarray<string>at least 1 items · at most 6 items
statstringmin length 1 · max length 16
attributionstringmin length 1 · max length 80
ctastringmin length 1 · max length 40
templatestringone of
headline,quote,stat,list,photo· default"headline"formatstringone of
square,portrait,landscape,link,story,pin,x_header,linkedin_banner· default"square"themestringone of
brand,light,dark· default"brand"includeLogobooleandefault
truehandlestringmin length 1 · max length 40
backgroundImageobjectFields
assetIdstring (uuid)urlstring (uri)max length 2000
aiBackgroundobjectFields
promptstringrequiredmin length 3 · max length 800
modelstringmin length 3 · max length 120
alsoFormatsarray<string>at most 7 items
outputsarray<string>at least 1 items · at most 2 items · default
["png"]
Permission
Needs the posts:write scope: create drafts. It changes your workspace, so clients may ask you to confirm each call.
Example call
Your assistant sends this for you. It is shown so you can see the shape of a call, with placeholder values for the required fields.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "create_branded_image", "arguments": { "content": { "title": "string" } } }}Same action over the REST API
The tool runs POST /v1/orgs/{orgId}/marketing/visuals/image as the signed-in user, with the same validation, approval rules and limits. See it in the Visuals API reference.