Two on-ramps. One credit wallet.
Ounie accounts hit the REST endpoints with a bearer token. AI assistants — including the Ounie AI Team — connect over MCP and get a native tool surface. Both run the same council pipeline, and every council draws your shared Ounie credits (1 credit = 1¢), never overdrawing. Because a council is grounded in your own private brains, agent access is by API key or MCP — there is no keyless rail for a grounded council (see x402 below for the one no-brain exception).
Authorization header, or append ?api_key=to the URL when your client can't set headers.Your app key, minted on Dashboard → API keys. Reads, lists, and pure-reasoning councils. It has no ounie.com credential, so it cannot reach your private brains — a grounded council returns a clear 403 grounding_requires_master_key.
Your fleet master key from ounie.com (enable fleet access in ounie.com settings). It works across every Ounie app and, on Council, is what grounds a council in your brains and resolves citations — the token is forwarded upstream to ounie.com for retrieval. Draws the same wallet.
Cookie sessions work too on every REST route — it's the same endpoint the dashboard uses.
/api/mcp (legacy SSE at /api/sse). Auth with a cnl_live_… key, or the Ounie fleet master key ounie_live_… to ground.Endpoint https://council.ounie.com/api/mcp Header Authorization: Bearer cnl_live_… # If your MCP client can't set headers, append the key as a query param: https://council.ounie.com/api/mcp?api_key=cnl_live_… # Ounie AI Team (TabTab): add an HTTP MCP entry with the URL above, # using your master key so councils ground on your brains: https://council.ounie.com/api/mcp?api_key=ounie_live_…
| Tool | What it does | Cost |
|---|---|---|
| convene_council | Run N models over two rounds + a chairman verdict. Ground on your brains with the master key. | 13–34+ credits |
| list_councils | List the councils you've convened. | free |
| get_council | Fetch one verdict + tally + citations + every seat's deliberation (the export). | free |
| get_credit_balance | Spendable Ounie credits + monthly included. | free |
| get_pricing | Per-seat pricing + the x402 endpoint. No auth required. | public |
| whoami | The authenticated key's owner + key id. | free |
Authorization: Bearer cnl_live_… (or your ounie_live_… master key, or ?api_key=) on any of these./api/councils— Convene a council{ "prompt": "Should we raise now or wait?",
"seat_count": 5, "tier": "premium",
"brain_ids": ["…"] }Reserves seat_count × per-seat + synthesis; charged only for models that deliberate (balanced ≈13 for 3 seats, premium ≈34). brain_ids GROUND + cite from your brains with a cookie session OR the master key — a cnl_live_ key must omit brain_ids (403 otherwise).
/api/councils— List your councilsFree. Returns { councils: [ … ] }.
/api/councils/{id}— Fetch a verdict + seatsFree. The full verdict, tally, resolved citations, and every seat's two rounds — the export surface.
/api/councils/{id}/share— Toggle public sharing{ "is_public": true }Free. Mints a permanent /c/{slug} read-only verdict link.
/api/councils/{id}— Delete a councilFree. Cascades to its seats.
/api/brains— List your Ounie brainsFor picking brain_ids. Needs a cookie session or the master key — a cnl_live_ key can't reach your brains.
POST https://council.ounie.com/api/x402/council
{ "prompt": "Should we build or buy?" }
# → 402 { x402Version, accepts:[{ maxAmountRequired, payTo, asset, … }] }
# retry with header: X-Payment: <signed payload>
# → 200 { ok, payment, verdict, tally, survivor_count }Fixed 3-seat balanced roster. No Ounie credits are drawn — the USDC is the payment.
{
"council_id": "…",
"url": "https://council.ounie.com/dashboard/councils/…",
"verdict": { "answer": "…", "confidence": "high",
"reasoning": "…", "dissent": "…" },
"tally": [ { "stance_label": "…", "weight": 3.5, "seats": ["Seat A", …] } ],
"survivor_count": 5,
"degraded": false,
"grounded": true,
"citations": [ // only when grounded on your brains
{ "brainId": "…", "slug": "…", "title": "…", "url": "https://ounie.com/…" }
],
"credits_spent": 34
}