Verify Service
Multi-model consensus fact verification API
The Verify Service uses multiple AI models to verify factual claims through consensus.
POST /verify/v1/stream
Verify a statement and receive streaming results via Server-Sent Events.
Request
POST https://console.mira.network/verify/v1/stream
Authorization: Bearer mk_verify_YOUR_API_KEY
Content-Type: application/jsonBody Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
fact | string | Yes | The statement to verify |
domain | string | No | Domain context: "general" (default) or "legal" |
minRequired | number | No | Minimum models for consensus: 2 or 3 (default: 2) |
totalModels | number | No | Total models to query (default: 3) |
Example Request
curl -X POST https://console.mira.network/verify/v1/stream \
-H "Authorization: Bearer mk_verify_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fact": "Water boils at 100 degrees Celsius at sea level",
"domain": "general",
"minRequired": 2
}'Response
The response is a stream of Server-Sent Events.
Event Types
starting
Process has begun.
event: starting
data: {"status":"starting"}extracting_claims
Analyzing the statement to extract verifiable claims.
event: extracting_claims
data: {"status":"extracting_claims"}claims_extracted
Claims have been identified.
event: claims_extracted
data: {"claims":["Water boils at 100°C at sea level"],"count":1}verifying_claims
Beginning verification of all claims.
event: verifying_claims
data: {"totalClaims":1}verifying_claim
Starting verification of a specific claim.
event: verifying_claim
data: {"claimIndex":0,"claim":"Water boils at 100°C at sea level"}claim_verified
A single claim has been verified.
event: claim_verified
data: {
"claimIndex": 0,
"assessment": "TRUE",
"consensus_answer": "A",
"model_answers": [
{"model": "gpt-4", "answer": "A"},
{"model": "claude-3-sonnet", "answer": "A"},
{"model": "gpt-4-turbo", "answer": "A"}
]
}completed
Verification complete with full results.
event: completed
data: {
"requestId": "req_abc123",
"original_fact": "Water boils at 100 degrees Celsius at sea level",
"results": [...],
"tokenUsage": {...},
"timestamp": "2024-01-15T10:30:00Z"
}Complete Response Schema
interface VerifyResponse {
requestId: string;
original_fact: string;
results: ClaimResult[];
timestamp: string;
tokenUsage: TokenUsage;
minRequired: number;
}
interface ClaimResult {
id: string;
claim: string;
assessment: 'TRUE' | 'FALSE' | 'NO CONSENSUS';
original_question: string;
original_options: Record<string, string>;
claimed_answer: string;
model_answers: ModelAnswer[];
consensus_answer: string;
}
interface ModelAnswer {
model: string;
answer: string;
}
interface TokenUsage {
promptTokens: number;
completionTokens: number;
totalTokens: number;
extractionTokens?: number;
verificationTokens?: number;
modelUsage?: ModelTokenUsage[];
}
interface ModelTokenUsage {
model: string;
promptTokens: number;
completionTokens: number;
totalTokens: number;
}Assessment Values
| Value | Meaning |
|---|---|
TRUE | Models reached consensus that the claim is true |
FALSE | Models reached consensus that the claim is false |
NO CONSENSUS | Models did not agree (requires minRequired matching answers) |
JavaScript Example
async function verifyFact(fact: string, apiKey: string) {
const response = await fetch('https://console.mira.network/verify/v1/stream', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ fact }),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
let buffer = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
const lines = buffer.split('\n');
buffer = lines.pop() || '';
for (const line of lines) {
if (line.startsWith('event: ')) {
const eventType = line.slice(7);
console.log('Event:', eventType);
} else if (line.startsWith('data: ')) {
const data = JSON.parse(line.slice(6));
console.log('Data:', data);
}
}
}
}GET /verify/v1/health
Health check endpoint. Does not require authentication.
curl https://console.mira.network/verify/v1/healthResponse:
{
"status": "ok"
}