{"info": {"contact": {"email": "entropoid.research@gmail.com"}, "description": "Independent grading of rented or hosted GPU rigs. A free one-minute preflight check, and a paid grade (x402, USDC on Base) measured against published bars for the GPU's peer class. Measured, not promised.", "license": {"name": "Apache-2.0"}, "title": "RigGrade grading API", "version": "v0.1", "x-guidance": "Paid operations answer a bare request with 402: the x402 v2 PaymentRequired is in the PAYMENT-REQUIRED header (USDC on Base, eip155:8453); retry with the signed PaymentPayload in PAYMENT-SIGNATURE. Free preflight and session steps need no payment. Measured, not promised."}, "openapi": "3.1.0", "paths": {"/": {"get": {"responses": {"200": {"description": "OK"}}, "security": [], "summary": "Service descriptor: prices, references per class, sale state"}}, "/cluster/acceptance": {"post": {"description": "Use when a rented multi-node GPU cluster must pass an independent acceptance test before a long run, a handover or a dispute.", "requestBody": {"content": {"application/json": {"schema": {"properties": {"evidence_pack": {"type": "object"}, "payer_role": {"description": "who is paying, declared and printed, not verified", "enum": ["buyer", "provider", "lender", "insurer", "other", "undeclared"], "type": "string"}}, "required": ["evidence_pack"], "type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "402": {"description": "x402 payment required (USDC on Base)"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}, "422": {"description": "evidence pack does not recompute"}, "503": {"description": "product off; nothing charged"}}, "security": [], "summary": "Cluster acceptance certificate (25 USDC): recomputes the evidence pack and issues a signed, stored certificate", "x-payment-info": {"price": {"amount": "25.00", "currency": "USD", "mode": "fixed"}, "protocols": [{"x402": {}}]}}}, "/cluster/acceptance/{id}": {"get": {"responses": {"200": {"description": "OK"}, "404": {"description": "no such certificate"}}, "security": [], "summary": "Fetch an issued certificate; the service checks its signature"}}, "/fixit": {"post": {"description": "Use when the free RigGrade preflight reported a warn or fail and you need the cause, the fix steps and who can act.", "requestBody": {"content": {"application/json": {"schema": {"properties": {"preflight_report": {"type": "object"}}, "required": ["preflight_report"], "type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "402": {"description": "x402 payment required (USDC on Base)"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}, "422": {"description": "nothing to fix"}, "503": {"description": "product off; nothing charged"}}, "security": [], "summary": "Host fix-it report (2 USDC): causes and fixes for every warn or fail finding in a preflight report; answers 402 with the x402 requirement", "x-payment-info": {"price": {"amount": "2.00", "currency": "USD", "mode": "fixed"}, "protocols": [{"x402": {}}]}}}, "/grade": {"post": {"description": "Use when a rented or hosted GPU rig must be graded against published bars for its peer class before you rely on it or list it.", "requestBody": {"content": {"application/json": {"schema": {"properties": {"session_id": {"type": "string"}}, "required": ["session_id"], "type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "402": {"description": "x402 payment required (USDC on Base)"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}, "422": {"description": "nothing gradable in this session"}, "503": {"description": "sale off; nothing charged"}}, "security": [], "summary": "Request the grade; answers 402 with an x402 v2 payment requirement, then the grade on a paid retry with the PAYMENT-SIGNATURE header", "x-payment-info": {"price": {"currency": "USD", "max": "10.00", "min": "3.00", "mode": "dynamic"}, "protocols": [{"x402": {}}]}}}, "/heartbeat": {"post": {"requestBody": {"content": {"application/json": {"schema": {"type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}}, "security": [], "summary": "Subscription heartbeat chain"}}, "/index": {"get": {"description": "Use when you want the going listed price for a GPU class before renting or listing. Information, not an offer.", "responses": {"200": {"description": "OK"}}, "security": [], "summary": "Free GPU price index: latest listed on-demand price per peer class, weekly, reconstructed from a CC BY 4.0 third-party record"}}, "/index/quality": {"get": {"responses": {"200": {"description": "OK"}, "503": {"description": "not yet published"}}, "security": [], "summary": "Pooled preflight results aggregated per peer class (free; published once the method is reviewed and a class has five records)"}}, "/openapi.json": {"get": {"responses": {"200": {"description": "OK"}}, "security": [], "summary": "This document"}}, "/preflight/share": {"post": {"requestBody": {"content": {"application/json": {"schema": {"type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}, "503": {"description": "pool closed"}}, "security": [], "summary": "Opt in: share an anonymised preflight summary with the pool (free; no identifiers stored; the runner's --share flag or the MCP tool's share flag sends it)"}}, "/rental/check": {"post": {"requestBody": {"content": {"application/json": {"schema": {"properties": {"plan": {"type": "object"}, "preflight_report": {"type": "object"}}, "required": ["preflight_report"], "type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}}, "security": [], "summary": "Free, in the first minutes after renting: keep, keep with warnings or cancel, from the preflight report, with each card's record history. Advice at that moment; nothing stored"}}, "/rental/plan": {"post": {"requestBody": {"content": {"application/json": {"schema": {"properties": {"gpus": {"type": "object"}, "needs": {"items": {"type": "string"}, "type": "array"}, "workload": {"enum": ["inference", "training"], "type": "string"}}, "required": ["workload"], "type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}}, "security": [], "summary": "Free, before renting a GPU: what to require for the workload, which preflight check confirms each requirement, and the keep rules. Names no marketplace, host or price"}}, "/session": {"post": {"requestBody": {"content": {"application/json": {"schema": {"properties": {"declared_runner": {"enum": ["buyer", "host"], "type": "string"}, "workload_classes": {"items": {"enum": ["inference", "training"], "type": "string"}, "type": "array"}}, "required": ["workload_classes", "declared_runner"], "type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}}, "security": [], "summary": "Open a session"}}, "/session/{id}/bundle": {"post": {"requestBody": {"content": {"application/json": {"schema": {"type": "object"}}}, "required": true}, "responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}}, "security": [], "summary": "Submit the result bundle; a free preview says what is gradable"}}, "/session/{id}/start": {"post": {"responses": {"200": {"description": "OK"}, "400": {"description": "bad request"}, "404": {"description": "no such session"}, "409": {"description": "session state does not allow this"}}, "security": [], "summary": "Draw the run parameters (revealed only now)"}}}, "servers": [{"url": "https://riggrade-674098696181.us-central1.run.app/riggrade/v1"}], "x-agentcash-guidance": {"llmsTxtUrl": "https://riggrade-674098696181.us-central1.run.app/llms.txt"}}