Skip to content

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

  • contentobjectrequired
    Fields
    • titlestringrequired

      min length 1 · max length 220

    • eyebrowstring

      min length 1 · max length 60

    • bodystring

      min length 1 · max length 420

    • bulletsarray<string>

      at least 1 items · at most 6 items

    • statstring

      min length 1 · max length 16

    • attributionstring

      min length 1 · max length 80

    • ctastring

      min length 1 · max length 40

  • templatestring

    one of headline, quote, stat, list, photo · default "headline"

  • formatstring

    one of square, portrait, landscape, link, story, pin, x_header, linkedin_banner · default "square"

  • themestring

    one of brand, light, dark · default "brand"

  • includeLogoboolean

    default true

  • handlestring

    min length 1 · max length 40

  • backgroundImageobject
    Fields
    • assetIdstring (uuid)
    • urlstring (uri)

      max length 2000

  • aiBackgroundobject
    Fields
    • promptstringrequired

      min length 3 · max length 800

    • modelstring

      min 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.

tools/call
{
"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.