Verdict API

Complete guide to the AskVerdict Verdict API — from your first request to production integration with streaming, webhooks, and outcome tracking.

4 min readUpdated Feb 28, 2026
Share

The Verdict API lets you create AI-powered debates and receive structured verdicts programmatically. This page is a comprehensive guide — from setup to production.

30-second quickstart

  1. Create an account
  2. Generate an API key (starts with vrd_)
  3. Make your first request (see below)

Authentication

All API requests require an API key via the Authorization header:

plaintext
Authorization: Bearer vrd_your_api_key

Keys are created in the Developer Portal → API Keys. Keys start with vrd_ and are shown once at creation.

See Authentication for details on key management and BYOK setup.


Your First Verdict

bash
curl -X POST https://api.askverdict.ai/v1/verdicts \
  -H "Authorization: Bearer vrd_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Should we use PostgreSQL or MongoDB for our new SaaS product?",
    "mode": "balanced"
  }'

Endpoints at a Glance

MethodEndpointDescriptionDocs
POST/v1/verdictsCreate a new debateCreate Verdict
GET/v1/verdictsList debates (paginated)List Verdicts
GET/v1/verdicts/:idGet debate + verdictGet Verdict
GET/v1/verdicts/:id/streamStream events via SSEStream Verdict
DELETE/v1/verdicts/:idDelete a debateDelete Verdict
GET/v1/meGet API key profileUser Profile
GET/v1/usageGet key usage statsUsage Stats
GET/v1/healthHealth checkHealth

Debate Modes

ModeCreditsAgentsRoundsBest for
fast131Quick decisions, yes/no questions
balanced352Most decisions — good depth and speed
thorough883High-stakes — comprehensive analysis

Streaming (SSE)

The stream endpoint delivers events via Server-Sent Events as the debate unfolds:

bash
curl -N https://api.askverdict.ai/v1/verdicts/DEBATE_ID/stream \
  -H "Authorization: Bearer vrd_your_api_key"

Event Types

EventDescription
debate.startedDebate has begun
agent.thinkingAgent is processing
argumentAn agent has made an argument
rebuttalAn agent has rebutted
synthesis.startedVerdict synthesis underway
verdictFinal verdict delivered
debate.completedDebate finished

See Stream Verdict and SSE Events Guide for details.


Verdict Response Structure

When a debate completes, the verdict object contains:

json
{
  "recommendation": "PROCEED",
  "oneLiner": "Use PostgreSQL for your relational data needs.",
  "confidence": 82,
  "narrative": "After examining both options...",
  "arguments": [
    {
      "agent": "Database Architect",
      "stance": "support",
      "keyPoints": ["ACID compliance", "Complex joins support"]
    }
  ],
  "keyEvidence": [...],
  "decisionMatrix": [...],
  "nextSteps": ["Set up PostgreSQL with connection pooling", ...],
  "revisitTriggers": ["If write throughput exceeds 50K ops/sec", ...]
}

Recommendation Values

ValueMeaning
PROCEEDGo ahead with the proposed action
RECONSIDERRe-evaluate before proceeding
REJECTDo not proceed
DEFERDelay the decision
MORE_INFO_NEEDEDInsufficient information to decide
SPLIT_DECISIONArguments are evenly balanced

Webhooks

Receive real-time notifications when debates complete:

bash
curl -X POST https://api.askverdict.ai/api/user-webhooks \
  -H "Authorization: Bearer vrd_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-app.com/webhooks/askverdict",
    "events": ["debate.completed", "verdict.delivered"]
  }'

Webhook payloads are signed with HMAC-SHA256. Verify the X-AskVerdict-Signature header.

See Webhook Guide and User Webhooks API for setup and verification.


Rate Limits

PlanRate Limit
Free10 req/min
Starter / BYOK60 req/min
Pro / BYOK Pro120 req/min
EnterpriseCustom

Every response includes rate limit headers:

plaintext
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1708444800

When rate limited (429), wait until the reset timestamp before retrying.


Credit Costs

ModeCredits
fast1
balanced3
thorough8

BYOK subscribers use their own API keys and are not charged credits per debate. See Billing & Credits for plans and pricing.


Error Handling

All errors return a consistent format:

json
{
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Not enough credits for balanced mode (need 3, have 1)"
  }
}

Common error codes: UNAUTHORIZED, VALIDATION_ERROR, INSUFFICIENT_CREDITS, RATE_LIMITED, NOT_FOUND, PROVIDER_ERROR.

Implement exponential backoff for 429 and 5xx errors. See Error Reference for the complete list.


SDKs & Tools

ToolInstallDocs
TypeScript SDKnpm install @askverdict/sdkSDK Guide
CLInpm install -g @askverdict/cliCLI Guide
REST APIDirect HTTP callsThis page

Integrations


Next Steps

Was this page helpful?