{"openapi":"3.1.0","info":{"title":"Decentralized Compute Price Index API","description":"Live + historical GPU rental pricing across centralized clouds and the decentralized/crypto compute networks (Vast, Clore, Akash, Nosana, ...) that generalist indexes under-cover. Prices are normalized to per-GPU USD/hr with an auditable reliability adjustment — every history row includes the original scraped price and the factor applied.\n\nAuth: pass `X-API-Key`. Without a key you get the latest snapshot only. Free keys unlock 7 days of history; Pro 90; Enterprise 365.","version":"1.0.0"},"paths":{"/api/v1/gpu-prices":{"get":{"summary":"Latest prices (all tiers, incl. anonymous)","description":"Most recent poll across every live source: on-demand + spot per GPU per\nsource, with reliability-adjusted effective price and per-source metadata.","operationId":"latest_api_v1_gpu_prices_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/gpu-prices/history":{"get":{"summary":"Historical observations with the normalization trail (tiered)","description":"Raw per-poll observations, newest first. Each row carries the audit\ntrail: raw_price (as scraped) + reliability (factor applied) ->\neffective_price. History window depends on your tier.","operationId":"history_api_v1_gpu_prices_history_get","parameters":[{"name":"gpu_model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"e.g. 'RTX 4090'","title":"Gpu Model"},"description":"e.g. 'RTX 4090'"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"platform, e.g. 'Clore'","title":"Source"},"description":"platform, e.g. 'Clore'"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":5000,"default":1000,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/request-access":{"post":{"summary":"Submit an access request (self-serve)","description":"Public form submission — no key needed. Stores the request so the operator\ncan issue a key (see `main.py requests`). Rate limited to blunt spam.","operationId":"request_access_api_v1_request_access_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/providers":{"get":{"summary":"Tracked providers (all tiers)","operationId":"providers_api_v1_providers_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"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":"Per-source feed health (all tiers)","operationId":"source_health_api_v1_health_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccessRequest":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"}},"type":"object","required":["name","email"],"title":"AccessRequest"},"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"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}