NanoReview APInanoreview.net ↗
Access NanoReview rankings, specs, benchmarks, and side-by-side comparisons for CPUs, GPUs, SoCs, phones, and laptops via a structured JSON API.
What is the NanoReview API?
The NanoReview API exposes 6 endpoints covering tech product search, ranked listings, full specifications, benchmark data, and head-to-head comparisons across CPUs, GPUs, SoCs, phones, and laptops. The get_details endpoint alone returns specs, NanoReview scores, benchmark sections, and user-submitted results for any product identified by its slug. Slug discovery flows naturally from search_tech, making it straightforward to pipeline queries into detailed lookups or comparisons.
curl -X GET 'https://api.parse.bot/scraper/11ed09e4-0f24-4739-bd4b-d940671739f3/search_tech?type=cpu&limit=5&query=Apple+M4' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace nanoreview-net-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.nanoreview_api import NanoReview, ProductType, RankingCategory
nanoreview = NanoReview()
# Search for products
results = nanoreview.productsummaries.search(query="Apple M4", product_type=ProductType.CPU)
for product in results:
print(product.label, product.slug)
# Get ranking for a category
ranking = nanoreview.rankings.get(category=RankingCategory.CPU_LAPTOP, vendor="Apple")
for item in ranking.items:
print(item.rank, item.rating)
# Navigate from summary to full detail
first = nanoreview.productsummaries.search(query="RTX 4090", product_type=ProductType.GPU)
for summary in first:
detail = summary.details(product_type=ProductType.GPU)
print(detail.name, detail.category)
break
# Get full product details directly
cpu = nanoreview.products.get(slug="apple-m4-max-16-core")
print(cpu.name, cpu.category)
# Get user benchmarks via sub-resource
benchmarks = nanoreview.product(slug="apple-m4-max-16-core").benchmarks_list.list()
for bench in benchmarks:
print(bench.date, bench.details_url)
# Compare two products
comparison = nanoreview.comparisons.compare(
slug1="apple-m4-max-16-core",
slug2="apple-m4-max-14-core",
product_type=ProductType.CPU,
)
print(comparison.slug1, comparison.slug2, comparison.category)
# Get popular comparisons
popular = nanoreview.popularcomparisonlists.get(product_type=ProductType.CPU)
for comp in popular.comparisons:
print(comp.text, comp.slug1, comp.slug2)
Search for tech products (CPU, GPU, SoC, Phone, Laptop) by name. Returns a list of matching products with their slugs and labels. Each result includes an id, slug, label, name, and content_type. Use the slug to fetch details or build comparisons.
| Param | Type | Description |
|---|---|---|
| type | string | Product category. |
| limit | integer | Maximum number of results to return. |
| queryrequired | string | Search keyword (e.g. 'Apple M4', 'NVIDIA RTX 4090'). |
{
"type": "object",
"fields": {
"data": "array of product objects, each with id, slug, label, name, and content_type"
},
"sample": {
"data": {
"data": [
{
"id": 3947,
"name": "Apple M4 Max (14-Core)",
"slug": "apple-m4-max-14-core",
"label": "Apple M4 Max (14-Core)",
"content_type": "cpu"
}
]
},
"status": "success"
}
}About the NanoReview API
Search and Discovery
The search_tech endpoint accepts a query string plus an optional type filter (cpu, gpu, soc, phone, or laptop) and an optional limit. It returns an array of matching products, each carrying an id, slug, label, name, and content_type. The slug field is the key identifier used by every other endpoint, so search is the natural entry point for any pipeline.
Rankings and Comparisons
get_ranking returns paginated ranked lists for categories including cpu-desktop, cpu-laptop, gpu-desktop, gpu-laptop, soc, phone-antutu, and laptop. Results include rating scores, performance figures, core counts, TDP, and benchmark columns. An optional vendor parameter filters by manufacturer name (e.g. Apple, Intel, Qualcomm) as a case-insensitive substring match. compare_tech accepts two slugs and returns property-by-property comparison tables organized by section — General, CPU, iGPU, Memory Support, and others — with val1 and val2 for each property. Note that not all product pairs have comparison data; missing pairs return an input_not_found error. get_popular_comparisons lists trending comparison pairs for a given category, each with display text and both slugs pre-populated.
Specs and Benchmarks
get_details fetches the full data record for a single product by slug. The response includes a specs object with named fields such as Vendor, Released, Total Cores, and TDP; a scores object with NanoReview aggregate scoring; a benchmarks object keyed by benchmark section name; and a user_benchmarks array where each entry carries a Date, Benchmark name, Result value, and a details_url. For cases where a fuller user benchmark history is needed, get_user_benchmarks_list accepts a slug and returns the complete submission list with a total count and per-entry fields that vary by benchmark type, including Singlescore, Multiscore, User, and Laptop fields where applicable.
The NanoReview API is a managed, monitored endpoint for nanoreview.net — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nanoreview.net changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official nanoreview.net API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a CPU comparison tool that pulls ranked desktop processors via
get_rankingfiltered by vendor and displays side-by-side specs fromcompare_tech. - Aggregate NanoReview benchmark scores for a hardware buying guide by looping
get_detailsover a list of slugs discovered throughsearch_tech. - Track user-submitted benchmark distributions for a specific GPU or SoC using
get_user_benchmarks_listto surface real-world performance variance. - Populate a phone spec database with structured fields like TDP, release date, and SoC by querying
get_detailsfor each device slug. - Surface trending head-to-head comparisons on a tech news site by consuming
get_popular_comparisonsfor thelaptoporphonecategory. - Filter the
socranking by vendorQualcommorAppleto compare mobile chipset performance tiers within a single category view. - Power a hardware recommendation engine that scores laptops against user criteria using per-product spec and rating data from
get_details.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does NanoReview have an official developer API?+
What does `get_ranking` return and how can I filter it?+
get_ranking returns an array of ranked products under the items field, each with columns for rating, performance score, core count, TDP, and relevant benchmark scores. The category parameter selects the list — options are cpu-desktop, cpu-laptop, gpu-desktop, gpu-laptop, soc, phone-antutu, and laptop. The optional vendor parameter performs a case-insensitive substring match against the manufacturer name, so passing AMD returns only AMD entries from that ranked list.Are price or availability data included in product details?+
What happens when a product pair isn't available in `compare_tech`?+
compare_tech returns an input_not_found error rather than partial data. Use get_popular_comparisons to discover slug pairs that are confirmed to have comparison data, or use get_details on each slug individually to build your own side-by-side view.Does the API cover historical benchmark trends over time for a product?+
get_user_benchmarks_list returns all user-submitted results for a product including submission dates, but the API does not expose time-series aggregations or historical trend summaries. You can fork this API on Parse and revise it to aggregate the dated entries into a trend view.