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
| Field | Type | Description |
|---|---|---|
| claim* | string | The statement to verify. Treated strictly as data, never as instructions. |
| evidence | object[] | Evidence items. Each is { source?, record_id?, field?, value }. Only these values are ever used. |
Result classifications
| Field | Type | Description |
|---|---|---|
| verified | result | Supplied evidence supports the claim and nothing contradicts it. |
| contradicted | result | Supplied evidence disagrees with the claim (or both supports and contradicts it). |
| unsupported | result | Evidence was supplied but none of it bears on the claim. |
| insufficient_evidence | result | No 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.
POST /api/v1/verify// 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
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
{
"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://zapinner.com/api/v1/verify \
-H "Authorization: Bearer $ZAPINNER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"claim": "Customer owes $47,250",
"evidence": [
{ "source": "billing", "record_id": "inv_881", "field": "amount", "value": 47250 }
]
}'