{"openapi":"3.1.0","info":{"title":"Acutis Contract","version":"1.1.0","description":"Validate up to ten JSON documents against JSON Schema draft-07 or 2020-12. Returns per-document validity and actionable errors with instance paths. Runs isolated with bounded time and memory; no remote schema loading or automatic data modification. Price: 0.02 USDC per operation on Base mainnet via x402 v2. Empty unsigned POSTs inspect payment and discovery metadata only; empty signed requests are rejected before verification or settlement. Docs and one fixed example are free. No API key or wallet private key is sent to this service. JSON artifact envelopes carry base64 bytes, MIME type, size and SHA-256; decode bytes to save the file."},"servers":[{"url":"https://contract.acutisignatius.com"}],"paths":{"/v1/contracts/validate":{"post":{"operationId":"contractWork","summary":"Validate agent output against a data contract.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"schema":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"boolean"}]},"documents":{"minItems":1,"maxItems":10,"type":"array","items":{}},"draft":{"default":"2020-12","type":"string","enum":["2020-12","draft-07"]}},"required":["schema","documents"],"additionalProperties":false},"example":{"schema":{"type":"object","required":["email","quantity"],"properties":{"email":{"type":"string","format":"email"},"quantity":{"type":"integer","minimum":1}},"additionalProperties":false},"documents":[{"email":"avery@example.com","quantity":3},{"email":"invalid-email","quantity":0}]}}}},"responses":{"200":{"description":"Validation report + JSON paths; only released after successful settlement","content":{"application/json":{"schema":{"type":"object","properties":{"draft":{"enum":["draft-07","2020-12"]},"documents":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0},"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"instance_path":{"type":"string"},"schema_path":{"type":"string"},"keyword":{"type":"string"},"message":{"type":"string"},"parameters":{"type":"object"}},"required":["instance_path","schema_path","keyword","message","parameters"],"additionalProperties":true}},"truncated":{"type":"boolean"}},"required":["index","valid","errors","truncated"],"additionalProperties":true}},"valid_count":{"type":"integer","minimum":0},"invalid_count":{"type":"integer","minimum":0},"data_modified":{"const":false}},"required":["draft","documents","valid_count","invalid_count","data_modified"],"additionalProperties":true},"examples":{"fixed":{"summary":"Actual fixed example response","externalValue":"/v1/example"}}}}},"402":{"description":"x402 payment required. Retry exact input with PAYMENT-SIGNATURE."},"409":{"description":"Proof bound to another request or already processing"},"422":{"description":"Input, schema or processing limit invalid; no payment requested"},"429":{"description":"Instance capacity exhausted; Retry-After; no payment requested"},"503":{"description":"Work or facilitator unavailable; no protected result"}}}},"/v1/example":{"get":{"summary":"One fixed free example; query parameters do not customize it","responses":{"200":{"description":"Validation report + JSON paths","content":{"application/json":{"schema":{"type":"object","properties":{"draft":{"enum":["draft-07","2020-12"]},"documents":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":0},"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"instance_path":{"type":"string"},"schema_path":{"type":"string"},"keyword":{"type":"string"},"message":{"type":"string"},"parameters":{"type":"object"}},"required":["instance_path","schema_path","keyword","message","parameters"],"additionalProperties":true}},"truncated":{"type":"boolean"}},"required":["index","valid","errors","truncated"],"additionalProperties":true}},"valid_count":{"type":"integer","minimum":0},"invalid_count":{"type":"integer","minimum":0},"data_modified":{"const":false}},"required":["draft","documents","valid_count","invalid_count","data_modified"],"additionalProperties":true}}}}}}},"/health":{"get":{"responses":{"200":{"description":"Service, network and price"}}}}}}