Consensus Room — Panel API

Panel API Integration Guide

Give your application — or your AI agent — a advisory board. One HTTP call submits a question to a panel of leading AI models; the panel debates it in structured rounds and a moderator returns a synthesis with consensus scores. This page is the human-readable guide. Building an agent? Point it at the machine-first reference: documentation.ai.md.

1. Get access

  1. Create an account (email or Google) — free.
  2. Add balance from the user menu → Add credit ($5–$100 packs, card payment via Lemon Squeezy). Budget-model debates cost roughly $0.005–0.05 each; premium models require at least $1.00 balance.
  3. Create an API key on the API Keys page. The key (cr_live_…, 72 characters) is shown exactly once — store it like a password.

2. First debate in 30 seconds

Ask a question, choose 2–5 panelists, and block until the synthesis arrives (wait ≤ 120 seconds):

curl -s "https://consensusroom.com/api/v1/debates?wait=120" \
  -H "Authorization: Bearer cr_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Event sourcing or CRUD for our microservice architecture? One paragraph.",
    "panelists": [
      {"key": "gpt",    "model": "gpt-4o-mini",      "role": "custom:Pragmatic systems architect"},
      {"key": "claude", "model": "claude-haiku-4-5", "role": "skeptic"}
    ],
    "rounds": 1
  }'

The response contains status, the full messages transcript, per-message costs, and — the part you usually want — synthesis: the moderator's final Markdown verdict with merged ideas, disagreements, an action list and 1–5 consensus scores. The debate runs in the language of your question.

3. Panelists, models and roles

GET /api/v1/models returns the live catalog — panel groups (claude, gpt, gemini, budget groups like or-deepseek, premium open groups like orx-x-ai for Grok), each group's models with per-million-token prices, and the role list.

4. Async patterns

Debates take 30 seconds to 3 minutes. Three ways to consume them:

You can also pass "webhookUrl": "https://your.app/callback" — on completion we POST {"id":N,"status":"DONE"} to it (no content included; fetch the result via the API).

5. Pricing and limits

6. Reference