{"openapi":"3.1.0","info":{"title":"TrueCite citation identity pilot","version":"2.0.0","description":"Results-only, non-billable partner pilot. Partial HCA holdings. Source observation is not current publication or good-law verification. No quotation/content checks. Browser paid reports use a separate account flow."},"servers":[{"url":"https://truecite.com.au"}],"paths":{"/api/v2/verify":{"post":{"operationId":"verifyCitationIdentities","security":[{"partnerBearer":[]}],"description":"Requires verify scope. Exact same-tenant/route/mode/key retry returns the stored run without duplicate usage. Changed normalized input under the same key returns 409. Submit citation identities only.","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{8,128}$"}}],"requestBody":{"required":true,"description":"Maximum 512 KiB UTF-8 JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CitationBatch"}}}},"responses":{"200":{"description":"Server-held findings, which may all be unresolved.","headers":{"Idempotent-Replayed":{"schema":{"type":"string","enum":["true","false"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Verification"}}}},"400":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"403":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"409":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"413":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"415":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"429":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}},"headers":{"Retry-After":{"description":"Seconds until next permitted attempt.","schema":{"type":"string"}}}},"503":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"507":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/api/v2/coverage":{"get":{"operationId":"getCoverage","security":[],"responses":{"200":{"description":"Active official, historical publisher and derived parallel-citation tiers. Counts overlap; holdings are incomplete.","content":{"application/json":{"schema":{"type":"object","required":["coverage_version","public_unique_identities","entries"],"properties":{"coverage_version":{"type":"string"},"public_unique_identities":{"type":"integer"},"entries":{"type":"array","items":{"type":"object"}},"parallel_citations":{"type":"object","required":["available","table_version","pair_count","reporters","basis","holdings_complete","notice"],"properties":{"available":{"type":"boolean","description":"False when the derived table failed its integrity check. Report-style citations then answer PARALLEL_TABLE_UNAVAILABLE; all other checks are unaffected."},"table_version":{"type":["string","null"]},"pair_count":{"type":"integer","description":"Zero when unavailable."},"reporters":{"type":"array","items":{"type":"string"},"description":"Report series the table covers. Empty when unavailable."},"basis":{"type":"string","description":"How the pairs were derived. Not an official concordance."},"holdings_complete":{"const":false},"notice":{"type":"string"}}}}}}}},"503":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/api/v2/usage":{"get":{"operationId":"getOwnUsage","security":[{"partnerBearer":[]}],"description":"Requires usage:read scope. Own-tenant current UTC month only.","responses":{"200":{"description":"Successful requests and items; not a charge.","content":{"application/json":{"schema":{"type":"object","required":["month","requests","items","routes","mode","billable","commercial_rate"],"properties":{"month":{"type":"string"},"requests":{"type":"integer"},"items":{"type":"integer"},"routes":{"type":"array","items":{"type":"object"}},"mode":{"enum":["sandbox","production"]},"billable":{"const":false},"commercial_rate":{"type":"null"}}}}}},"401":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"403":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}},"503":{"description":"Controlled failure; no successful finding implied.","content":{"application/json":{"schema":{"type":"object","required":["error_code","message"],"properties":{"error_code":{"type":"string"},"message":{"type":"string"}}}}}}}}}},"components":{"securitySchemes":{"partnerBearer":{"type":"http","scheme":"bearer","description":"Opaque expiring id.secret credential. Never embed in a browser or URL."}},"schemas":{"CitationBatch":{"type":"object","additionalProperties":false,"required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["item_id","citation"],"properties":{"item_id":{"type":"string","minLength":1,"maxLength":128},"citation":{"type":"string","minLength":1,"description":"Up to 2048 UTF-8 bytes. One complete citation, optionally preceded by its case name."},"jurisdiction_hint":{"type":"string","description":"Compatibility hint only; not used to override parsing."}}}},"docLabel":{"type":"string","maxLength":160},"docHash":{"type":"string","pattern":"^[a-f0-9]{64}$"},"docHashKind":{"enum":["citation_text","extracted_document_text"],"default":"citation_text"}}},"Verification":{"type":"object","required":["run_id","results","metadata","billable"],"properties":{"run_id":{"type":"string"},"billable":{"const":false},"metadata":{"type":"object","required":["request_hash","checked_at","scope","content_checks_performed","coverage"],"properties":{"request_hash":{"type":"string"},"checked_at":{"type":"string","format":"date-time"},"scope":{"const":"citation_identity_only"},"content_checks_performed":{"const":false},"coverage":{"type":"object"}}},"results":{"type":"array","items":{"type":"object","required":["item_id","original_citation","existence_status","reason_codes","source_state","holdings_complete","message"],"properties":{"item_id":{"type":"string"},"original_citation":{"type":"string"},"existence_status":{"enum":["VERIFIED_EXISTS","IDENTITY_CONFLICT","UNRESOLVED"]},"reason_codes":{"type":"array","items":{"type":"string"}},"source_state":{"enum":["OFFICIAL_LISTING_AS_OF","PUBLISHER_RECORD_AS_OF",null]},"evidence_basis":{"enum":["official_listing","publisher_record",null]},"holdings_complete":{"const":false},"message":{"type":"string"}}}}}}}}}