{"openapi":"3.1.0","info":{"title":"tithonus","version":"3.0.0","description":"Signed time, notarisation and public randomness for agents. All GET, plain text."},"servers":[{"url":"https://tithonus.org"}],"paths":{"/now":{"get":{"operationId":"now","summary":"Signed current UTC time.","parameters":[],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/now/{nonce}":{"get":{"operationId":"nowNonce","summary":"Signed current time with your nonce bound in.","parameters":[{"name":"nonce","in":"path","required":true,"description":"Any string; a fresh one beats caches.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/stamp/{text}":{"get":{"operationId":"stampText","summary":"Notarise text; server salts and hashes it. Returns a receipt link.","parameters":[{"name":"text","in":"path","required":true,"description":"Percent-encoded text, up to 2000 chars.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/ts/{sha256}":{"get":{"operationId":"stampHash","summary":"Notarise a sha256 you computed. Repeats return the first receipt.","parameters":[{"name":"sha256","in":"path","required":true,"description":"64 hex digits.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/v/{sha256}":{"get":{"operationId":"lookup","summary":"Earliest receipt for a hash. Never creates.","parameters":[{"name":"sha256","in":"path","required":true,"description":"64 hex digits.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/r/{receipt}":{"get":{"operationId":"check","summary":"Check a receipt link is genuine.","parameters":[{"name":"receipt","in":"path","required":true,"description":"<hash>.<unix>.<sig>[.<salt>]","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/r/{receipt}/{text}":{"get":{"operationId":"checkText","summary":"Check a receipt and that it matches your text.","parameters":[{"name":"receipt","in":"path","required":true,"description":"<hash>.<unix>.<sig>[.<salt>]","schema":{"type":"string"}},{"name":"text","in":"path","required":true,"description":"Percent-encoded text.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/beacon":{"get":{"operationId":"beacon","summary":"Latest signed randomness.","parameters":[],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/beacon/{round}":{"get":{"operationId":"beaconRound","summary":"Signed randomness for a past round.","parameters":[{"name":"round","in":"path","required":true,"description":"Unix seconds from 1791244800.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/keys":{"get":{"operationId":"keys","summary":"Signing public keys.","parameters":[],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/ots/{sha256}":{"get":{"operationId":"otsProof","summary":"OpenTimestamps proof file for a stamp, anchored in Bitcoin; verifiable without tithonus.","parameters":[{"name":"sha256","in":"path","required":true,"description":"64 hex digits.","schema":{"type":"string"}}],"responses":{"200":{"description":"Plain-text answer. Lines before 'sig ' are signed; 'err <code>: ...' means a no-answer.","content":{"text/plain":{"schema":{"type":"string"}}}}}}}}}