{"openapi":"3.1.0","info":{"title":"CheckThisFile Website Publications API","version":"1.0.0","description":"Owner-controlled, public website text versions. Store captured text explicitly; browser-only file registration remains hash-only. Dates use the service clock and are not qualified electronic timestamps."},"servers":[{"url":"https://checkthisfile.com"}],"x-check-interval-ms":21600000,"x-plan-limits":{"basic":{"pages":5,"bytes":5242880},"integration":{"pages":50,"bytes":104857600},"business":{"pages":250,"bytes":524288000}},"x-retention":"Active account and, where required, active paid access. Expired copies cannot be restored.","components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Source":{"type":"object","additionalProperties":false,"required":["url","elementId","title","language"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048},"elementId":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,79}$"},"title":{"type":"string","minLength":3,"maxLength":120},"language":{"type":"string","enum":["en","es"]}}},"Publication":{"$ref":"/schemas/web-publication-v1.json"},"Observation":{"$ref":"/schemas/web-observation-v1.json"}}},"paths":{"/api/v1/publications":{"get":{"summary":"List your website records","security":[{"bearerAuth":[]}],"x-required-scope":"publications:read","responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/{documentId}":{"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"get":{"summary":"Read your website record, retained text and signed evidence","security":[{"bearerAuth":[]}],"x-required-scope":"publications:read","responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/origins":{"post":{"summary":"Prepare domain ownership file","security":[{"bearerAuth":[]}],"x-required-scope":"publications:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri"}}}}}},"responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/origins/{originId}/verify":{"parameters":[{"name":"originId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"post":{"summary":"Fetch and verify the ownership file","security":[{"bearerAuth":[]}],"x-required-scope":"publications:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","maxProperties":0}}}},"responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/captures":{"post":{"summary":"Fetch an owned page and preview its text for 15 minutes","security":[{"bearerAuth":[]}],"x-required-scope":"publications:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["url","elementId","title","language"],"properties":{"url":{"type":"string","format":"uri","maxLength":2048},"elementId":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,79}$"},"title":{"type":"string","minLength":3,"maxLength":120},"language":{"type":"string","enum":["en","es"]}}}}}},"responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/versions":{"post":{"summary":"Publish the confirmed preview as an immutable version","security":[{"bearerAuth":[]}],"x-required-scope":"publications:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["captureId","requestId","publicConsent"],"properties":{"captureId":{"type":"string","format":"uuid"},"requestId":{"type":"string","format":"uuid"},"publicConsent":{"const":true},"documentId":{"type":"string","format":"uuid"},"expectedVersion":{"type":"integer","minimum":1}}}}}},"responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"201":{"description":"Version created. data: documentId, versionId, replayed=false. Repeating the same requestId and body returns 200 without consuming another registration."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/{documentId}/check":{"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"post":{"summary":"Record a dated source observation","security":[{"bearerAuth":[]}],"x-required-scope":"publications:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","maxProperties":0}}}},"responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/v1/publications/{documentId}/versions/{versionId}/withdraw":{"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"post":{"summary":"Withdraw a specific version while preserving its history","security":[{"bearerAuth":[]}],"x-required-scope":"publications:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["consent"],"properties":{"consent":{"const":true}}}}}},"responses":{"200":{"description":"Operation completed. Envelope: data, error, meta."},"401":{"description":"Invalid or revoked credential."},"403":{"description":"Permission or active access required."},"409":{"description":"Ownership, preview, version, lease or idempotency conflict."},"410":{"description":"Retention ended."},"422":{"description":"Invalid input."},"429":{"description":"Plan or request limit."},"503":{"description":"Source or evidence unavailable. This is not a text mismatch."}}}},"/api/public/publications/{documentId}/versions/{versionId}/{format}":{"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"versionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"format","in":"path","required":true,"schema":{"type":"string","enum":["text","evidence"]}}],"get":{"summary":"Download retained public text or signed evidence","responses":{"200":{"description":"UTF-8 text or JSON evidence with text, payload, signature and latest signed observation. Requires an independently trusted key for offline verification."},"404":{"description":"Unknown version."},"410":{"description":"Retention ended."},"429":{"description":"Rate limited."},"503":{"description":"Evidence invalid or unavailable."}}}}}}