Public API v1
Access normalized GPU rental prices, history, provider evidence, exports, and workload recommendations. No authentication required.
Response and compatibility contract
X-API-Version: v1
- Authentication
- None for documented endpoints.
- Rate limits
- No published quota or throughput SLA. Back off on 429 and retryable 5xx responses.
- Freshness
- Responses expose collection timestamps. Provider coverage and collector health remain visible at freshness status.
- Compatibility
- Existing fields remain stable within v1. Additive fields may appear; breaking path or field changes require a new documented version.
- Coverage
- Missing rows mean no qualifying current evidence, not guaranteed provider unavailability.
- Errors
- Validation uses 4xx responses. Temporary data or service failures use retryable 5xx responses without internal exception details.
Public v1 curl examples
curl --fail --silent --show-error 'https://www.getflops.ai/api/compare' curl --fail --silent --show-error 'https://www.getflops.ai/api/current?provider=runpod' curl --fail --silent --show-error 'https://www.getflops.ai/api/providers' curl --fail --silent --show-error 'https://www.getflops.ai/api/regions' curl --fail --silent --show-error 'https://www.getflops.ai/api/freshness' curl --fail --silent --show-error 'https://www.getflops.ai/api/status' curl --fail --silent --show-error 'https://www.getflops.ai/api/errors?source=collector&limit=20' curl --fail --silent --show-error 'https://www.getflops.ai/api/changes?days=7&gpu=H100-SXM' curl --fail --silent --show-error 'https://www.getflops.ai/api/llms' curl --fail --silent --show-error 'https://www.getflops.ai/api/deployments' curl --fail --silent --show-error 'https://www.getflops.ai/api/history/H100%20SXM?provider=runpod' curl --fail --silent --show-error 'https://www.getflops.ai/api/history_all' curl --fail --silent --show-error 'https://www.getflops.ai/api/history_coverage' curl --fail --silent --show-error 'https://www.getflops.ai/api/offers/H100%20SXM' curl --fail --silent --show-error 'https://www.getflops.ai/api/export.json?gpu=H100-SXM' curl --fail --silent --show-error 'https://www.getflops.ai/api/export.csv?gpu=H100-SXM' --output h100-prices.csv curl --fail --silent --show-error 'https://www.getflops.ai/api/badge.svg?gpu=H100-SXM&provider=runpod' --output h100-price.svg curl --fail --silent --show-error 'https://www.getflops.ai/feed.xml'
/api/deployments
The dated top-25 open-weight model catalog, seven deployment providers, and all 175 model-provider paths behind the launch board.
{
"research_date": "2026-07-27",
"pair_count": 175,
"providers": [
{"slug": "runpod", "name": "RunPod", "docs_url": "..."}
],
"models": [
{
"rank": 1,
"slug": "...",
"huggingface_id": "...",
"providers": [
{"slug": "runpod", "status": {"key": "guided"}, "href": "..."}
]
}
]
}
Request data access
Register demand for deeper history, bulk access, commercial use, or higher limits. The public API remains available without submitting this form.
/api/compare
Latest snapshot per GPU per provider. Powers the main comparison table.
region
string, optional
Filter to a provider region, for example us-east-1. Omit for global aggregate rows.
{
"region": null,
"providers": {
"vast.ai": {
"name": "Vast.ai",
"color": "#00d4aa",
"coverage": { "source": "Vast.ai marketplace offers", "auth": "No key required" },
"pricing_context": {
"source": "Vast.ai marketplace offers",
"source_type": "marketplace",
"pricing_note": "Marketplace aggregate; quality-eligible offers feed the summary price."
}
},
"aws": { "name": "AWS", "color": "#ff9900" },
...
},
"gpus": {
"H100 SXM": {
"vast.ai": {
"on-demand": {
"min": 1.85, "median": 2.10, "mean": 2.25, "max": 3.50,
"num_offers": 42, "fetched_at": "2026-03-15T06:00:00", "region": null,
"trust": {
"source": "Vast.ai marketplace offers",
"source_type": "marketplace",
"pricing_note": "Marketplace aggregate; quality-eligible offers feed the summary price.",
"row_label": "42 offers · Mar 15, 2026",
"region_label": "global aggregate"
}
},
"spot": { ... }
},
"aws": { ... }
}
},
"gpu_specs": {
"H100 SXM": { "vram_gb": 80, "vram_type": "HBM3", "generation": "Hopper", "tier": "Flagship" }
}
}
/api/freshness
Provider freshness monitor for uptime checks, crawl-health dashboards, and manual data-quality review. It reports both the newest
provider snapshot and partially stale latest GPU/pricing rows, so one fresh SKU cannot hide older visible prices. Rows that an
authoritative provider capacity response explicitly marks unavailable remain stored for auditability but are excluded from stale
coverage alerts and reported in availability_excluded_rows.
/api/status is a compatibility alias with the same payload and HTTP status.
GET /api/freshness
{
"overall_status": "healthy",
"message": "All tracked providers are fresh.",
"warning_hours": 36,
"critical_hours": 72,
"summary": { "healthy": 7, "warning": 0, "critical": 0, "missing": 0 },
"recent_errors": [],
"stale_rows": [
{
"provider": "gcp",
"gpu_name": "T4",
"pricing_type": "spot",
"age_hours": 80.5,
"status": "critical",
"detail_href": "/provider/gcp/T4"
}
],
"providers": [
{
"provider": "runpod",
"status": "healthy",
"age_hours": 4.2,
"oldest_age_hours": 4.2,
"warning_stale_rows": 0,
"critical_stale_rows": 0,
"current_rows": 18,
"stored_rows": 18,
"availability_excluded_rows": 0,
"gpu_types": 8,
"pricing_types": 2,
"last_run": { "status": "ok", "prices": 18 }
}
]
}
/api/errors
Recent operational errors and warnings from collectors, cron endpoints, manual collection, and alert notification delivery.
limit
integer, optional
Number of events from 1 to 200. Defaults to 50.
source
string, optional
Filter by source, for example collector, cron, manual_collect, or alert_notification.
provider
string, optional
Filter by provider key.
severity
string, optional
Filter by error or warning.
GET /api/errors?source=collector&severity=error&limit=20
{
"generated_at": "2026-06-21T16:00:00+00:00",
"filters": { "limit": 20, "source": "collector", "provider": null, "severity": "error" },
"row_count": 1,
"events": [
{
"happened_at": "2026-06-21T06:00:00+00:00",
"source": "collector",
"provider": "gcp",
"severity": "error",
"message": "GCP_API_KEY is not configured",
"details": {}
}
]
}
/api/regions
Discover region-specific pricing coverage by provider. Use these region values with ?region= on comparison, export, history, badge, and change endpoints.
GET /api/regions
{
"regions": [
{
"region": "us-east-1",
"provider": "aws",
"provider_name": "AWS",
"last_fetched": "2026-06-21T06:00:00",
"current_rows": 12,
"gpu_types": 8,
"pricing_types": 2,
"current_offers": 12
}
],
"by_provider": {
"aws": [ ... ]
}
}
/api/export.json
JSON export of the same latest normalized rows used by the CSV endpoint. Each row includes decision_eligible and decision_eligible_reason. Eligibility is false when a snapshot is more than 72 hours old or when a provider with an explicit capacity response no longer reports that GPU as available.
provider
string, optional
Filter by provider key or slug.
gpu
string, optional
Filter by GPU name or slug.
pricing_type
string, optional
Filter by pricing type.
region
string, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
GET /api/export.json?gpu=H100-SXM&pricing_type=on-demand®ion=us-east-1
{
"generated_at": "2026-06-21T16:00:00+00:00",
"filters": { "provider": null, "gpu": "H100 SXM", "pricing_type": "on-demand", "region": "us-east-1" },
"row_count": 7,
"rows": [
{
"gpu_name": "H100 SXM",
"provider": "runpod",
"provider_name": "RunPod",
"pricing_type": "on-demand",
"region": "us-east-1",
"source": "RunPod GraphQL API",
"source_type": "provider-api",
"pricing_note": "Provider API pricing; availability and spot/community rows can move quickly.",
"median_dph_per_gpu": 2.4,
"decision_eligible": true,
"decision_eligible_reason": "current",
"vram_gb": 80
}
]
}
/api/badge.svg
Embeddable SVG badge for the latest GPU price. Use it in README files, internal docs, dashboards, or procurement notes.
gpu
string, required
GPU name or slug, for example H100-SXM.
provider
string, optional
Provider key or slug. If omitted, the badge shows the cheapest tracked provider for the GPU.
pricing_type
string, optional
Pricing type. Defaults to on-demand.
region
string, optional
Filter badge pricing to a region returned by /api/regions.
GET /api/badge.svg?gpu=H100-SXM&provider=runpod GET /api/badge.svg?gpu=RTX-4090&pricing_type=spot GET /api/badge.svg?gpu=H100-SXM&provider=aws®ion=us-east-1

