Roundtable is in beta. Its request and response shapes may change without the usual deprecation window.
Ask a panel
Send one input to several models. With the default summary resolution, a consolidation model merges their answers into a single data.
curl -sX POST https://api.opper.ai/v3/roundtable \
-H "Authorization: Bearer $OPPER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "What is the best database for a multi-tenant SaaS, and why?",
"models": [
{ "name": "openai/gpt-5.5" },
{ "name": "anthropic/claude-sonnet-4-6" },
{ "name": "gemini/gemini-2.5-pro" }
]
}'
{
"id": "rt_...",
"data": "The panel broadly favors PostgreSQL with row-level security...",
"meta": {
"resolution": "summary",
"models_used": ["openai/gpt-5.5", "anthropic/claude-sonnet-4-6", "gemini/gemini-2.5-pro"],
"total_cost": 0.021,
"total_duration_ms": 5210,
"summary_model": "openai/gpt-5.5"
},
"model_results": [
{ "index": 0, "model": "openai/gpt-5.5", "data": "...", "cost": 0.006 },
{ "index": 1, "model": "anthropic/claude-sonnet-4-6", "data": "...", "cost": 0.008 },
{ "index": 2, "model": "gemini/gemini-2.5-pro", "data": "...", "cost": 0.007 }
]
}
Vote on a choice
For classification or voting, set resolution to multiple_choice and pass the options in choices. Each model picks one and the result is the consolidated winner.
curl -sX POST https://api.opper.ai/v3/roundtable \
-H "Authorization: Bearer $OPPER_API_KEY" -H "Content-Type: application/json" \
-d '{
"input": "Is this review positive, negative, or neutral? \"It works, but support was slow.\"",
"models": [
{ "name": "openai/gpt-5-mini" },
{ "name": "anthropic/claude-haiku-4-5" },
{ "name": "gemini/gemini-2.5-flash" }
],
"resolution": "multiple_choice",
"choices": ["positive", "negative", "neutral"]
}'
Compare without consolidating
To read each model’s answer yourself with no consolidation step, set resolution to fast. data comes back null and you use model_results directly.
Add an output_schema to constrain every model — and the consolidation — to the same JSON Schema, and pass instructions as a system prompt shared across the panel. Set stream: true to receive per-model deltas over SSE. See the overview and API reference.