DEV Community

Alex Spinov
Alex Spinov

Posted on Edited on

Geekbench Has a Free API — Benchmark Any CPU Without Running Tests Yourself

The Story

I was comparing ARM vs x86 cloud instances for a data pipeline. Running benchmarks myself would take hours across 12 different instance types. Then I discovered: Geekbench has a free, undocumented API that gives you benchmark scores for virtually any CPU ever tested.

The API

Geekbench's browser at browser.geekbench.com is powered by a JSON API:

# Search for a specific CPU
curl -s "https://browser.geekbench.com/search?q=Apple+M4" \
  -H "Accept: application/json"

# Get top single-core scores
curl -s "https://browser.geekbench.com/v6/cpu/singlecore" \
  -H "Accept: application/json"

# Get top multi-core scores
curl -s "https://browser.geekbench.com/v6/cpu/multicore" \
  -H "Accept: application/json"
Enter fullscreen mode Exit fullscreen mode

What You Get

For every benchmark result:

  • Single-core score — raw per-thread performance
  • Multi-core score — parallel workload performance
  • System info — CPU model, cores, frequency, RAM
  • Platform — macOS, Linux, Windows, Android, iOS
  • Upload date — filter for recent results

Practical Example: Choosing a Cloud Instance

import requests

def compare_cloud_cpus():
    instances = {
        "AWS Graviton4 (ARM)": "Graviton4",
        "AWS Intel c7i": "Xeon Platinum 8488C",
        "Azure Cobalt (ARM)": "Cobalt 100",
        "GCP Axion (ARM)": "Axion",
    }

    for name, query in instances.items():
        resp = requests.get(
            f"https://browser.geekbench.com/search?q={query}",
            headers={"Accept": "application/json"}
        )
        # Parse results...
        print(f"{name}: query={query}")

compare_cloud_cpus()
Enter fullscreen mode Exit fullscreen mode

Why This Matters in 2026

With ARM processors now in:

  • Laptops (Apple M4, Qualcomm Snapdragon X Elite)
  • Cloud (AWS Graviton4, Azure Cobalt, GCP Axion)
  • AI inference (ARM AGI chips — currently trending on HN)

...choosing the right CPU is a data decision, not a gut feeling. Geekbench's API gives you that data.

ARM vs x86 Quick Comparison (2026)

Metric ARM (Graviton4) x86 (EPYC 9654)
Single-core ~2,800 ~3,100
Multi-core (64c) ~22,000 ~28,000
Cost/hr (AWS) $2.46 $5.52
Score per $ 9,350 5,072

ARM wins on cost efficiency by 84%.

Other CPU Benchmark APIs

If you need more data:

  • PassMarkpassmark.com has a similar browsable database
  • Cinebench scores — no API, but data available on cgdirector.com
  • SPEC CPU — industry standard, results at spec.org

For more free APIs like this, check out my curated list of 200+ free APIs.


What CPU are you running your workloads on? ARM or x86? I'm curious about real-world experiences. Drop a comment!

Follow me for daily discoveries of useful APIs and developer tools.


More from me: 10 Dev Tools I Use Daily | 77 Scrapers on a Schedule | 150+ Free APIs


Need web scraping or data extraction? I've built 77+ production scrapers. Email spinov001@gmail.com — quote in 2 hours. Or try my ready-made Apify actors — no code needed.

Top comments (2)

Collapse
 
apdx profile image
apdx • Edited

I think it no longer works. You'll get 406 - Not Acceptable response.

Collapse
 
0012303 profile image
Alex Spinov

You're right, and it's my error to fix rather than an edge case.

I re-ran every path from the post just now. All three come back 403 from here, not 406 — and they return 403 with Accept: text/html as well, so it isn't content negotiation failing, the host is refusing the client outright. I got the same 403 from a second, unrelated network path, so it isn't only my IP.

That makes your 406 the more informative result. A 406 is the server saying it has no application/json representation of that URL at all, which is the honest reading here: browser.geekbench.com is an HTML app, and the Accept: application/json header in my post never turned it into an API. I don't have a verified free replacement for CPU scores yet, and I'd rather say so than leave the header trick standing.

Flagged the post for correction. Thanks for taking the time to report it.