{"openapi": "3.1.0", "info": {"title": "certiv", "description": "Papers that carry machine-checkable receipts.", "version": "0.1.0"}, "paths": {"/api/v1/papers": {"post": {"summary": "Submit Paper", "description": "Submission = the CLI's submit over HTTP: same module, same\nfail-closed rules. Pinned input files ride along so the node can\nre-execute; their hashes must match the receipt's pins.", "operationId": "submit_paper_api_v1_papers_post", "requestBody": {"content": {"multipart/form-data": {"schema": {"$ref": "#/components/schemas/Body_submit_paper_api_v1_papers_post"}}}, "required": true}, "responses": {"201": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/papers/{paper_id}": {"get": {"summary": "Get Paper", "operationId": "get_paper_api_v1_papers__paper_id__get", "parameters": [{"name": "paper_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Paper Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/ledger/head": {"get": {"summary": "Ledger Head", "description": "The transparency checkpoint: current chain head, signed by the\nnode key. Anyone can compare today's head against yesterday's chain.", "operationId": "ledger_head_api_v1_ledger_head_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}}}}, "/api/v1/replay/{token}": {"get": {"summary": "Replay Status", "operationId": "replay_status_api_v1_replay__token__get", "parameters": [{"name": "token", "in": "path", "required": true, "schema": {"type": "string", "title": "Token"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}, "post": {"summary": "Replay", "description": "Re-verify: enqueue a fresh run of the same claim under the same\npinned receipt. The reader gets a new signed verdict beside the old.", "operationId": "replay_api_v1_replay__token__post", "parameters": [{"name": "token", "in": "path", "required": true, "schema": {"type": "string", "title": "Token"}}], "responses": {"202": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/badge/{paper_id}.svg": {"get": {"summary": "Badge", "operationId": "badge_badge__paper_id__svg_get", "parameters": [{"name": "paper_id", "in": "path", "required": true, "schema": {"type": "string", "title": "Paper Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {}}}}, "422": {"description": "Validation Error", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HTTPValidationError"}}}}}}}, "/api/v1/health": {"get": {"summary": "Health", "operationId": "health_api_v1_health_get", "responses": {"200": {"description": "Successful Response", "content": {"text/plain": {"schema": {"type": "string"}}}}}}}}, "components": {"schemas": {"Body_submit_paper_api_v1_papers_post": {"properties": {"manuscript": {"type": "string", "format": "binary", "title": "Manuscript"}, "receipt": {"type": "string", "format": "binary", "title": "Receipt"}, "tier": {"type": "string", "title": "Tier"}, "inputs": {"items": {"type": "string", "format": "binary"}, "type": "array", "title": "Inputs", "default": []}}, "type": "object", "required": ["manuscript", "receipt", "tier"], "title": "Body_submit_paper_api_v1_papers_post"}, "HTTPValidationError": {"properties": {"detail": {"items": {"$ref": "#/components/schemas/ValidationError"}, "type": "array", "title": "Detail"}}, "type": "object", "title": "HTTPValidationError"}, "ValidationError": {"properties": {"loc": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "msg": {"type": "string", "title": "Message"}, "type": {"type": "string", "title": "Error Type"}}, "type": "object", "required": ["loc", "msg", "type"], "title": "ValidationError"}}}}
