{"openapi":"3.1.0","info":{"title":"GPU Finder public API","version":"1.0.0","description":"Public, read-only GPU pricing and availability data. No authentication is required. Whole-node prices are USD per hour unless a field explicitly says per GPU-hour."},"servers":[{"url":"https://gpufinder.dev","description":"Canonical production server"}],"tags":[{"name":"Market"},{"name":"Catalogue"},{"name":"Operations"}],"paths":{"/api/v1/gpus":{"get":{"tags":["Catalogue"],"summary":"List tracked GPU models","operationId":"listGpus","responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GpusEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/prices":{"get":{"tags":["Market"],"summary":"List current prices for a GPU and node size","operationId":"listPrices","parameters":[{"name":"gpu","in":"query","required":true,"description":"GPU model name or canonical slug, for example h100 or RTX4090.","schema":{"type":"string","minLength":1,"maxLength":100},"example":"h100"},{"name":"count","in":"query","required":false,"description":"Exact accelerator count in the instance/node.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1},"example":1}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PricesEnvelope"}}}},"400":{"description":"Invalid parameters","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"GPU not found","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/snapshot":{"get":{"tags":["Market"],"summary":"Get the canonical current market answer","description":"Returns separate lowest-listed and lowest-confirmed-in-stock offers, ranked by on-demand price per GPU-hour. Availability signals older than the documented freshness window are treated as unknown.","operationId":"getMarketSnapshot","parameters":[{"name":"gpu","in":"query","required":true,"description":"GPU model name or canonical slug, for example h100 or RTX4090.","schema":{"type":"string","minLength":1,"maxLength":100},"example":"h100"},{"name":"count","in":"query","required":false,"description":"Exact accelerator count in the instance/node.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1},"example":1}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotEnvelope"}}}},"400":{"description":"Invalid parameters","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"GPU not found","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/providers":{"get":{"tags":["Catalogue"],"summary":"List providers","operationId":"listProviders","responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvidersEnvelope"}}}},"400":{"description":"Invalid parameters","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/availability":{"get":{"tags":["Market"],"summary":"Get seven-day availability history","operationId":"getAvailability","parameters":[{"name":"gpu","in":"query","required":true,"description":"GPU model name or canonical slug, for example h100 or RTX4090.","schema":{"type":"string","minLength":1,"maxLength":100},"example":"h100"},{"name":"provider","in":"query","required":false,"description":"Optional provider name or slug.","schema":{"type":"string","minLength":1,"maxLength":100},"example":"runpod"}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityEnvelope"}}}},"400":{"description":"Invalid parameters","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"GPU not found","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/history":{"get":{"tags":["Market"],"summary":"Get monthly price history","operationId":"getPriceHistory","parameters":[{"name":"gpu","in":"query","required":true,"description":"GPU model name or canonical slug, for example h100 or RTX4090.","schema":{"type":"string","minLength":1,"maxLength":100},"example":"h100"},{"name":"count","in":"query","required":false,"description":"Exact accelerator count in the instance/node.","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1},"example":1}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryEnvelope"}}}},"400":{"description":"Invalid parameters","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"404":{"description":"GPU not found","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/v1/status":{"get":{"tags":["Operations"],"summary":"Get collection freshness and provider run health","operationId":"getStatus","responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusEnvelope"}}}},"429":{"description":"Rate limit exceeded","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}},"Retry-After":{"schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"500":{"description":"Internal server error","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","example":120}},"X-RateLimit-Policy":{"schema":{"type":"string","example":"120;w=60"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}},"components":{"schemas":{"ErrorEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["bad_request","not_found","rate_limited","internal_error"]},"message":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false},"GpuSpec":{"type":"object","required":["vramGB","memoryType","bandwidthTBs","interconnect"],"properties":{"vramGB":{"type":["number","null"]},"memoryType":{"type":["string","null"]},"bandwidthTBs":{"type":["number","null"]},"interconnect":{"type":["string","null"]}}},"GpuSummary":{"type":"object","required":["canonical","slug","providerCount","instanceCount","priceMin","priceMax","spec"],"properties":{"canonical":{"type":"string"},"slug":{"type":"string"},"providerCount":{"type":"integer"},"instanceCount":{"type":"integer"},"priceMin":{"type":["number","null"]},"priceMax":{"type":["number","null"]},"spec":{"oneOf":[{"$ref":"#/components/schemas/GpuSpec"},{"type":"null"}]}}},"GpusEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["gpus"],"properties":{"gpus":{"type":"array","items":{"$ref":"#/components/schemas/GpuSummary"}}}}},"additionalProperties":false},"PriceRow":{"type":"object","required":["providerName","providerSlug","outboundUrl","providerProductUrl","instanceType","region","gpuCount","onDemandPrice","spotPrice","spotPricingModel","availabilityPct7d","reliability30dPct","lastUpdated"],"properties":{"providerName":{"type":"string"},"providerSlug":{"type":"string"},"outboundUrl":{"type":["string","null"]},"providerProductUrl":{"type":["string","null"]},"instanceType":{"type":"string"},"region":{"type":"string"},"gpuCount":{"type":"integer"},"onDemandPrice":{"type":["number","null"]},"spotPrice":{"type":["number","null"]},"spotPricingModel":{"type":["string","null"]},"availabilityPct7d":{"type":["number","null"]},"reliability30dPct":{"type":["number","null"]},"lastUpdated":{"type":"string","format":"date-time"}}},"PricesEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["gpu","count","prices"],"properties":{"gpu":{"type":"string"},"count":{"type":"integer"},"prices":{"type":"array","items":{"$ref":"#/components/schemas/PriceRow"}}}}},"additionalProperties":false},"SnapshotOffer":{"type":"object","required":["provider","region","gpuCount","wholeNodeHourlyPrice","perGpuHourlyPrice","availabilityStatus","availabilityCheckedAt","outboundUrl"],"properties":{"provider":{"type":"string"},"region":{"type":["string","null"]},"gpuCount":{"type":"integer"},"wholeNodeHourlyPrice":{"type":"number","exclusiveMinimum":0},"perGpuHourlyPrice":{"type":"number","exclusiveMinimum":0},"availabilityStatus":{"type":"string","enum":["available","limited","unavailable","unknown"]},"availabilityCheckedAt":{"type":["string","null"],"format":"date-time"},"outboundUrl":{"type":["string","null"]}}},"SnapshotEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["gpu","count","asOf","generatedAt","providersCompared","priceCurrency","priceBasis","cheapestListed","cheapestAvailable","availabilityFreshness","methodologyUrl","canonicalUrl"],"properties":{"gpu":{"type":"string"},"count":{"type":"integer"},"asOf":{"type":"string","format":"date-time"},"generatedAt":{"type":"string","format":"date-time"},"providersCompared":{"type":"integer"},"priceCurrency":{"type":"string","const":"USD"},"priceBasis":{"type":"string","const":"per_gpu_hour"},"cheapestListed":{"oneOf":[{"$ref":"#/components/schemas/SnapshotOffer"},{"type":"null"}]},"cheapestAvailable":{"oneOf":[{"$ref":"#/components/schemas/SnapshotOffer"},{"type":"null"}]},"availabilityFreshness":{"type":"object","required":["maxAgeHours","updateCadence"],"properties":{"maxAgeHours":{"type":"number","example":6},"updateCadence":{"type":"string","const":"hourly"}}},"methodologyUrl":{"type":"string","format":"uri"},"canonicalUrl":{"type":"string","format":"uri"}}}},"additionalProperties":false,"example":{"version":"v1","generatedAt":"2026-08-24T18:23:01.000Z","data":{"gpu":"H100","count":1,"asOf":"2026-08-24T18:23:00.000Z","generatedAt":"2026-08-24T18:23:01.000Z","providersCompared":18,"priceCurrency":"USD","priceBasis":"per_gpu_hour","cheapestListed":{"provider":"Hyperbolic","region":"default","gpuCount":1,"wholeNodeHourlyPrice":1.29,"perGpuHourlyPrice":1.29,"availabilityStatus":"unknown","availabilityCheckedAt":null,"outboundUrl":"https://gpufinder.dev/go/hyperbolic"},"cheapestAvailable":{"provider":"Vast","region":"US","gpuCount":1,"wholeNodeHourlyPrice":1.34,"perGpuHourlyPrice":1.34,"availabilityStatus":"limited","availabilityCheckedAt":"2026-08-24T18:00:00.000Z","outboundUrl":"https://gpufinder.dev/go/vast"},"availabilityFreshness":{"maxAgeHours":6,"updateCadence":"hourly"},"methodologyUrl":"https://gpufinder.dev/about#methodology","canonicalUrl":"https://gpufinder.dev/gpu/h100"}}},"ProviderSummary":{"type":"object","required":["name","slug","outboundUrl","websiteUrl","gpuCount","instanceCount","priceMin","priceMax","priceAcceleratorCount","egressCostPerGB","egressFreeGB","egressSourceUrl","reliability30dPct","lastUpdated"],"properties":{"name":{"type":"string"},"slug":{"type":"string"},"outboundUrl":{"type":["string","null"]},"websiteUrl":{"type":["string","null"]},"gpuCount":{"type":"integer"},"instanceCount":{"type":"integer"},"priceMin":{"type":["number","null"]},"priceMax":{"type":["number","null"]},"priceAcceleratorCount":{"type":["integer","null"]},"egressCostPerGB":{"type":["number","null"]},"egressFreeGB":{"type":["number","null"]},"egressSourceUrl":{"type":["string","null"]},"reliability30dPct":{"type":["number","null"]},"lastUpdated":{"type":["string","null"],"format":"date-time"}}},"ProvidersEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["providers"],"properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/ProviderSummary"}}}}},"additionalProperties":false},"AvailabilityCell":{"type":"object","required":["date","available","total"],"properties":{"date":{"type":"string","format":"date"},"available":{"type":"integer"},"total":{"type":"integer"}}},"AvailabilityCount":{"type":"object","required":["count","days","cells","availabilityPct7d"],"properties":{"count":{"type":"integer"},"days":{"type":"array","items":{"type":"string","format":"date"}},"cells":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityCell"}},"availabilityPct7d":{"type":["number","null"]}}},"AvailabilityProvider":{"type":"object","required":["providerName","providerSlug","counts"],"properties":{"providerName":{"type":"string"},"providerSlug":{"type":"string"},"counts":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityCount"}}}},"AvailabilityEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["gpu","providers"],"properties":{"gpu":{"type":"string"},"providers":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilityProvider"}}}}},"additionalProperties":false},"HistoryRow":{"type":"object","required":["month","provider","onDemandPrice","spotPrice"],"properties":{"month":{"type":"string","pattern":"^[0-9]{4}-[0-9]{2}$"},"provider":{"type":"string"},"onDemandPrice":{"type":["number","null"]},"spotPrice":{"type":["number","null"]}}},"HistoryEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["gpu","count","history"],"properties":{"gpu":{"type":"string"},"count":{"type":"integer"},"history":{"type":"array","items":{"$ref":"#/components/schemas/HistoryRow"}}}}},"additionalProperties":false},"ProviderRunSummary":{"type":"object","required":["lastSuccessAt","lastRunAt","consecutiveFailures","lastError"],"properties":{"lastSuccessAt":{"type":["string","null"],"format":"date-time"},"lastRunAt":{"type":["string","null"],"format":"date-time"},"consecutiveFailures":{"type":"integer"},"lastError":{"type":["string","null"]}}},"RunKindStatus":{"type":"object","required":["lastCompletedAt","providers"],"properties":{"lastCompletedAt":{"type":["string","null"],"format":"date-time"},"providers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProviderRunSummary"}}}},"StatusEnvelope":{"type":"object","required":["version","generatedAt","data"],"properties":{"version":{"type":"string","const":"v1"},"generatedAt":{"type":"string","format":"date-time"},"data":{"type":"object","required":["priceCollection","availability","runs"],"properties":{"priceCollection":{"type":"object","required":["completedAt","providersRun","instancesUpserted"],"properties":{"completedAt":{"type":["string","null"],"format":"date-time"},"providersRun":{"type":["integer","null"]},"instancesUpserted":{"type":["integer","null"]}}},"availability":{"type":"object","required":["checkedAt"],"properties":{"checkedAt":{"type":["string","null"],"format":"date-time"}}},"runs":{"type":"object","required":["prices","availability"],"properties":{"prices":{"$ref":"#/components/schemas/RunKindStatus"},"availability":{"$ref":"#/components/schemas/RunKindStatus"}}}}}},"additionalProperties":false}}}}