# The studio, from code and AI agents

> Everything an owner does in Brandiz.io that an agent should do too: read the business, have the studio design a poster or a reel from its own website, post the owner's own photos and videos, and schedule them. Posts wait for the owner's Approve unless they let the key post for them.

Web page: https://www.brandiz.io/developers · Updated 2026-11-10

## Start in three steps

1. **Make a key**: In Brandiz.io, open Settings → Connected apps → Make an API key. Name it for the app it's for. Tick "Let it schedule and post for me" only if posts should go out without your Approve.
2. **Call the API**: Send the key as a Bearer token. Read GET /business first: every number, price and date in a post must come from its facts.
3. **Or skip the code**: Use the CLI in a terminal, the n8n node in a workflow, or add the MCP connector to Claude, ChatGPT or Cursor.

## Examples

**Who the key speaks for**

```bash
curl https://www.brandiz.io/api/v1/me \
  -H "Authorization: Bearer $BRANDIZ_API_KEY"
```

**Have the studio design a poster**

```bash
curl https://www.brandiz.io/api/v1/posts \
  -H "Authorization: Bearer $BRANDIZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"poster","recipe":"offer","title":"Friday offer","slides":[{"headline":"Two for one, Friday only"}],"caption":"Bring a friend on Friday.","picture":"Two cups on the counter"}'

curl -X POST https://www.brandiz.io/api/v1/posts/POST_ID/poster \
  -H "Authorization: Bearer $BRANDIZ_API_KEY"
```

**Post your own photo at 6 pm**

```bash
curl https://www.brandiz.io/api/v1/media \
  -H "Authorization: Bearer $BRANDIZ_API_KEY" \
  -F file=@shop-front.jpg

curl https://www.brandiz.io/api/v1/posts/own \
  -H "Authorization: Bearer $BRANDIZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"caption":"Open late tonight.","media":["MEDIA_ID"],"when":"2026-11-20T18:00:00Z"}'
```

**Your client approves it in your portal**

```bash
curl "https://www.brandiz.io/api/v1/posts?state=waiting_for_approval" \
  -H "Authorization: Bearer $BRANDIZ_API_KEY"

curl https://www.brandiz.io/api/v1/posts/POST_ID/approve \
  -H "Authorization: Bearer $BRANDIZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version":2,"by":"Anastasia"}'

curl https://www.brandiz.io/api/v1/posts/POST_ID/changes \
  -H "Authorization: Bearer $BRANDIZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version":2,"note":"Use the pink photo.","by":"Anastasia"}'
```

**The same from the CLI**

```bash
npx brandiz login
npx brandiz posts own shop-front.jpg --caption "Open late tonight." --when now
```

**The MCP connector, in Claude Code**

```bash
claude mcp add --transport http brandiz https://www.brandiz.io/api/mcp
```

The full OpenAPI document is at https://www.brandiz.io/api/v1/openapi.json.

## Every route

All under https://www.brandiz.io/api/v1, JSON in and out, with Authorization: Bearer and your key.

| Route | What it does |
| --- | --- |
| GET /me | Who this key speaks for |
| GET /business | The business: brief, voice, language and the facts it may say |
| GET /ideas | The studio strategist's poster and reel ideas |
| GET /channels | Connected channels |
| GET /calendar | What goes out in the next days |
| GET /package | What's left of the package this month |
| GET /results | How posts did in the last month |
| GET /working | What's working in the business's niche this month |
| POST /working/{id}/version | Make the business's own version of a post that worked |
| GET /posts | Posts, most recently changed first |
| POST /posts | Add a post's words for the studio to design |
| POST /posts/own | Post the owner's own pictures or video with a caption |
| GET /posts/{id} | One post |
| PATCH /posts/{id} | Change a post's caption or title |
| GET /posts/{id}/status | How the studio is coming along with a post |
| POST /posts/{id}/poster | Have the studio design the post's poster |
| POST /posts/{id}/reel | Have the studio make the post's reel |
| POST /posts/{id}/schedule | Schedule a post on its channels |
| POST /posts/{id}/stop | Stop a post going out |
| POST /posts/{id}/approve | Approve a post |
| POST /posts/{id}/changes | Ask for changes on a post |
| POST /posts/{id}/disapprove | Disapprove a post |
| POST /media | Upload a picture or video |
| POST /media/uploads | Start a big file's upload |
| POST /media/uploads/finish | Finish a big file's upload |
| GET /media/file | Download a post's file |
| GET /openapi.json | This document |

## The rules

- Errors come as { error: { code, message } } with a plain message to show.
- 120 requests a minute for each key; past that the answer is 429 with retry-after.
- Every word passes our claims check before it is saved. A post that breaks a rule the owner set is refused.
- A designed poster uses one post from the package the first time; a reel uses one reel when it renders. Your own posts use nothing.
- Without the owner's tick, a scheduled post waits for their Approve and goes out at the time you picked once approved.
- Stop takes a post off its way out at any time. Nothing in the API deletes posts or connects channels.
- For a client portal: approve, ask for changes or disapprove on the version your client saw (a newer one is refused), with their name in by. Ask for changes works with any key; approve and disapprove need the owner's tick.

## Questions

### Does the Brandiz.io API cost extra?

No. Every package includes the API, the CLI and the MCP connector. A poster or reel the studio makes counts against the package as it would in the app.

### Can an AI agent post without asking me?

Only if you tick "Let it schedule and post for me" when you connect it or make its key. Otherwise each post waits for your Approve in Brandiz.io. You can change it or disconnect the key in Settings at any time.

### Can my clients approve posts from my own portal?

Yes. List the posts waiting for approval, show each one, and send your client's Approve, Ask for changes or Disapprove to the API with their name. It lands in Brandiz.io as theirs, in the activity list. Approve and Disapprove need a key made with "Let it schedule and post for me".

### Which networks can it post to?

The ones you connected: Instagram, Facebook, LinkedIn, TikTok, YouTube, X, Threads and Pinterest.

## Read next

- [How we check](https://www.brandiz.io/how-we-check)
- [Pricing](https://www.brandiz.io/pricing)
- [Features](https://www.brandiz.io/features)
