/userbenchmark/components/search

POST /api/userbenchmark/components/search

Price: 20 credits

Read UserBenchmark's speed-rank table for one hardware class — processors, graphics cards, solid-state drives, hard drives, memory kits or USB drives — in the site's own ranking order. Returns each entry's brand and model, its rank, the number of user submissions behind it, the crowd user rating, the value rating, the average benchmark score with its 5th-95th percentile range, market share, age in months, the listed price, and the class-specific columns such as memory speed, capacity or write throughput.

How to use it

`metric_ranges` bounds are named the way the response names the field, so `avg_bench` bounds the `avg_bench` column; the source's sliders are whole-unit, so a fractional bound is widened outwards to the enclosing integer rather than dropping rows the caller asked for. A class-specific column arrives as an `extra_metrics` entry whose `key` is the source's own column code, and that code is accepted as a `metric_ranges` key too, so a row's own `extra_metrics[].key` can be fed straight back as a bound. Two kinds of row come back and `page_type` tells them apart: a `rating` row is an aggregated product carrying an `id` that /userbenchmark/components resolves, while a `speedtest` row is a submission the site never aggregated, so its `id` is null and only its `url` opens. Most of a class is `speedtest`, so filter on `page_type` before assuming an id is there. `metric_ranges` and `combo_filters` are keyed by column, and a key belongs to exactly one component_type, so a cpu key with an ssd class is rejected rather than ignored; capacity bounds are in GB even though the column prints TB. `brands`, `sellers` and `combo_filters` take the source's own spellings ('2x16GB', 'C30', 'M.2'), several values widen the set to their union, and an unknown spelling matches nothing rather than erroring. `search` matches word tokens, so a model number fragment also matches longer numbers containing it. `price` is a live marketplace quote in the currency of the exit the call happened to use, so it and `value_rating` move between identical calls, and a null price means no current listing rather than a free part.

Parameters

Request body

Response

Errors

Response headers