FPSHQ API

A free REST API for FPS forecasts, hardware benchmarks and PC Score. For bots, extensions, plugins and any integrations.

✓ No key JSON CORS enabled 1-hour cache
Base URL
https://fpshq.com/api/v1/

Endpoints

GET /fps?game=cyberpunk-2077&gpu=rtx-4070-super&cpu=ryzen-7-7800x3d&res=1440p&preset=ultra

FPS forecast for a game + GPU pair. Returns avg/min/max FPS, a verdict and the data source (benchmark/prediction).

▶ Try the request
GET /search?q=cyber&type=game&limit=10

Search games, GPUs and CPUs by name. type: game | gpu | cpu | all.

▶ Try the request
GET /game/{slug}

Game data: year, demandingness, Metacritic, Steam rating, minimum/recommended GPU.

▶ Try the request
GET /gpu/{slug}

GPU data: bench score, value score, tier, memory, TDP, price.

▶ Try the request
GET /cpu/{slug}

CPU data: bench score, gaming score, cores, threads, TDP.

▶ Try the request
GET /pc-score?gpu=rtx-4070-super&cpu=ryzen-9-9950x3d&ram=32

PC Score (0-100) and S–F tier calculation for a hardware pair.

▶ Try the request
GET /gpus?page=1&per_page=100

GPU catalog (paginated) — for slug discovery & sync

▶ Try the request
GET /cpus?page=1&per_page=100

CPU catalog (paginated)

▶ Try the request
GET /games?page=1&per_page=100

Game catalog (paginated, sorted by popularity)

▶ Try the request

Example /fps response

{
  "ok": true,
  "game": { "slug": "cyberpunk-2077", "name": "Cyberpunk 2077" },
  "gpu": { "slug": "rtx-4070-super", "name": "GeForce RTX 4070 Super" },
  "cpu": { "slug": "ryzen-7-7800x3d", "name": "Ryzen 7 7800X3D" },
  "resolution": "1440p",
  "preset": "ultra",
  "fps": 72,
  "fps_min": 58,
  "fps_max": 88,
  "fps_range": [58, 88],
  "expected_error_pct": 21.3,
  "fps_1pct_low": 56,
  "fps_1pct_low_range": [45, 69],
  "verdict": "good",
  "source": "prediction",
  "basis": "model",
  "bottleneck": { "limited_by": "GPU", "pct": 3, "gpu_load_pct": 100 },
  "url": "https://fpshq.com/games/cyberpunk-2077/"
}

Data provenance — source field

"source": "benchmark"

Measured FPS from our benchmark database (106 independent measurements across games, GPUs, resolutions and presets). Cells taken from aggregated review tables rescaled by game/GPU factors are returned as "source": "prediction" with "basis": "aggregate"; independent tests have "basis": "measured", model estimates "basis": "model".

"source": "prediction"

Modeled estimate computed from the GPU benchmark score and the game's demand score, with resolution scaling and optional CPU-bottleneck correction. Used when no measured data exists for the exact combo.

fps_range / fps_min–fps_max: for model estimates where at least one held-out check source has a median error above 25 % (FPSHQ backtest by GPU class and resolution, model accuracy) — an interval around the median error that holds about half of held-out benchmarks (three sources weighted equally); otherwise both equal fps and fps_range is null. fps_1pct_low_range — the same interval for 1% low. Quote the range, not the single number.

Every /fps response carries this field, so measured benchmarks and modeled predictions are always distinguishable — label them accordingly in your product.

Supported inputs

res — 1080p, 1440p, 4K (aliases: 2k → 1440p, 2160p → 4K)
preset — low, medium, high, ultra
cpu — optional in /fps; when provided, the response includes CPU-bottleneck analysis and the FPS estimate is corrected for CPU-limited scenarios
slugs — discover via /search or the /gpus, /cpus, /games catalog endpoints

Quick start

// JavaScript
const r = await fetch('https://fpshq.com/api/v1/fps?game=cyberpunk-2077&gpu=rtx-4070-super&cpu=ryzen-7-7800x3d&res=1440p&preset=ultra');
const data = await r.json();
console.log(`${data.fps} FPS (${data.source})`);   // 72 FPS (benchmark)

