Quickstart

Get a multi-agent consensus verdict in 3 steps.

1. Get an API Key

# Free — no credit card required
curl -X POST https://verdikt.campintl.io/api/keys \
  -H "Content-Type: application/json" \
  -d '{"owner": "your@email.com"}'

2. Submit a Verdict

curl -X POST https://verdikt.campintl.io/api/verdict \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_KEY" \
  -d '{
    "domain": "hiring",
    "question": "Should we hire a senior engineer who has 8 years experience but changes jobs every 12 months?",
    "context": "50-person startup, need frontend lead, strong portfolio",
    "agentCount": 5
  }'

3. Get the Verdict

{
  "success": true,
  "verdict": {
    "id": "VDK-MMMKGG6C-CB970138",
    "verdict": "MAYBE",
    "strength": "MODERATE",
    "confidence": 60,
    "percentages": { "YES": 0, "NO": 47, "MAYBE": 53 },
    "agents": [
      { "name": "Culture Fit Analyst", "action": "NO", "confidence": 80, "reasoning": "..." },
      { "name": "Technical Evaluator", "action": "NO", "confidence": 80, "reasoning": "..." },
      // ... more agents
    ],
    "dissent": [ /* agents who voted against the consensus */ ],
    "meta": { "elapsedMs": 559, "engine": "VERDIKT v1.0" }
  }
}

Authentication

All API requests require an API key in the X-API-Key header.

X-API-Key: vdk_free_abc123...

Keys are prefixed by tier: vdk_free_, vdk_pro_, vdk_ent_.

Tiers & Limits

FeatureFreePro ($49/mo)Enterprise ($299/mo)
Verdicts/day10500Unlimited
Agents/verdict51557
Domains3 (hiring, product, investment)All 6All 6
Custom domains-10 domains, 20 agents each10 domains, 20 agents each
Webhooks--5 endpoints, HMAC signed
Accuracy trackingYesYesYes
Rate limit5/min30/min100/min

Error Handling

Errors return JSON with an error field:

{
  "error": "Daily limit reached (10 verdicts). Upgrade tier for more."
}
StatusMeaning
400Bad request — missing or invalid fields
401Unauthorized — missing or invalid API key
403Forbidden — tier doesn't have access
404Not found — verdict ID doesn't exist
409Conflict — outcome already recorded
429Rate limited — slow down
500Server error — engine failure

Submit Verdict

POST /api/verdict FREE+

Submit a question for multi-agent consensus analysis. Each agent independently evaluates the question through its specialized lens, then votes are weighted to produce a consensus verdict.

Request Body

FieldTypeDescription
domainrequiredstringDomain key: hiring, product, legal, investment, sports, realestate, or custom
questionrequiredstringThe question to analyze (10-5000 chars)
contextoptionalstringAdditional context, background, or data
agentCountoptionalnumberNumber of agents (capped by tier limit)

Response

FieldDescription
verdict.idUnique verdict ID (e.g., VDK-MMMKGG6C-CB970138)
verdict.verdictConsensus action: YES/NO/MAYBE (or domain-specific: BUY/SELL/HOLD)
verdict.strengthWEAK, MODERATE, STRONG, or VERY_STRONG
verdict.confidenceAverage confidence of winning action (0-100)
verdict.percentagesWeighted vote percentages per action
verdict.agents[]Each agent's vote, confidence, and reasoning
verdict.dissent[]Agents who voted against the consensus
verdict.metaTier, agent count, elapsed time, timestamp

List Verdicts

GET /api/verdicts?limit=20 FREE+

List recent verdicts. Returns summary view (not full agent votes).

ParamTypeDescription
limitoptionalnumberMax results (1-100, default 20)

Get Verdict Detail

GET /api/verdicts/:id FREE+

Retrieve the full verdict including all agent votes, reasoning, and dissent.

List Agents

GET /api/agents FREE+

List all domains and their agent counts. Use /api/agents/:domain for agent details.

Create Custom Domain

POST /api/domains PRO+

Define a custom domain with your own agents, prompts, and voting actions.

Request Body

