{"openapi":"3.1.0","info":{"title":"SaaS Sentinel Public Data API","version":"1.0.0","description":"Read-only, static-first GPU cloud price-index, change-feed and operating-status endpoints.","license":{"name":"SaaS Sentinel Data License v1 — original compilation only","url":"https://www.saassentineltools.com/data-license/v1/"}},"servers":[{"url":"https://www.saassentineltools.com"}],"tags":[{"name":"Index","description":"Provider-balanced current and fixed-cohort historical GPU price signals."},{"name":"Changes","description":"Verified distinct normalized rate changes; rechecks are suppressed."},{"name":"Status","description":"Machine-readable public data-product readiness."}],"paths":{"/api/v1/index.json":{"get":{"tags":["Index"],"operationId":"getGpuCloudPriceIndex","summary":"Versioned GPU Cloud Price Index","responses":{"200":{"description":"Provider-balanced current and historical price index.","headers":{"X-SaaS-Sentinel-API-Version":{"schema":{"type":"string","const":"1.0.0"},"description":"Public API contract version."},"X-SaaS-Sentinel-Schema":{"schema":{"type":"string"},"description":"Schema identifier carried by this response."},"X-SaaS-Sentinel-Data-Rights":{"schema":{"type":"string","const":"original-compilation-only"},"description":"The site licenses only its original compilation and presentation; provider-derived rights are not sublicensed."},"Link":{"schema":{"type":"string"},"description":"Link to the applicable SaaS Sentinel data-license boundary."},"Cache-Control":{"schema":{"type":"string"},"description":"Browser and shared-cache policy."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceIndex"}}}}}}},"/api/v1/changes.json":{"get":{"tags":["Changes"],"operationId":"getGpuPriceChanges","summary":"Verified normalized price changes","responses":{"200":{"description":"Distinct changes for current comparable offer identities.","headers":{"X-SaaS-Sentinel-API-Version":{"schema":{"type":"string","const":"1.0.0"},"description":"Public API contract version."},"X-SaaS-Sentinel-Schema":{"schema":{"type":"string"},"description":"Schema identifier carried by this response."},"X-SaaS-Sentinel-Data-Rights":{"schema":{"type":"string","const":"original-compilation-only"},"description":"The site licenses only its original compilation and presentation; provider-derived rights are not sublicensed."},"Link":{"schema":{"type":"string"},"description":"Link to the applicable SaaS Sentinel data-license boundary."},"Cache-Control":{"schema":{"type":"string"},"description":"Browser and shared-cache policy."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeFeed"}}}}}}},"/api/v1/status.json":{"get":{"tags":["Status"],"operationId":"getPublicDataStatus","summary":"Public readiness and coverage status","responses":{"200":{"description":"Current catalog, benchmark, SEO and distribution readiness.","headers":{"X-SaaS-Sentinel-API-Version":{"schema":{"type":"string","const":"1.0.0"},"description":"Public API contract version."},"X-SaaS-Sentinel-Schema":{"schema":{"type":"string"},"description":"Schema identifier carried by this response."},"X-SaaS-Sentinel-Data-Rights":{"schema":{"type":"string","const":"original-compilation-only"},"description":"The site licenses only its original compilation and presentation; provider-derived rights are not sublicensed."},"Link":{"schema":{"type":"string"},"description":"Link to the applicable SaaS Sentinel data-license boundary."},"Cache-Control":{"schema":{"type":"string"},"description":"Browser and shared-cache policy."}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicStatus"}}}}}}}},"components":{"schemas":{"SourceHashes":{"type":"object","additionalProperties":false,"required":["catalog_sha256","history_sha256","policy_sha256"],"properties":{"catalog_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"history_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"policy_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"IndexPoint":{"type":"object","required":["date","offer_count","provider_count","provider_balanced_median_usd","index_value"],"properties":{"date":{"type":"string","format":"date"},"offer_count":{"type":"integer","minimum":1},"provider_count":{"type":"integer","minimum":1},"provider_balanced_median_usd":{"type":"number","exclusiveMinimum":0},"index_value":{"type":"number","exclusiveMinimum":0}}},"ModelSummary":{"type":"object","required":["model","slug","offer_count","provider_count","provider_balanced_median_usd","availability_known_ratio"],"properties":{"model":{"type":"string"},"slug":{"type":"string"},"offer_count":{"type":"integer","minimum":1},"provider_count":{"type":"integer","minimum":1},"provider_balanced_median_usd":{"type":"number","exclusiveMinimum":0},"availability_known_ratio":{"type":"number","minimum":0,"maximum":1}}},"PriceIndex":{"type":"object","additionalProperties":false,"required":["schema_version","index_id","methodology_version","generated_at","currency","normalized_unit","source","coverage","current","models","series","methodology"],"properties":{"schema_version":{"type":"string","const":"1.0.0"},"index_id":{"type":"string","const":"ss-gpu-cloud-price-index"},"methodology_version":{"type":"string"},"generated_at":{"type":"string","format":"date-time"},"currency":{"type":"string","const":"USD"},"normalized_unit":{"type":"string","const":"gpu_hour"},"source":{"$ref":"#/components/schemas/SourceHashes"},"coverage":{"type":"object"},"current":{"type":"object"},"models":{"type":"array","items":{"$ref":"#/components/schemas/ModelSummary"}},"series":{"type":"array","items":{"$ref":"#/components/schemas/IndexPoint"}},"methodology":{"type":"object"}}},"PriceChangeEvent":{"type":"object","additionalProperties":false,"required":["id","observed_at","offer_id","provider_id","provider","model","model_slug","region","market_type","old_usd_per_gpu_hour","new_usd_per_gpu_hour","percent_change","direction","evidence_url"],"properties":{"id":{"type":"string","pattern":"^[0-9a-f]{24}$"},"observed_at":{"type":"string","format":"date-time"},"offer_id":{"type":"string"},"provider_id":{"type":"string"},"provider":{"type":"string"},"model":{"type":"string"},"model_slug":{"type":"string"},"region":{"type":"string"},"market_type":{"type":"string"},"old_usd_per_gpu_hour":{"type":"number","exclusiveMinimum":0},"new_usd_per_gpu_hour":{"type":"number","exclusiveMinimum":0},"percent_change":{"type":"number"},"direction":{"type":"string","enum":["increase","decrease"]},"evidence_url":{"type":"string","format":"uri"}}},"ChangeFeed":{"type":"object","additionalProperties":false,"required":["schema_version","feed_id","generated_at","source","event_count","models","events","limitations"],"properties":{"schema_version":{"type":"string","const":"1.0.0"},"feed_id":{"type":"string","const":"ss-gpu-price-changes"},"generated_at":{"type":"string","format":"date-time"},"source":{"$ref":"#/components/schemas/SourceHashes"},"event_count":{"type":"integer","minimum":0},"models":{"type":"array","items":{"type":"string"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/PriceChangeEvent"}},"limitations":{"type":"array","items":{"type":"string"}}}},"PublicStatus":{"type":"object","additionalProperties":false,"required":["schema_version","generated_at","catalog","benchmarks","autonomous_seo","distribution"],"properties":{"schema_version":{"type":"string","const":"1.0.0"},"generated_at":{"type":"string","format":"date-time"},"catalog":{"type":"object"},"benchmarks":{"type":"object"},"autonomous_seo":{"type":"object"},"distribution":{"type":"object"}}}}},"externalDocs":{"description":"API documentation and methodology","url":"https://www.saassentineltools.com/api/"}}