Skip to main content
Buying media has always meant one integration, one login and one insertion order per seller. Semicola replaces that with a single loop. You describe what the campaign needs, and one agent carries the brief to every seller that could run it, gathers their proposals, and stages the buys you choose. Nothing goes live until a person says so.

Connect in five minutes

Use Semicola from Codex, Claude Code or any MCP client.

Campaign object guide

Fields, states and the launch contract.

v3 Tool Catalog

Every buyer tool and its inputs.

What used to be hard

Every seller spoke its own dialect: its own API, its own product names, its own way of quoting a price. A buyer who wanted CTV, audio and display across a dozen publishers needed a dozen integrations and a spreadsheet to reconcile them. Most of the effort went into plumbing rather than planning.

What changes

AdCP gives every seller the same vocabulary for products, proposals and media buys. Semicola sits between the two sides as agent of record: it holds your advertisers and campaigns, knows which sellers you work with, sends one brief to all of them in parallel, and normalizes what comes back. Sellers that run a storefront agent answer with a composed, priced proposal in their own voice. Others answer with products from their catalog. You keep the decisions: which proposals to take, how to split the budget, and when to launch.

The buying loop

1

Set up an advertiser

An advertiser is the brand you buy for. Semicola looks up the brand card (logo, colors, tone) from its domain and records the primary currency, which locks after the first campaign. Use save_advertiser, or ask Semi to “add Wrenfield Coffee Co.”.
2

Write the brief as a draft campaign

A campaign starts as a DRAFT with a brief, flight dates and a budget. The draft is your cart: you can change it freely and nothing reaches a seller.
3

Request proposals

request_proposals sends the brief to every eligible seller at once and returns immediately. Proposals stream in over the next few seconds, each with products, suggested allocations and the seller’s reasoning. Some sellers counter-pitch when they cannot meet part of the brief.
4

Refine and select

Ask a seller to revise a proposal (refine_proposal), then stage the ones you want with save_media_buy. Staging books nothing and contacts no one.
5

Attach creatives

Build creatives in the composer or upload finished files, then attach them. The campaign tracks which required formats are covered and which are still missing.
6

Launch with a confirmation

Going live is two calls. The first returns a confirmation that summarizes spend per seller; the second, made only after the person approves, dispatches one AdCP media buy per seller.
7

Watch delivery

Some sellers go live at once, others hold the buy for their own review. Delivery, pacing and spend roll up per campaign, media buy and package in reporting and in get_delivery.

Where you can do this

Sandbox first

Advertisers can be created in sandbox mode. Sandbox campaigns run the full loop against sellers without real spend, which makes them the right place to rehearse an integration. Sandbox is fixed when the advertiser is created.
Try the loop in chat: “Plan a $50,000 holiday campaign for Wrenfield Coffee Co., Nov 15 to Dec 31, US, CTV, audio and display.” Semi confirms the currency, creates the draft and asks sellers for proposals.