> ## Documentation Index
> Fetch the complete documentation index at: https://docs.semicola.com/llms.txt
> Use this file to discover all available pages before exploring further.

# One agent. Every seller. Every channel.

> How buying works on Semicola: one brief, many sellers, one confirmed launch.

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.

<CardGroup cols={3}>
  <Card title="Connect in five minutes" icon="plug" href="/v3/quickstart">
    Use Semicola from Codex, Claude Code or any MCP client.
  </Card>

  <Card title="Campaign object guide" icon="layer-group" href="/buy/campaign">
    Fields, states and the launch contract.
  </Card>

  <Card title="v3 Tool Catalog" icon="toolbox" href="/v3/tool-catalog">
    Every buyer tool and its inputs.
  </Card>
</CardGroup>

## 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

<Steps>
  <Step title="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.".
  </Step>

  <Step title="Write the brief as a draft campaign">
    A [campaign](/buy/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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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`.
  </Step>
</Steps>

## Where you can do this

| Surface        | Good for                                                                                                           |
| -------------- | ------------------------------------------------------------------------------------------------------------------ |
| Semicola app   | People who want to plan in conversation with Semi and see widgets such as Sellers, Proposals and Review & go live. |
| MCP hosts      | Claude, ChatGPT, Codex and Claude Code users. The same widgets render in hosts that support MCP Apps.              |
| Your own agent | Software that owns its interface and schedule. Connect to `https://api.semicola.com/mcp/v3`.                       |
| REST API       | Scheduled exports, reporting pipelines and other plain HTTP integrations.                                          |

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

<Tip>
  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.
</Tip>
