{"openapi":"3.1.0","info":{"title":"Lira Data Integrity Agent API","version":"0.2.0","description":"Evidence-first CSV/JSON preflight auditing for agents. Detect missing values, exact duplicates, duplicate identifiers, mixed types, and optional buyer-supplied rules. No guessed corrections."},"servers":[{"url":"https://lira-data-integrity-agent.cristiand182gomez.workers.dev"}],"paths":{"/audit":{"post":{"operationId":"csv-json-data-quality-audit","summary":"Preflight Row Check - deterministic CSV/JSON integrity audit","description":"Check CSV/JSON rows before an agent acts. Finds missing values, missing required fields, exact duplicate rows, duplicate IDs and mixed scalar types. Returns row-level findings plus SHA-256 of the input. Never imputes or infers values. Maximum 1,000 rows.","tags":["validation"],"x-price":"$0.005","x-payment-protocol":"x402","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"offers":[{"intent":"charge","method":"evm","amount":"5000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chainId":8453,"description":"USDC on Base"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditRequest"},"example":{"format":"json","data":[{"id":1,"status":"ok"},{"id":2},{"id":2,"status":"bad"}],"id_fields":["id"],"required_fields":["id","status"]}}}},"responses":{"200":{"description":"Audit result"},"400":{"description":"Invalid input"},"402":{"description":"Payment Required — x402 v2 PAYMENT-REQUIRED header"}}}},"/audit/rules":{"post":{"operationId":"json-csv-rule-validation-audit","summary":"Rule-Based Data Preflight - deterministic CSV/JSON validation with explicit rules","description":"Validate CSV/JSON rows against explicit buyer-supplied rules before an agent executes. Checks unique fields, allowed values, numeric ranges, regex patterns and date ordering, plus missing values, duplicate rows/IDs and mixed types. Returns row-level findings and SHA-256. Maximum 1,000 rows.","tags":["validation"],"x-price":"$0.01","x-payment-protocol":"x402","x-payment-info":{"protocols":[{"x402":{}}],"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"offers":[{"intent":"charge","method":"evm","amount":"10000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","chainId":8453,"description":"USDC on Base"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleAuditRequest"},"example":{"format":"json","data":[{"id":"A1","amount":10,"status":"ok"},{"id":"A2","amount":200,"status":"oops"}],"rules":{"unique_fields":["id"],"allowed_values":{"status":["ok","bad"]},"numeric_ranges":{"amount":{"min":0,"max":100}}}}}}},"responses":{"200":{"description":"Rule audit result"},"400":{"description":"Invalid input"},"402":{"description":"Payment Required — x402 v2 PAYMENT-REQUIRED header"}}}},"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Healthy"}}}}},"components":{"schemas":{"AuditRequest":{"type":"object","required":["format","data"],"properties":{"format":{"type":"string","enum":["csv","json"]},"data":{"description":"CSV string or JSON array of objects"},"id_fields":{"type":"array","items":{"type":"string"}},"required_fields":{"type":"array","items":{"type":"string"}},"auto_fix_exact_duplicates":{"type":"boolean","default":false}}},"RuleAuditRequest":{"allOf":[{"$ref":"#/components/schemas/AuditRequest"},{"type":"object","properties":{"rules":{"type":"object","properties":{"unique_fields":{"type":"array","items":{"type":"string"}},"allowed_values":{"type":"object","additionalProperties":{"type":"array"}},"numeric_ranges":{"type":"object","additionalProperties":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}}},"regex_patterns":{"type":"object","additionalProperties":{"type":"string"}},"date_order":{"type":"array","items":{"type":"object","required":["before","after"],"properties":{"before":{"type":"string"},"after":{"type":"string"}}}}}}}}]}}}}