
Decision Engine API
Get a decision, not an answer.
Resolve uncertainty via structured multi-model disagreement. 5 frontier AIs debate your question and return a verdict with confidence score, ranked recommendations, and cost transparency.
Quick Start
One POST request. Structured JSON response. That's it.
curl -X POST https://api.pronnpt.com/v1/debate/run \
-H "Authorization: Bearer prn_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"question": "Should my startup pivot to AI?",
"speed": "fast"
}'Base URL
https://api.pronnpt.com/v1
All API endpoints are versioned under /v1.
Endpoints
/v1/debate/runRun a new debate. Returns structured verdict (proposition) or ranked recommendations (strategy).
/api/debate?id=123Fetch a completed debate with full report, phases, and follow-up questions.
/api/debates?page=1&limit=10&category=TechnologyBrowse public debates. Filter by category. Paginated.
Parameters
POST body for /v1/debate/run
| Parameter | Type | Default | Description |
|---|---|---|---|
question | string | required | The question to debate (min 10 characters) |
type | "proposition" | "strategy" | auto | Debate type. Auto-classified if omitted |
models | string[] | all 5 | Which models: ["claude","gpt","grok"] |
model_count | number | — | Shorthand: use first N models (1–5) |
speed | "fast" | "medium" | "full" | "full" | Controls depth, speed, and cost |
chair_model | string | first model | Which model chairs the final synthesis |
max_cost_usd | number | — | Pre-flight cost gate. Returns 400 if estimate exceeds |
max_latency_ms | number | — | Latency budget. Auto-selects speed if set |
response_mode | "full" | "summary" | "full" | Summary returns just decision + confidence |
stream | boolean | false | Enable SSE streaming for real-time progress |
Speed Modes
Set speed directly, or set max_latency_ms and we'll pick the fastest mode that fits your budget.
Available Models
OpenRouter prices per 1M tokens. We charge exactly what OpenRouter charges us — zero markup.
| API ID | Model | Input /1M | Output /1M |
|---|---|---|---|
claude | Opus 4.6 | $15 | $75 |
gpt | GPT-5.4 | $2.50 | $10 |
grok | Grok 4.1 Fast | $5 | $25 |
gemini | Gemini 2.5 Flash | $0.15 | $3.50 |
deepseek | DeepSeek V3.2 | $0.27 | $1.10 |
Use Cases
Trading decisions, product strategy, legal reasoning, clinical judgement, research synthesis, policy analysis.
Code Examples
curl -X POST https://api.pronnpt.com/v1/debate/run \
-H "Authorization: Bearer prn_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"question": "Should my startup pivot to AI?",
"speed": "fast"
}'Summary Mode
Set response_mode: "summary" to get just the decision, confidence, and cost. Perfect for agents that only need the verdict.
// Minimal response — just the decision
const res = await fetch("https://api.pronnpt.com/v1/debate/run", {
method: "POST",
headers: {
"Authorization": "Bearer prn_your_key_here",
"Content-Type": "application/json"
},
body: JSON.stringify({
question: "Should we acquire this company?",
speed: "fast",
response_mode: "summary"
})
});
// Returns:
// {
// "debate_id": 305,
// "type": "proposition",
// "decision": "REJECT",
// "confidence": 0.60,
// "executive_summary": "The council advises...",
// "cost_usd": 0.02,
// "tokens_used": 3100
// }Response Format
Proposition debates return a verdict with decision (ACCEPT/REJECT/SPLIT) and numeric confidence. Strategy debates return a synthesis with ranked recommendations.
{
"debate_id": 301,
"type": "proposition",
"status": "complete",
"models": ["claude", "gpt", "grok"],
"speed": "fast",
"verdict": {
"decision": "ACCEPT",
"confidence": 0.85,
"vote_split": { "for": 2, "against": 1 },
"executive_summary": "The council recommends..."
},
"chair_summary": {
"recommendation": "...",
"consensus": "...",
"dissent": "..."
},
"follow_up_questions": ["What about...", "Have you considered..."],
"tokens_used": 4200,
"cost_usd": 0.03,
"report_url": "https://pronnpt.com/debate/301"
}{
"debate_id": 302,
"type": "strategy",
"status": "complete",
"synthesis": {
"executive_summary": "The council recommends...",
"ranked_recommendations": [
{
"rank": 1,
"title": "Use PostgreSQL with TimescaleDB",
"description": "Combine PostgreSQL reliability with...",
"proposed_by": "Claude",
"total_score": 5,
"avg_rank": 1.25
}
],
"confidence": 0.85
},
"tokens_used": 5100,
"cost_usd": 0.04,
"report_url": "https://pronnpt.com/debate/302"
}Pricing
You pay exactly what OpenRouter charges us for tokens. Zero markup. We may introduce a small margin in the future, but today it's pure pass-through.
cost_usd. Use max_cost_usd to cap spending per request. Every debate gets a permanent report page.API Keys
Sign in to create API keys. Starter tier: 100 requests/day. Scales on request.
Authentication
Pass your API key in the Authorization header:
Authorization: Bearer prn_your_key_here
Without a key: 50 free requests per IP. With a key: starter tier at 100/day, scales on request.
Rate Limits
Questions? ben@pronnpt.com