Workshop Kit
API

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 generation pipeline and draw your shared Ounie credits (1 credit = 1¢), never overdrawing. Every generated kit is grounded in — and cited to — your own Ounie brains.

Authentication
Two rails, both Bearer tokens. Send Authorization: Bearer <key> on any REST route or the MCP endpoint — or append ?api_key=<key> to the URL when your client can’t set headers.
wkk_live_…— this app’s key

Mint it on Dashboard → API keys (shown once, up to 5 active). Lists, reads, and exports your kits. It has no ounie.com credential, so it can’t generate — generation needs your brains.

ounie_live_… — your Ounie master key

Your ounie.com developer key. Enable fleet access in ounie.com settings and use it here — it’s forwarded upstream to ground generation in your private brains, and the Ounie AI Team drives the app with it. Draws the same shared wallet.

MCP · for AI assistants and the Ounie AI Team
Streamable HTTP at /api/mcp (legacy SSE at /api/sse).
Endpoint  https://workshop.ounie.com/api/mcp
Header    Authorization: Bearer wkk_live_…   (or ounie_live_… to generate)

# If your MCP client can't set headers, append the key as a query param:
https://workshop.ounie.com/api/mcp?api_key=ounie_live_…

Connecting the Ounie AI Team (TabTab): add an HTTP MCP server with the URL above, putting your ounie_live_… master key in the ?api_key=query param (its manual MCP entries can’t set an Authorization header). The team can then list and build workshop kits from your brains.

ToolWhat it doesCost
list_brainsYour Ounie brains (master key only) — pick brain_ids.free
generate_kitGenerate a full cited facilitator kit from your brain(s).12 credits
regenerate_kitRebuild an existing kit from fresh retrieval.12 credits
list_kitsList your generated kits (newest first).free
get_kitFull kit content: objectives, agenda + scripts, exercises, handout, email, citations.free
export_kitRender a kit as facilitator or handout Markdown.free
list_exercise_bankYour reusable Exercise Bank.free
get_credit_balanceSpendable Ounie credits + monthly included.free
get_pricingPer-action pricing. No auth required.public
whoamiThe authenticated key's owner + whether it's the master key.free
REST · the same endpoints the dashboard uses
Send Authorization: Bearer … (or ?api_key=) on any of these. Cookie sessions work too — it’s the same route.
GET/api/brainsYour Ounie brains

Master key or session. Returns { brains: [{ id, name, sourceCount }] } — pick brain ids for a kit.

POST/api/kitsGenerate a kit
{ "brain_ids": ["…"], "topic": "Onboarding",
  "audience": "new hires", "duration": "90" }

Bills 12 credits. duration = 60 | 90 | 120 | half-day. Grounded + cited from your brains — needs a session or the ounie_live_ master key; a wkk_live_ key gets 403 grounding_unavailable. A too-thin brain 422s and refunds in full.

GET/api/kitsList your kits

Free.

GET/api/kits/{id}Kit + its exercises

Free. Full content + citations.

POST/api/kits/{id}/regenerateRebuild from fresh retrieval

Bills 12 credits. Keeps the same brains/topic/duration.

PATCH/api/kits/{id}Edit narrative fields
{ "name": "…", "objectives": ["…"] }

Free. name / objectives / handout / follow_up_email / agenda.

GET/api/kits/{id}/export?doc=facilitatorDownload DOCX

Free. doc = facilitator | handout. Add &api_key=… when calling as an agent.

GET/api/bankYour Exercise Bank

Free. The reusable library new kits pull free matches from.

No keyless (x402) rail
Every kit is grounded in — and cited to — your own private Ounie brains, so generation always runs as a specific account. Agent access is therefore API keys / MCP on your Ounie credits (with the master key for grounded builds); there is no anonymous pay-per-call endpoint.
Shape of a generated kit
{
  "ok": true,
  "kit_id": "…",
  "objectives": 4,
  "agenda_blocks": 6,        // block durations sum EXACTLY to the length
  "exercises": 3,
  "exercises_from_bank": 1,  // reused free from your Exercise Bank
  "credits_spent": 12
}

# GET /api/kits/{id} returns the full agenda, scripts, handout,
# follow-up email, and citations: [{ brainId, slug, title }]