Verification API

Determine whether a claim is supported by the evidence you supply. This is not a chatbot: verification is deterministic, every conclusion traces to a supplied value, and no evidence is ever fabricated. Accepts raw JSON.

Endpoint

POST /api/v1/verify

Metered as one verification per call; evidence volume counts toward your monthly record allowance.

Request fields

FieldTypeDescription
claim*stringThe statement to verify. Treated strictly as data, never as instructions.
evidenceobject[]Evidence items. Each is { source?, record_id?, field?, value }. Only these values are ever used.

Result classifications

FieldTypeDescription
verifiedresultSupplied evidence supports the claim and nothing contradicts it.
contradictedresultSupplied evidence disagrees with the claim (or both supports and contradicts it).
unsupportedresultEvidence was supplied but none of it bears on the claim.
insufficient_evidenceresultNo relevant evidence was supplied to assess the claim.

Evidence & economic integrity

For a monetary claim, the result is only verified when a supplied number actually matches the claimed amount. Counts are never converted into dollars and amounts are never inferred. The response returns the exact supporting and contradicting evidence items plus a confidence derived from that evidence.

Prompt-injection defense

All customer-supplied text the claim and every evidence value is treated as data. Instruction-like content (for example "ignore all previous instructions") is detected and ignored; it can never change the verification outcome. When such content is seen, injection_detected is true in the response so you can audit it.

Try it live

Pick a scenario including a prompt-injection attempt that is safely ignored or edit the JSON, then send it. No API key required.

Try it livePOST /api/v1/verify
Request bodyeditable
Response

// Send the request to see the live response.

Live demo endpoint · no API key needed · rate-limited · not stored · runs the production engine

Example request

Request
POST /api/v1/verify
Authorization: Bearer zap_live_...
Content-Type: application/json

{
  "claim": "Customer owes $47,250",
  "evidence": [
    { "source": "billing", "record_id": "inv_881", "field": "amount", "value": 47250 },
    { "source": "billing", "record_id": "inv_881", "field": "status", "value": "unpaid" }
  ]
}

Example response

200 OK
{
  "request_id": "req_xxx",
  "result": "verified",
  "supported": true,
  "confidence": 0.9,
  "evidence": [
    { "source": "billing", "record_id": "inv_881", "field": "amount", "value": 47250, "index": 0 }
  ],
  "contradictions": [],
  "missing_evidence": [],
  "injection_detected": false,
  "reasoning": "A supplied amount matches the claimed amount with no contradicting evidence."
}

Code examples

curl -X POST https://api.zapitra.com/api/v1/verify \
  -H "Authorization: Bearer $ZAPITRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "claim": "Customer owes $47,250",
    "evidence": [
      { "source": "billing", "record_id": "inv_881", "field": "amount", "value": 47250 }
    ]
  }'