{"openapi":"3.1.0","info":{"title":"AI Act Check","version":"2026-11-10","description":"Where an AI use case sits under the EU AI Act: tier, articles, obligations by role, dates, GDPR duties. Not legal advice."},"x-service-info":{"categories":["ai","compliance","legal"],"docs":{"homepage":"https://ai-act-check-projects.vercel.app/","apiReference":"https://ai-act-check-projects.vercel.app/openapi.json","llms":"https://ai-act-check-projects.vercel.app/llms.txt"}},"paths":{"/":{"get":{"summary":"Status page: what it is, price, last 10 paid calls","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"rules_version":{"type":"string"}}}}}}}}},"/questions":{"get":{"summary":"The questionnaire (data/questions.json)","responses":{"200":{"description":"Questions","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/llms.txt":{"get":{"summary":"How an agent uses this API","responses":{"200":{"description":"Plain text","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"summary":"This document","responses":{"200":{"description":"OpenAPI 3.1","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/classify":{"post":{"summary":"Classify an AI use case under the EU AI Act (paid)","x-payment-info":{"offers":[{"amount":"60","currency":"usd","description":"EU AI Act tier, articles, obligations by role, GDPR duties, receipt","intent":"charge","method":"stripe"},{"amount":"600000","currency":"0x20c0000000000000000000000000000000000000","description":"EU AI Act tier, articles, obligations by role, GDPR duties, receipt","intent":"charge","method":"tempo"}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["answers"],"properties":{"use_case":{"type":"string","maxLength":1000,"description":"Optional, echoed back, never stored"},"answers":{"type":"object","additionalProperties":{"type":["boolean","string"]}}}}}}},"responses":{"200":{"description":"Verdict, with a Payment-Receipt header","content":{"application/json":{"schema":{"type":"object","required":["tier","role","matched","obligations","gdpr_short","missing","invalid","rules_version","disclaimer"],"properties":{"tier":{"type":"string","enum":["prohibited","high","limited","minimal","incomplete"]},"role":{"type":["string","null"]},"matched":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tier":{"type":"string"},"title":{"type":"string"},"article":{"type":"string"},"note":{"type":"string"}}}},"obligations":{"type":"array","items":{"type":"object","properties":{"law":{"type":"string","enum":["AI Act","GDPR"]},"text":{"type":"string"},"article":{"type":"string"},"role":{"type":"string"},"applies_from":{"type":"string"},"key":{"type":"boolean"}}}},"gdpr_short":{"type":"array","items":{"type":"string"}},"missing":{"type":"array","items":{"type":"string"}},"invalid":{"type":"array","items":{"type":"string"}},"rules_version":{"type":"string"},"disclaimer":{"type":"string"}}}}}},"400":{"description":"Malformed JSON or invalid answers (checked before payment)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"invalid":{"type":"array","items":{"type":"string"}}}}}}},"402":{"description":"Payment required: MPP challenge in the WWW-Authenticate: Payment header"},"503":{"description":"Payments not configured","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"invalid":{"type":"array","items":{"type":"string"}}}}}}}}}},"/live":{"get":{"summary":"Live screen for the room","responses":{"200":{"description":"HTML page","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/live/feed":{"get":{"summary":"Recent paid checks, newest first, max 20","responses":{"200":{"description":"Feed","content":{"application/json":{"schema":{"type":"object","properties":{"checks":{"type":"array","items":{"type":"object"}}}}}}}}}},"/public/{path}":{"get":{"summary":"Static files from public/","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"File"}}}}}}