# curl
curl "https://fpshq.com/api/v1/fps?game=cyberpunk-2077&gpu=rtx-4070-super&res=1440p"

CORS is enabled (Access-Control-Allow-Origin: *) — the API can be called directly from browsers, extensions and mobile apps. No API key required.

License, attribution & rate limits

✅ CC BY 4.0 — free for commercial use, attribution required

FPSHQ data is licensed under CC BY 4.0, the same as our open datasets: you may use it in commercial and non-commercial products. Attribution is required: next to the data, write "Source: FPSHQ" with a link to the relevant FPSHQ page (every API response includes a ready-to-use url field) or to FPSHQ.com. Label model estimates as estimates (source field).

⏱ Fair-use rate limits

No API key, no hard quota. Fair use is ~60 requests/min per IP. GET responses are cached for 1 hour on our side (Cache-Control: max-age=3600) — please cache on your side as well. Need sustained higher volume or a bulk export? Contact us, we're happy to arrange it.

📬 Contact & partnership

Integration questions, higher limits, bulk exports: Telegram @denissatoshi.

Terms of use

FPSHQ API data is free and licensed under CC BY 4.0, like our open datasets: you may use it in any project, including commercial ones. Attribution is required: next to the data, write “Source: FPSHQ” with a link to the FPSHQ page (the url field in every response) or to FPSHQ.com. For higher request limits or bulk exports, message us on Telegram @denissatoshi.

The API powers our PC Power Test, browser extension and social plugins. Want to integrate FPS forecasts into your project — go ahead and use it.

Key figures

Unique FPSHQ metrics from this page's data

FPSHQ data volume by section

Records in the database by section: games, FPS measurements, GPUs, mobile chips and games, CPUs, emulators.

In short

What is FPSHQ and what data does it run on?

FPSHQ is a games and PC database: 191,286 games with system requirements, 1,965 GPUs and 456 CPUs with performance scores, 165 mobile chips, 49 emulators and an FPS database (measurements: 106 independent measurements and 4,800 rows of aggregated review data; model estimates: 47,950). The single FPSHQ model estimates FPS for any game + GPU + CPU combination at 1080p/1440p/4K; 1,401 users have completed the online PC test. Every number on the pages comes from this database, with an update date and a link to the methodology.

games in the database
191,286
GPUs in the catalogue (incl. vendor variants)
1,965
CPUs in the catalogue
456
FPS measurement rows in the database
52,856
updated · source: methodology, FPSHQ model estimate

Frequently asked questions

Where does FPSHQ get its data?
From four sources: official developer and Steam system requirements (191,286 games), hardware manufacturers' specifications (1,965 GPUs, 456 CPUs), FPS measurements from reviews, YouTube and players (106 independent measurements and 4,800 rows of aggregated review data), and the FPSHQ model where no measurement exists — always labelled "estimate".
What is the single FPSHQ FPS model?
One algorithm that, from the GPU score, the CPU gaming score and the game's demand, computes FPS at 1080p/1440p/4K on Low–Ultra presets. The same number appears on every page — games, GPUs, comparisons, calculators — and whenever a real measurement exists it takes priority over the estimate.
How often is the data updated?
Games and requirements — daily from Steam; hardware prices — several times a week; new GPUs and CPUs — on announcement day; FPS measurements — continuously as the app submits them; gamer hardware statistics — daily from 1,401 online tests and app data. Every page shows its as-of date.
Can I use FPSHQ data on my own site?
Yes: there is a free "Can it run" widget and a public API with rate limits (the API section), plus a Telegram bot. The data is open under CC BY 4.0 — when using it, credit FPSHQ as the source with a link and date.

Methodology and sources

This page uses the FPSHQ database: the GPU and CPU catalogue with synthetic benchmark scores, official game system requirements, FPS measurements from users of the FPSHQ app and the FPSHQ performance model. Calculated values are estimates, not a measurement of your exact configuration: the real result depends on drivers, settings and the rest of the hardware. More about the methodology →

FPSHQ Team · Data updated