FieldTypeDescription
namerequiredstringDomain display name (2-50 chars)
descriptionrequiredstringWhat this domain evaluates
agentsrequiredarray2-20 agent definitions
agents[].idrequiredstringUnique agent ID within domain
agents[].namerequiredstringAgent display name
agents[].promptrequiredstringAgent system prompt (20-2000 chars)
agents[].styleoptionalstringPerspective label (default: analytical)
agents[].weightoptionalnumberVote weight 0.1-5.0 (default: 1.0)
actionsoptionalstring[]Custom actions, 2-5 items (default: YES/NO/MAYBE)

Example

curl -X POST /api/domains \
  -H "X-API-Key: YOUR_PRO_KEY" \
  -d '{
    "name": "Startup Pitch",
    "actions": ["INVEST", "PASS", "FOLLOW_UP"],
    "agents": [
      {"id": "market", "name": "Market Analyst", "prompt": "Evaluate TAM/SAM/SOM...", "weight": 1.3},
      {"id": "team", "name": "Team Evaluator", "prompt": "Assess founding team...", "weight": 1.5}
    ]
  }'

Then use it: POST /api/verdict { "domain": "startup-pitch", ... }

List Custom Domains

GET /api/domains PRO+

List your custom domains and their agent counts.

Update Custom Domain

PUT /api/domains/:id PRO+

Update agents, prompts, or actions for an existing custom domain. Same body as POST.

Delete Custom Domain

DELETE /api/domains/:id PRO+

Permanently delete a custom domain.

Report Outcome

POST /api/outcomes/:verdictId FREE+

Report what actually happened, so the system can score agent accuracy over time.

FieldTypeDescription
outcomerequiredstringWhat actually happened (YES, NO, BUY, SELL, etc.)

Each agent is scored: correct predictions boost their accuracy, incorrect ones lower it. After 5+ outcomes, agents qualify for the leaderboard.

Agent Leaderboard

GET /api/leaderboard FREE+

Agent accuracy rankings across all domains. Use /api/leaderboard/:domain for domain-specific rankings.

Register Webhook

POST /api/webhooks ENTERPRISE

Register a URL to receive verdict results via webhook. Payloads are HMAC-SHA256 signed for verification.

FieldTypeDescription
urlrequiredstringHTTPS endpoint to receive webhooks
secretrequiredstringShared secret for HMAC signing (min 16 chars)
eventsoptionalstring[]Events: verdict.completed, verdict.outcome, key.usage.warning

Events

EventFires When
verdict.completedA verdict finishes processing
verdict.outcomeAn outcome is reported for a verdict
key.usage.warningDaily usage reaches 80% of limit

List Webhooks

GET /api/webhooks ENTERPRISE

List your registered webhooks with delivery stats.

Webhook Signature Verification

Every webhook delivery includes an X-Verdikt-Signature header containing the HMAC-SHA256 signature of the raw request body.

Node.js

const crypto = require('crypto');

function verifyWebhook(rawBody, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Python

import hmac, hashlib

def verify_webhook(raw_body: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), raw_body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(signature, expected)

Webhook Payload Shape

{
  "event": "verdict.completed",
  "timestamp": "2026-03-11T21:43:57.715Z",
  "data": {
    "id": "VDK-MMMKGG6C-CB970138",
    "domain": "hiring",
    "verdict": "MAYBE",
    "strength": "MODERATE",
    "confidence": 60,
    "agentCount": 5,
    "question": "Should we hire..."
  }
}

Provision API Key

POST /api/keys

Self-service: get a free API key instantly. No auth required.

FieldTypeDescription
ownerrequiredstringYour name or email
Save the returned API key immediately — it cannot be retrieved later.

Usage Analytics

GET /api/keys/usage FREE+

View your daily usage, remaining quota, and total lifetime usage.

Upgrade Tier

POST /api/keys/upgrade FREE+
FieldTypeDescription
tierrequiredstringpro or enterprise
stripeTokenoptionalstringStripe payment token (billing coming soon)
VERDIKT v1.0 | Powered by U_Agentix Multi-Agent Consensus Engine | Groq LPU Backend
© 2026 CAMPINTL | THE HAYMAN HYMAN TRUST. All rights reserved.