{"openapi":"3.1.0","info":{"title":"Privacy Operations API","version":"1.0.0","description":"Read supplied privacy policies, notices, and records, list stated categories and retention periods, and point at missing or inconsistent fields. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/privacy-operations/policy-structure-audit":{"post":{"operationId":"audit_privacy_policy_structure","summary":"Audit privacy policy structure","description":"List headings and Section lines in a supplied policy and compare them with the sections the caller marks as required. Headings are still listed when a required section is absent. A missing section is a gap in the document, not a legal conclusion.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"policy":"# Purposes\n# Retention\nWe collect addresses for sign in.\n","requirements":[{"kind":"section","name":"Purposes"},{"kind":"section","name":"Legal basis"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"sections":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"additionalProperties":true}},"requirements":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"present":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"checked","sections":[{"name":"Purposes"},{"name":"Retention"}],"requirements":[{"name":"Purposes","present":true,"interpretation":"stated"},{"name":"Legal basis","present":false,"interpretation":"none"}],"findings":[{"kind":"ignored","code":"unlabeled_line","subject":"policy","detail":"Lines without a recognized label were not read and their text was not copied."},{"kind":"missing","code":"section_missing","subject":"Legal basis","detail":"This required section was not in the supplied headings. This is not a legal conclusion."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/personal-data-inventory-extract":{"post":{"operationId":"extract_a_personal_data_inventory","summary":"Extract a personal data inventory","description":"Copy categories, purposes, stated legal bases, and retention periods from Category fields. Prose is not mined for categories, and a stated basis is not assessed.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"categories":[{"name":"account email","purpose":"sign in","basis":"contract","retention":"30 days"},{"name":"support notes","purpose":"support"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"categories":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"purpose":{"type":"string"},"basis":{"type":"string"},"retention":{"type":"string"},"document":{"type":"string"},"basisStated":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"extracted","categories":[{"name":"account email","purpose":"sign in","basis":"contract","retention":"30 days","document":"","basisStated":true,"interpretation":"stated"},{"name":"support notes","purpose":"support","basis":"","retention":"","document":"","basisStated":false,"interpretation":"stated"}],"findings":[{"kind":"missing","code":"basis_missing","subject":"support notes","detail":"No legal basis was stated for this category. None was inferred."},{"kind":"missing","code":"retention_missing","subject":"support notes","detail":"No retention period was stated for this category."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/data-retention-policy-check":{"post":{"operationId":"check_stated_retention_periods","summary":"Check stated retention periods","description":"Read retention periods stated by the caller. A period counts only as days, months, years, account lifetime, or until deletion. Months are not converted to days, and no statutory period is invented.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"categories":[{"name":"account email","purpose":"sign in","basis":"contract","retention":"30 days"},{"name":"support notes","purpose":"support","basis":"consent","retention":"soon"}],"requirements":[{"kind":"category","name":"billing"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"periods":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"period":{"type":"string"},"unit":{"type":"string"},"count":{"type":"number"},"readable":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"checked","periods":[{"category":"account email","period":"30 days","unit":"day","count":30,"readable":true,"interpretation":"stated"},{"category":"support notes","period":"soon","unit":"","count":0,"readable":false,"interpretation":"stated"}],"findings":[{"kind":"observation","code":"period_unreadable","subject":"support notes","detail":"The stated retention period is not a day, month, year, account lifetime, or until deletion. It was not rewritten."},{"kind":"missing","code":"retention_required_missing","subject":"billing","detail":"This caller-required category has no stated retention period."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/notice-consistency-check":{"post":{"operationId":"compare_a_policy_and_a_notice","summary":"Compare a policy and a notice","description":"Compare purpose, stated basis, and retention for the same category in a supplied policy and notice. A difference is reported and neither document is chosen.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"policy":"Category: account email | sign in | contract | 30 days\n","notice":"Category: account email | marketing | contract | 30 days\n"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"comparisons":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"field":{"type":"string"},"policy":{"type":"string"},"notice":{"type":"string"},"match":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"compared","comparisons":[{"category":"account email","field":"purpose","policy":"sign in","notice":"marketing","match":false,"interpretation":"stated"},{"category":"account email","field":"basis","policy":"contract","notice":"contract","match":true,"interpretation":"stated"},{"category":"account email","field":"retention","policy":"30 days","notice":"30 days","match":true,"interpretation":"stated"}],"findings":[{"kind":"conflict","code":"value_differs","subject":"account email purpose","detail":"The stated purpose differs between the policy and the notice. Neither value was chosen."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/cookie-consent-configuration-audit":{"post":{"operationId":"audit_cookie_consent_configuration","summary":"Audit cookie consent configuration","description":"Read cookie purpose, duration, and the consent state supplied by the caller. An optional cookie without an opt-in or opt-out state is reported. Consent is not enforced and the cookie is not classified by law.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"cookies":[{"name":"session","purpose":"sign in","duration":"session","consent":"required"},{"name":"analytics","purpose":"measurement","duration":"30 days","consent":"optional"}],"consents":[{"name":"analytics","state":"not-set"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"consentEnforced":{"type":"boolean"},"cookies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"purpose":{"type":"string"},"duration":{"type":"string"},"consent":{"type":"string"},"consentState":{"type":"string"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"checked","consentEnforced":false,"cookies":[{"name":"session","purpose":"sign in","duration":"session","consent":"required","consentState":"","interpretation":"stated"},{"name":"analytics","purpose":"measurement","duration":"30 days","consent":"optional","consentState":"not-set","interpretation":"stated"}],"findings":[{"kind":"missing","code":"consent_not_set","subject":"analytics","detail":"This cookie is marked optional and no opt-in or opt-out state was supplied. Consent was not enforced."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/data-subject-request-classify":{"post":{"operationId":"classify_data_subject_requests","summary":"Classify data subject requests","description":"Match a supplied request type to access, deletion, correction, export, objection, or restriction. Any other wording is left unrecognized. No response deadline is calculated.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"requests":[{"id":"R-100","type":"deletion","received":"2026-11-01"},{"id":"R-200","type":"erase me","received":"2026-02-31"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"recognized":{"type":"boolean"},"received":{"type":"string"},"legalDeadline":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"classified","requests":[{"id":"R-100","type":"deletion","recognized":true,"received":"2026-11-01","legalDeadline":false,"interpretation":"stated"},{"id":"R-200","type":"erase me","recognized":false,"received":"","legalDeadline":false,"interpretation":"stated"}],"findings":[{"kind":"observation","code":"type_unrecognized","subject":"R-200","detail":"The request type is not one of access, deletion, correction, export, objection, or restriction. It was not remapped."},{"kind":"observation","code":"date_unreadable","subject":"R-200","detail":"The received date is not a real YYYY-MM-DD day. It was not rewritten."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.03"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/data-deletion-evidence-check":{"post":{"operationId":"check_deletion_evidence","summary":"Check deletion evidence","description":"Compare supplied deletion requests with supplied evidence lines. A line that says deleted is only a statement in the request. No external record is accessed or deleted.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"requests":[{"id":"R-100","type":"deletion","received":"2026-11-01"},{"id":"R-200","type":"deletion","received":"2026-11-01"}],"evidence":[{"requestId":"R-100","action":"deleted","date":"2026-11-02"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"checks":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string"},"action":{"type":"string"},"recognized":{"type":"boolean"},"date":{"type":"string"},"deletionStated":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"checked","checks":[{"requestId":"R-100","action":"deleted","recognized":true,"date":"2026-11-02","deletionStated":true,"interpretation":"stated"}],"findings":[{"kind":"observation","code":"deletion_stated","subject":"R-100","detail":"The supplied record says deleted. No external record was deleted."},{"kind":"missing","code":"evidence_missing","subject":"R-200","detail":"This deletion request has no supplied evidence. No record was deleted."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/privacy-operations/documentation-report":{"post":{"operationId":"report_privacy_documentation","summary":"Report privacy documentation","description":"Combine supplied sections, categories, retention periods, notice differences, cookie consent states, request types, and deletion evidence. The report does not determine GDPR compliance.","tags":["privacy-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"policy":{"type":"string","maxLength":200000},"notice":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"sections":{"maxItems":80,"type":"array","items":{"type":"string","minLength":1,"maxLength":80}},"requirements":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["section","category","field"]},"name":{"type":"string","minLength":1,"maxLength":160}},"required":["kind","name"],"additionalProperties":false}},"categories":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"purpose":{"type":"string","maxLength":160},"basis":{"type":"string","maxLength":160},"retention":{"type":"string","maxLength":160},"document":{"type":"string","enum":["policy","notice"]}},"required":["name"],"additionalProperties":false}},"cookies":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"purpose":{"type":"string","maxLength":160},"duration":{"type":"string","maxLength":80},"consent":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}},"consents":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"state":{"type":"string","maxLength":40}},"required":["name","state"],"additionalProperties":false}},"requests":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"type":{"type":"string","maxLength":80},"received":{"type":"string","maxLength":40}},"required":["id"],"additionalProperties":false}},"evidence":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"maxLength":80},"action":{"type":"string","maxLength":40},"date":{"type":"string","maxLength":40}},"required":["requestId"],"additionalProperties":false}}},"additionalProperties":false},"example":{"policy":"# Purposes\nCategory: account email | sign in | contract | 30 days\n","notice":"Category: account email | marketing | contract | 30 days\n","requirements":[{"kind":"section","name":"Legal basis"},{"kind":"category","name":"billing"}],"cookies":[{"name":"analytics","purpose":"measurement","duration":"30 days","consent":"optional"}],"consents":[{"name":"analytics","state":"not-set"}],"requests":[{"id":"R-100","type":"deletion","received":"2026-11-01"},{"id":"R-200","type":"deletion","received":"2026-11-01"}],"evidence":[{"requestId":"R-100","action":"deleted","date":"2026-11-02"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"gdprCompliance":{"type":"boolean"},"legalConclusion":{"type":"boolean"},"recordsAccessed":{"type":"boolean"},"recordsDeleted":{"type":"boolean"},"status":{"type":"string"},"sectionCount":{"type":"number"},"categoryCount":{"type":"number"},"sections":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"}},"additionalProperties":true}},"categories":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"purpose":{"type":"string"},"basis":{"type":"string"},"retention":{"type":"string"},"document":{"type":"string"},"basisStated":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"periods":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"period":{"type":"string"},"unit":{"type":"string"},"count":{"type":"number"},"readable":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"comparisons":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"field":{"type":"string"},"policy":{"type":"string"},"notice":{"type":"string"},"match":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"consentEnforced":{"type":"boolean"},"cookies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"purpose":{"type":"string"},"duration":{"type":"string"},"consent":{"type":"string"},"consentState":{"type":"string"},"interpretation":{"type":"string"}},"additionalProperties":true}},"requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"recognized":{"type":"boolean"},"received":{"type":"string"},"legalDeadline":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"checks":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string"},"action":{"type":"string"},"recognized":{"type":"boolean"},"date":{"type":"string"},"deletionStated":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-03T17:00:00.000Z","gdprCompliance":false,"legalConclusion":false,"recordsAccessed":false,"recordsDeleted":false,"status":"checked","sectionCount":1,"categoryCount":2,"sections":[{"name":"Purposes"}],"categories":[{"name":"account email","purpose":"sign in","basis":"contract","retention":"30 days","document":"policy","basisStated":true,"interpretation":"stated"},{"name":"account email","purpose":"marketing","basis":"contract","retention":"30 days","document":"notice","basisStated":true,"interpretation":"stated"}],"periods":[{"category":"account email","period":"30 days","unit":"day","count":30,"readable":true,"interpretation":"stated"},{"category":"account email","period":"30 days","unit":"day","count":30,"readable":true,"interpretation":"stated"}],"comparisons":[{"category":"account email","field":"purpose","policy":"sign in","notice":"marketing","match":false,"interpretation":"stated"},{"category":"account email","field":"basis","policy":"contract","notice":"contract","match":true,"interpretation":"stated"},{"category":"account email","field":"retention","policy":"30 days","notice":"30 days","match":true,"interpretation":"stated"}],"consentEnforced":false,"cookies":[{"name":"analytics","purpose":"measurement","duration":"30 days","consent":"optional","consentState":"not-set","interpretation":"stated"}],"requests":[{"id":"R-100","type":"deletion","recognized":true,"received":"2026-11-01","legalDeadline":false,"interpretation":"stated"},{"id":"R-200","type":"deletion","recognized":true,"received":"2026-11-01","legalDeadline":false,"interpretation":"stated"}],"checks":[{"requestId":"R-100","action":"deleted","recognized":true,"date":"2026-11-02","deletionStated":true,"interpretation":"stated"}],"findings":[{"kind":"missing","code":"section_missing","subject":"Legal basis","detail":"This required section was not in the supplied headings. This is not a legal conclusion."},{"kind":"missing","code":"retention_required_missing","subject":"billing","detail":"This caller-required category has no stated retention period."},{"kind":"conflict","code":"value_differs","subject":"account email purpose","detail":"The stated purpose differs between the policy and the notice. Neither value was chosen."},{"kind":"missing","code":"consent_not_set","subject":"analytics","detail":"This cookie is marked optional and no opt-in or opt-out state was supplied. Consent was not enforced."},{"kind":"observation","code":"deletion_stated","subject":"R-100","detail":"The supplied record says deleted. No external record was deleted."},{"kind":"missing","code":"evidence_missing","subject":"R-200","detail":"This deletion request has no supplied evidence. No record was deleted."}],"limitations":["This is not a GDPR compliance determination or a legal conclusion.","Categories, purposes, retention periods, and stated legal bases are copied only from labeled fields supplied by the caller.","Email addresses and other direct identifiers are not copied into the response.","No external customer record is accessed or deleted.","A missing item means it was not in the supplied documents."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.12"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}