AI images for posts
Make up to 4 AI images for a post from a description or its caption. Each one is saved to your media library.
Describe an image, or use the post's caption, pick a shape for your platforms, and get up to 4 options. Each image is stored and added to your media library, so you can use it in any post.
Making an image never posts anything. AI images are on the Studio, Pro and Agency plans.
Monthly allowance
Each image uses one image of your plan's monthly allowance. Images that fail are not counted. The count resets with your billing period (month by month on an annual plan, and on the first of the month on the free plan). Settings → Billing shows how many are left.
| Plan | AI images per month |
|---|---|
| Free | Not included |
| Creator | Not included |
| Studio | 100 |
| Pro | 300 |
| Agency | 500 |
Shapes
aspect | Size | Suits |
|---|---|---|
square | 1024 × 1024 | Instagram, Facebook, Threads, Bluesky |
portrait | 1024 × 1536 | Pinterest, TikTok |
landscape | 1536 × 1024 | X, LinkedIn, YouTube |
From your AI or the CLI
| Tool | What it does |
|---|---|
generate_post_image | Makes 1 to 4 images from prompt or caption and returns their URLs and the allowance left. |
To use an image in a post, pass its url as media of type image to create_scheduled_post.
REST API
| Method | Path | Scope |
|---|---|---|
POST | /api/v1/media/generate-image | uploads:write |
GET | /api/v1/media/generate-image | uploads:write |
POST takes { "prompt": "...", "aspect": "square", "count": 2 } (or "fromCaption": true with "caption"), and an optional "requestId": retrying with the same id returns the first result instead of making new images. It returns { images, failed, allowance }. GET returns { allowance }.
| Status | code | Meaning |
|---|---|---|
| 400 | prompt_required | No description and no caption. |
| 409 | in_progress | The same requestId is still running. |
| 422 | prompt_rejected | The description was blocked by our content rules. |
| 429 | allowance_exhausted | No images left this month; resetAt says when the count starts again. |
| 502 | generation_failed | No image could be made; nothing was counted. |