/api/current
Latest stored prices, optionally filtered by provider or region. Rows remain visible for auditability; decision_eligible is false when a snapshot is more than 72 hours old or an explicit provider capacity response no longer lists the GPU. Use decision_eligible_reason to distinguish those cases.
provider
string, optional
Filter by provider key (e.g., aws, vast.ai, gcp)
region
string, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
GET /api/current?provider=aws®ion=us-east-1
[
{
"gpu_name": "H100 SXM",
"provider": "aws",
"pricing_type": "on-demand",
"num_offers": 1,
"min_dph_per_gpu": 3.25,
"median_dph_per_gpu": 3.25,
"mean_dph_per_gpu": 3.25,
"max_dph_per_gpu": 3.25,
"fetched_at": "2026-03-15T06:00:00",
"region": "us-east-1",
"decision_eligible": true,
"decision_eligible_reason": "current"
},
...
]
/api/alerts
Create a GPU price alert. The first version stores alert intent for future notification delivery.
curl --fail --silent --show-error 'https://www.getflops.ai/api/alerts' \
--request POST \
--header 'Content-Type: application/json' \
--data '{"email":"you@example.com","gpu_name":"H100 SXM","provider":"runpod","pricing_type":"on-demand","target_price":2.00}'
{
"status": "created",
"id": 123,
"email": "you@example.com",
"gpu_name": "H100 SXM",
"provider": "runpod",
"pricing_type": "on-demand",
"target_price": 2.0,
"created_at": "2026-06-21T16:00:00+00:00"
}
/api/access-waitlist
Persist demand for deeper history, bulk access, higher limits, or commercial data use. Email and optional company are stored for follow-up but are never sent to PostHog.
curl --fail --silent --show-error 'https://www.getflops.ai/api/access-waitlist' \
--request POST \
--header 'Content-Type: application/json' \
--data '{"email":"you@example.com","company":"Example Co","use_case":"product","data_need":"price-history","history_window":"1-year","source_page":"/docs/api"}'
{
"status": "created",
"id": 124,
"use_case": "product",
"data_need": "price-history",
"history_window": "1-year",
"created_at": "2026-07-11T21:30:00+00:00"
}
/feed.xml
RSS feed for the current weekly GPU market brief and latest price-index leaders.
GET /feed.xml
Subscribe to the weekly report at /price-index#weekly-report, follow the latest cheapest on-demand rows by GPU, or pipe the feed into a changelog, newsletter, or internal market monitor.
/api/export.csv
Spreadsheet-friendly export of the latest normalized GPU pricing rows, including machine-readable decision_eligible and decision_eligible_reason guardrails.
provider
string, optional
Filter by provider key or slug.
gpu
string, optional
Filter by GPU name or slug.
pricing_type
string, optional
Filter by pricing type.
region
string, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
GET /api/export.csv?provider=runpod&pricing_type=on-demand®ion=us-east-1
gpu_name,provider,provider_name,pricing_type,region,min_dph_per_gpu,median_dph_per_gpu,mean_dph_per_gpu,max_dph_per_gpu,num_offers,fetched_at,decision_eligible,decision_eligible_reason,source,source_type,pricing_note,vram_gb,vram_type,generation,tier
/api/changes
Price movement between the latest snapshot and the latest snapshot at or before N days ago. This endpoint powers the 7-day and 30-day movement in the weekly market report.
days
integer, optional
Lookback window from 1 to 365 days. Defaults to 7.
provider
string, optional
Filter by provider key or slug, for example runpod or vast.
gpu
string, optional
Filter by GPU name or slug, for example H100-SXM.
pricing_type
string, optional
Filter by pricing type, for example on-demand or spot.
region
string, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
GET /api/changes?days=30&gpu=H100-SXM&pricing_type=on-demand®ion=us-east-1
{
"days": 30,
"gpu": "H100 SXM",
"provider": null,
"pricing_type": "on-demand",
"region": "us-east-1",
"rows": [
{
"gpu_name": "H100 SXM",
"provider": "runpod",
"pricing_type": "on-demand",
"region": "us-east-1",
"current_median": 2.50,
"previous_median": 2.75,
"absolute_change": -0.25,
"pct_change": -9.09,
"current_fetched_at": "2026-06-21T06:00:00",
"previous_fetched_at": "2026-05-22T06:00:00"
}
],
"changes": {
"H100 SXM": {
"runpod": {
"on-demand": {
"current_median": 2.50,
"previous_median": 2.75,
"absolute_change": -0.25,
"pct_change": -9.09,
"region": "us-east-1"
}
}
}
}
}
/api/planner
Turn a catalog model and workload shape into explainable cheapest, balanced, and production GPU/provider recommendations.
model_slug
string, required
A model slug returned by /api/llms.
quantization
string, optional
catalog-default, q4, q8, or fp16.
context_window
integer, optional
Requested tokens, from 1 through the model's catalog limit. Defaults to 8192.
workload_type
string, optional
interactive uses on-demand rows; batch can also consider spot and community pricing.
concurrency
integer, optional
Expected concurrent requests, from 1 to 256.
traffic_shape
string, optional
steady or bursty.
uptime_pattern
string, optional
always-on, business-hours, or intermittent.
region_preference
string, optional
Requires a matching region-specific market row. Omit for global aggregates.
budget_sensitivity
string, optional
high, balanced, or low.
ops_tolerance
string, optional
low, medium, or high.
curl -X POST https://www.getflops.ai/api/planner \
-H "Content-Type: application/json" \
-d '{
"model_slug": "glm-4.7-flash",
"context_window": 32768,
"concurrency": 4,
"traffic_shape": "steady",
"uptime_pattern": "always-on",
"budget_sensitivity": "balanced",
"ops_tolerance": "low"
}'
{
"api_version": "v1",
"methodology_version": "1.0",
"status": "ok",
"requirements": {
"required_total_vram_gb": 39,
"required_per_gpu_vram_gb": 39,
"gpu_count": 1
},
"recommendations": {
"cheapest": {
"status": "recommended",
"score": 86.5,
"option": {
"provider_key": "runpod",
"provider_name": "RunPod",
"gpu_name": "L40",
"gpu_vram_gb": 48,
"pricing_type": "on-demand",
"estimated_hourly": 3.25,
"estimated_monthly": 2372.50
},
"why": ["48GB per GPU clears the 39GB planning floor."],
"caveats": ["Inventory can move quickly."]
},
"balanced": { "status": "recommended" },
"production": { "status": "recommended" }
},
"avoid": []
}
200 ok or insufficient_data
400 invalid_input or invalid_request
415 invalid_request (JSON Content-Type required)
503 market_data_unavailable
Valid cluster-scale requests can return:
{
"status": "insufficient_data",
"recommendations": {
"production": {
"status": "insufficient_data",
"reason_code": "cluster_topology_unverified"
}
}
}
/api/llms
Curated self-hostable LLM catalog with inferred VRAM requirements and live hosting cost estimates based on current GPU pricing.
{
"pricing_type": "on-demand",
"research_checked_at": "2026-07-26",
"summary": {
"model_count": 9,
"single_gpu_models": 5,
"multi_gpu_models": 4,
"moe_models": 9,
"serverless_ready_models": 3,
"lowest_hourly_estimate": 0.49,
"largest_min_vram_gb": 768
},
"serverless_patterns": [
{
"name": "RunPod Serverless + vLLM",
"source_url": "https://docs.runpod.io/serverless/vllm/get-started"
}
],
"latest_discovery_feed": {
"source": "huggingface",
"fetched_at": "2026-07-26T03:30:00Z",
"models_seen": 40,
"authors_queried": ["moonshotai", "zai-org", "Qwen", "MiniMaxAI", "stepfun-ai", "deepseek-ai", "openai", "mistralai"],
"relevant_models": 10,
"models_returned": 12,
"selection_strategy": "tracked-authors-and-relevance"
},
"latest_discoveries": [
{
"model_name": "Kimi-K2.7-Code",
"release_kind": "Primary checkpoint",
"serverless_fit": "dedicated",
"quality_tier": "strong",
"quality_label": "Looks strong",
"relevance_score": 18,
"relevance_summary": "trusted org, kimi, primary release, high usage, fresh release",
"watchouts_summary": "cluster-scale footprint",
"source_url": "https://huggingface.co/moonshotai/Kimi-K2.7-Code"
}
],
"models": [
{
"name": "GLM-4.7-Flash",
"architecture": "MoE",
"params_billions": 31,
"active_params_billions": 3,
"context_window": 202752,
"license": "MIT",
"source_label": "Z.ai model card",
"source_url": "https://huggingface.co/zai-org/GLM-4.7-Flash",
"quality_tier": "strong",
"quality_label": "Best practical GLM",
"quality_note": "A strong current starting point when you want agentic behavior without moving immediately to a multi-GPU cluster.",
"serverless_fit": "good",
"serverless_note": "A workable scale-to-zero target when weights stay cached and cold starts are acceptable.",
"min_total_vram_gb": 32,
"deployment_label": "1x 32GB+ GPU",
"cheapest_tracked_setup": {
"gpu_name": "RTX 5090",
"provider_name": "Vast.ai",
"estimated_hourly": 0.49,
"estimated_monthly": 357.70
}
}
],
"assumptions": [
"Estimates assume inference hosting, not training or fine-tuning.",
"Costs use the current median on-demand GPU price and scale linearly for multi-GPU setups.",
"Quality reads are directional editorial guidance for planning, not formal benchmark rankings."
]
}
/api/history/{gpu_name}
Historical price data for a specific GPU across all providers.
gpu_name
path, required
GPU name (e.g., H100 SXM, RTX 4090)
provider
query, optional
Filter to a single provider
region
query, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
GET /api/history/H100%20SXM?provider=aws®ion=us-east-1
{
"gpu_name": "H100 SXM",
"region": "us-east-1",
"history": [
{
"fetched_at": "2024-01-15T06:00:00",
"num_offers": 38,
"min": 1.90, "median": 2.15, "mean": 2.30, "max": 3.80,
"provider": "aws",
"pricing_type": "on-demand",
"region": "us-east-1"
},
...
]
}
/api/history_all
All historical pricing data, keyed by gpu_name|provider|pricing_type.
region
string, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
{
"H100 SXM|vast.ai|on-demand": [
{ "fetched_at": "2024-01-15", "median": 2.15, "min": 1.90, "num_offers": 38, ... },
...
],
"H100 SXM|aws|on-demand": [ ... ],
...
}
/api/history_coverage
History coverage windows by provider, based only on stored collector snapshots.
region
string, optional
Filter to a region returned by /api/regions. Omit for global aggregate rows.
{
"region": null,
"backfill_policy": "History coverage is based on stored collector snapshots only...",
"providers": {
"azure": {
"name": "Azure",
"first_fetched": "2026-03-14T06:00:00",
"last_fetched": "2026-06-21T06:00:00",
"snapshots": 840,
"snapshot_days": 100,
"gpu_types": 9,
"pricing_types": 2
}
}
}
/api/providers
Provider metadata, last snapshot freshness, and latest collector run status.
{
"vast.ai": {
"name": "Vast.ai",
"color": "#00d4aa",
"url": "https://vast.ai",
"coverage": {
"source": "Vast.ai marketplace offers",
"auth": "No key required",
"pricing_models": ["on-demand"],
"region_support": "Offer-level location is available; global aggregate rows remain the default.",
"coverage_note": "Marketplace inventory changes quickly..."
},
"pricing_context": {
"source": "Vast.ai marketplace offers",
"source_type": "marketplace",
"pricing_note": "Marketplace aggregate; quality-eligible offers feed the summary price."
},
"last_fetched": "2026-03-15T06:00:00",
"snapshots": 1284,
"last_run": {
"started_at": "2026-03-15T06:00:00",
"completed_at": "2026-03-15T06:00:04",
"status": "ok",
"prices": 128,
"gpu_types": 12,
"message": null
}
},
...
}
/api/offers/{gpu_name}
Individual offer listings for a GPU. Currently only available for Vast.ai.
gpu_name
path, required
GPU name (e.g., H100 SXM)
{
"gpu_name": "H100 SXM",
"offers": [
{
"gpu_name": "H100 SXM",
"num_gpus": 8,
"gpu_ram_gb": 80.0,
"price_per_gpu_hr": 1.85,
"price_total_hr": 14.80,
"provider": "vast.ai",
"pricing_type": "on-demand",
"cpu": "AMD EPYC 9454",
"cpu_cores": 48.0,
"ram_gb": 512.0,
"disk_gb": 2000,
"location": "US",
"reliability": 0.9980,
"quality_tier": "excellent",
"quality_label": "Excellent",
"quality_note": "Included in quality-filtered Vast.ai aggregates.",
"is_quality_snapshot_eligible": true,
"tflops": 3958.8,
"offer_id": 123456,
"machine_id": 98765,
"host_id": 54321
},
...
]
}
Supported Providers
| Provider Key | Name | Auth Required |
|---|---|---|
vast.ai | Vast.ai | No |
aws | Amazon Web Services | No |
azure | Microsoft Azure | No |
gcp | Google Cloud Platform | No (API key on server) |
lambda | Lambda Labs | No (API key on server) |
runpod | RunPod | No (API key on server) |
oracle | Oracle Cloud (OCI) | No |