Agent Output Verifier
Free during launch. Independent verification of AI agent output before you pay: an invoice or deliverable against your JSON Schema and rules. Pass/fail, % passed, fix hints, signed attestation and receipt. $0.02 USDC after, no signup, x402 v2.
Offering
- Provider
- verify.sarnai.dev
- Method
- POST
- Offering type
- Api Endpoint
- Transport type
- http
- Category
- Development
- Delivery
- Not provided
- Pricing model
- Not provided
- x402 version
- 2
Endpoint context
- URL
https://verify.sarnai.dev/verify/schema- MIME type
- Not provided
- First seen
- 2026-10-16T01:50:24.663Z
- Last seen
- Tags
- json-schema, output-validation, attestation, invoice, X402
Payment pricing
x402 payment terms are the authoritative price for calling this endpoint.
- Payment option 1
- 0.02 USDC
Atomic price: 20000 · Network: eip155:8453 · Asset: USDC · Scheme: exact - Payment option 2
- 0.02 USDC
Atomic price: 20000 · Network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: USDC · Scheme: exact
Raw x402 terms
[
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000",
"payTo": "0x42a3c399f83BCcC3b9eEf81e65954a715D54855E"
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "20000",
"payTo": "38Fmaf3MWTR6AWPWrtrdXoqn6iqfVcUBHMFRhiUAEjFb"
}
]Observed health
- Status
- Reachable
- Latest latency
- 122 ms
- Average latency
- 695 ms
- HTTP status
- 405
- Last checked
- Reachability
- 100% over 10 checks
Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.
Input schema
{
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"agent_id": {
"description": "Optional label identifying the AI agent that produced submitted_output (for example, the seller), used for /reputation and the trust score: records and scores belong to the producer, not to whoever calls this endpoint. It is an unauthenticated label. agent_ids starting with 'test-' are reserved for testing: the verification runs normally but is never recorded, so it cannot affect any reputation or trust score. 1-200…",
"type": [
"string",
"null"
]
},
"bounds": {
"description": "Optional per-field min/max, keyed by dotted path with '[]' array wildcard (e.g. 'items[].price'). Numbers or ISO-8601 dates. Violations are reported as informational flags unless enforce_rules is true.",
"type": [
"object",
"null"
]
},
"detail": {
"description": "'full' (default) returns everything; 'compact' returns only the summary, next actions, receipt and signature. Use compact inside verify-repair loops to save tokens. 'compact' fields: summary, next_actions, result, the receipt fields (verification_id, task_id, agent_id, output_hash, schema_hash, rules_hash, verified_at, verifier_version, enforce_rules, strict_content_check), verify and attestation - errors, errors_de…",
"enum": [
"full",
"compact"
],
"type": "string"
},
"enforce_rules": {
"description": "Opt-in. When true, every configured bound and consistency rule must hold, or the result is 'fail' (like strict_content_check), with an 'enforce_rules: ...' entry in errors. That includes a rule or bound that cannot run (its path is missing, a value is not comparable, a value has nothing to be compared against): it fails rather than passing silently, so omitting a field, in the whole path or in any array element the…",
"type": "boolean"
},
"expected_schema": {
"description": "Required. The JSON Schema (draft-04 to 2020-12) that submitted_output must satisfy: your own requirements, as a JSON object.",
"type": "object"
},
"rules": {
"description": "Optional cross-field rules: sum_equals, gte, lte, exists_in, unique (duplicate detection). Violations are reported as informational flags unless enforce_rules is true.",
"items": {
"properties": {
"equals": {
"type": [
"integer",
"number",
"null"
]
},
"equals_field": {
"type": [
"string",
"null"
]
},
"field": {
"type": "string"
},
"if_present": {
"type": "boolean"
},
"in_field": {
"type": [
"string",
"null"
]
},
"other_field": {
"type": [
"string",
"null"
]
},
"tolerance": {
"type": "number"
},
"type": {
"type": "string"
},
"value": {
"type": [
"integer",
"number",
"string",
"null"
]
},
"values": {
"type": [
"array",
"null"
]
}
},
"required": [
"type",
"field"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"strict_content_check": {
"description": "Opt-in. When true, any string in submitted_output containing control characters (e.g. null bytes) or embedded HTML/script markup makes the result 'fail'. When false (default) this is not checked at all.",
"type": "boolean"
},
"submitted_output": {
"description": "Required. The output being checked: any JSON value (object, array, string, number, boolean or null), exactly as the AI agent produced it."
},
"task_id": {
"description": "Your own identifier for this verification. 1-200 printable characters, no control characters and no lone Unicode surrogate; a request outside that range is rejected (422), not truncated.",
"type": "string"
}
},
"required": [
"task_id",
"expected_schema",
"submitted_output"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
}Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"agent_id": {
"description": "Optional label identifying the AI agent that produced submitted_output (for example, the seller), used for /reputation and the trust score: records and scores belong to the producer, not to whoever calls this endpoint. It is an unauthenticated label. agent_ids starting with 'test-' are reserved for testing: the verification runs normally but is never recorded, so it cannot affect any reputation or trust score. 1-200…",
"type": [
"string",
"null"
]
},
"bounds": {
"description": "Optional per-field min/max, keyed by dotted path with '[]' array wildcard (e.g. 'items[].price'). Numbers or ISO-8601 dates. Violations are reported as informational flags unless enforce_rules is true.",
"type": [
"object",
"null"
]
},
"detail": {
"description": "'full' (default) returns everything; 'compact' returns only the summary, next actions, receipt and signature. Use compact inside verify-repair loops to save tokens. 'compact' fields: summary, next_actions, result, the receipt fields (verification_id, task_id, agent_id, output_hash, schema_hash, rules_hash, verified_at, verifier_version, enforce_rules, strict_content_check), verify and attestation - errors, errors_de…",
"enum": [
"full",
"compact"
],
"type": "string"
},
"enforce_rules": {
"description": "Opt-in. When true, every configured bound and consistency rule must hold, or the result is 'fail' (like strict_content_check), with an 'enforce_rules: ...' entry in errors. That includes a rule or bound that cannot run (its path is missing, a value is not comparable, a value has nothing to be compared against): it fails rather than passing silently, so omitting a field, in the whole path or in any array element the…",
"type": "boolean"
},
"expected_schema": {
"description": "Required. The JSON Schema (draft-04 to 2020-12) that submitted_output must satisfy: your own requirements, as a JSON object.",
"type": "object"
},
"rules": {
"description": "Optional cross-field rules: sum_equals, gte, lte, exists_in, unique (duplicate detection). Violations are reported as informational flags unless enforce_rules is true.",
"items": {
"properties": {
"equals": {
"type": [
"integer",
"number",
"null"
]
},
"equals_field": {
"type": [
"string",
"null"
]
},
"field": {
"type": "string"
},
"if_present": {
"type": "boolean"
},
"in_field": {
"type": [
"string",
"null"
]
},
"other_field": {
"type": [
"string",
"null"
]
},
"tolerance": {
"type": "number"
},
"type": {
"type": "string"
},
"value": {
"type": [
"integer",
"number",
"string",
"null"
]
},
"values": {
"type": [
"array",
"null"
]
}
},
"required": [
"type",
"field"
],
"type": "object"
},
"type": [
"array",
"null"
]
},
"strict_content_check": {
"description": "Opt-in. When true, any string in submitted_output containing control characters (e.g. null bytes) or embedded HTML/script markup makes the result 'fail'. When false (default) this is not checked at all.",
"type": "boolean"
},
"submitted_output": {
"description": "Required. The output being checked: any JSON value (object, array, string, number, boolean or null), exactly as the AI agent produced it."
},
"task_id": {
"description": "Your own identifier for this verification. 1-200 printable characters, no control characters and no lone Unicode surrogate; a request outside that range is rejected (422), not truncated.",
"type": "string"
}
},
"required": [
"task_id",
"expected_schema",
"submitted_output"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"agent_id": {
"description": "Echo of the agent_id label supplied in the request; null if none",
"type": [
"string",
"null"
]
},
"attestation": {
"description": "Ed25519 signature over this response (every field above, including the receipt fields) plus the timestamp and…",
"type": "object"
},
"enforce_rules": {
"description": "Whether the request had enforce_rules on: true means every rule and bound had to hold (violations and unrunna…",
"type": "boolean"
},
"errors": {
"description": "Every violation (schema, then strict-content, then enforce_rules), capped at the first 100 schema-validation…",
"items": {
"type": "string"
},
"type": "array"
},
"errors_detail": {
"description": "The structured form of the leading entries in `errors`, same order, so a caller can act (check, path, expecte…",
"items": {
"properties": {
"check": {
"type": "string"
},
"expected": {
"type": "string"
},
"found": {
"type": "string"
},
"message": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"check",
"path",
"expected",
"found",
"message"
],
"type": "object"
},
"type": "array"
},
"errors_detail_omitted": {
"description": "errors_total minus errors_detail_total; 0 when every error has a structured form",
"type": "integer"
},
"errors_detail_total": {
"description": "How many entries in `errors` have a structured form available",
"type": "integer"
},
"errors_omitted": {
"description": "errors_total minus len(errors); 0 when nothing was cut off",
"type": "integer"
},
"errors_total": {
"description": "How many errors exist in total",
"type": "integer"
},
"flags": {
"description": "Integrity findings (placeholder text, possible truncation, bounds and consistency-rule violations)",
"items": {
"properties": {
"check": {
"type": "string"
},
"detail": {
"type": "string"
},
"field": {
"type": "string"
},
"severity": {
"type": "string"
}
},
"required": [
"check",
"field",
"detail"
],
"type": "object"
},
"type": "array"
},
"flags_omitted": {
"description": "Integrity flags beyond the 100 returned; 0 when nothing was cut off",
"type": "integer"
},
"flags_total": {
"description": "How many flags exist in total (flags holds at most the first 100, plus a flags_truncated marker when there ar…",
"type": "integer"
},
"hints": {
"description": "Machine-actionable, template-based fix hints: one per schema validation failure (first, in the same order as…",
"items": {
"properties": {
"check": {
"type": "string"
},
"expected": {
"type": "string"
},
"found": {
"type": "string"
},
"path": {
"type": "string"
},
"source": {
"type": "string"
}
},
"required": [
"source",
"check",
"path",
"expected",
"found"
],
"type": "object"
},
"type": "array"
},
"hints_omitted": {
"description": "hints_total minus len(hints)",
"type": "integer"
},
"hints_total": {
"description": "How many hints exist in total (hints holds at most the first 20)",
"type": "integer"
},
"integrity_checks": {
"description": "Integrity checks that passed out of those evaluated (per string: placeholder and truncation, plus strict cont…",
"type": "object"
},
"next_actions": {
"description": "What to do next, machine-readable",
"items": {
"type": "object"
},
"type": "array"
},
"output_hash": {
"description": "SHA-256 (64 lowercase hex chars = 32 bytes; add 0x to use it as a bytes32) of the JCS canonical JSON of submi…",
"type": [
"string",
"null"
]
},
"overall": {
"description": "A pooled count across both groups: (schema_compliance.passed + integrity_checks.passed) / (schema_compliance.…",
"type": "object"
},
"request_hash": {
"description": "SHA-256 (64 lowercase hex chars, no 0x prefix) of the RFC 8785 (JCS) canonical JSON of the request as parsed:…",
"type": [
"string",
"null"
]
},
"result": {
"enum": [
"pass",
"fail"
],
"type": "string"
},
"rules_hash": {
"description": "SHA-256 (64 lowercase hex chars) of the RFC 8785 (JCS) canonical JSON of {\"bounds\": <the bounds you supplied…",
"type": [
"string",
"null"
]
},
"schema_compliance": {
"description": "JSON Schema assertions that passed out of those evaluated (each keyword such as type/required/minimum, at eac…",
"type": "object"
},
"schema_hash": {
"description": "SHA-256 (64 lowercase hex chars) of the JCS canonical JSON of expected_schema",
"type": [
"string",
"null"
]
},
"strict_content_check": {
"description": "Whether the request had strict_content_check on: true means control characters and embedded HTML/script marku…",
"type": "boolean"
},
"summary": {
"description": "Compact digest of the verdict: the same `result`, and `blocking_checks` (the distinct check codes that caused…",
"type": "object"
},
"task_id": {
"type": "string"
},
"verification_id": {
"description": "Unique UUID (v4) for this verification",
"type": "string"
},
"verified_at": {
"description": "ISO-8601 UTC time this service ran the verification",
"type": "string"
},
"verifier_version": {
"type": "string"
},
"verify": {
"description": "How to verify this attestation and receipt without any other lookup than this response and public_key_url: ca…",
"type": "object"
}
},
"required": [
"summary",
"next_actions",
"result",
"verification_id",
"task_id",
"agent_id",
"output_hash",
"schema_hash",
"rules_hash",
"request_hash",
"verified_at",
"verifier_version",
"enforce_rules",
"strict_content_check",
"errors",
"errors_total",
"errors_omitted",
"errors_detail_total",
"errors_detail_omitted",
"flags_total",
"flags_omitted",
"hints",
"hints_total",
"hints_omitted",
"schema_compliance",
"integrity_checks",
"overall",
"verify",
"attestation"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}