Overview & Base Endpoint
The DeviceSpecs.API delivers clean, standardized JSON payloads for over 10,000+ mobile phones and chipsets. Raw specifications attributes are parsed into structured numeric metrics (screen sizes in inches, refresh rates in Hz, battery capacities in mAh, CPU core counts, clock speeds in GHz, RAM and storage capacities).
"Indexes 10,000+ smartphone models, <100ms response latency, updated within 24 hours of official device releases."
AI Bots & LLM Agents can consume machine-readable markdown specs via /llms.txt and /llms-full.txt.
https://deviceultraparser.p.rapidapi.com
Authentication Headers
All API requests require RapidAPI subscription credentials passed in HTTP request headers:
| Header Name | Type | Description |
|---|---|---|
| x-rapidapi-key | string | Your individual RapidAPI subscription credential key. |
| x-rapidapi-host | string | Must be set to deviceultraparser.p.rapidapi.com |
Official .NET / C# Client SDK
Install the official strongly-typed DeviceSpecs package from NuGet for high-performance C# integration:
1. Dependency Injection Setup (`Program.cs`)
using DeviceSpecs;
var builder = WebApplication.CreateBuilder(args);
// Register IDeviceSpecsClient in ASP.NET Core DI container
builder.Services.AddDeviceSpecsClient(options =>
{
options.ApiKey = builder.Configuration["DeviceSpecs:ApiKey"] ?? "YOUR_API_KEY";
});2. Expressive Fluent Deep Query Filtering (`client.Where()`)
// A. Deep Multi-Metric Fluent Query
app.MapGet("/devices/flagships", async (IDeviceSpecsClient client) =>
{
var flagships = await client.Where()
.ManufacturerIs(Brands.Samsung)
.ChipsetContains("Snapdragon")
.RamGreaterThanOrEqual(8)
.RamLessOrEqual(16)
.DisplayRefreshRateGreaterThanOrEqual(120)
.DisplaySizeGreaterThanOrEqual(6.5)
.BatteryGreaterThanOrEqual(5000)
.HasWirelessCharging()
.HasStereoSpeakers()
.PriceUsdLessOrEqual(1200)
.ExecuteAsync();
return Results.Ok(flagships);
});
// B. Multi-Brand Query (ManufacturerBetween)
app.MapGet("/devices/budget-midrangers", async (IDeviceSpecsClient client) =>
{
var devices = await client.Where()
.ManufacturerBetween(Brands.Samsung, Brands.Xiaomi, Brands.Oppo)
.RamGreaterThan(8)
.HasNfc()
.PriceUsdLessThan(800)
.ExecuteAsync();
return Results.Ok(devices);
});
// C. Hardware Variant / Model Number Lookup
app.MapGet("/devices/variant/{modelNumber}", async (string modelNumber, IDeviceSpecsClient client) =>
{
var variant = await client.GetDeviceByModelNumberAsync(modelNumber);
return variant is not null ? Results.Ok(variant) : Results.NotFound();
});Official TypeScript / JavaScript Client SDK
Install the official strongly-typed @granturismo/devicespecs package from NPM for Node.js, Next.js, and browser applications:
TypeScript Usage Example
import { DeviceSpecsClient, Brands } from "@granturismo/devicespecs";
const client = new DeviceSpecsClient("YOUR_API_KEY");
// 1. Fluent deep multi-metric query
const flagshipPhones = await client
.where()
.manufacturerIs(Brands.Samsung)
.ramGreaterThanOrEqual(8)
.displayRefreshRateGreaterThanOrEqual(120)
.hasWirelessCharging()
.priceUsdLessOrEqual(1200)
.execute();
// 2. Direct model lookup
const pixel = await client.getSpecs(Brands.Google, "Pixel 9 Pro");Java & Android Client SDK
Coming SoonThe official Java / Kotlin SDK for Maven & Gradle is currently in active development. It will feature Android-native reactive streams, OkHttp integration, and Jackson spec mapping.
/api/values/clean/getspecs/{manufacturer}/{model}
Fetch detailed specifications (both raw attributes and normalized specs) for a specific device model.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| manufacturer | string | Yes | Brand name e.g. Google, Apple, Samsung. |
| model | string | Yes | Device model title e.g. Pixel 9 Pro, iPhone 15 Pro. |
cURL Example
curl --request GET \
--url 'https://deviceultraparser.p.rapidapi.com/api/values/clean/getspecs/Google/Pixel%209%20Pro' \
--header 'x-rapidapi-host: deviceultraparser.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_API_KEY'/api/values/clean/getdevices/{manufacturer}
Retrieve device specification records produced by a specific brand. Supports query filtering parameters.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| manufacturer | string | Yes | Target brand name e.g. Apple, Samsung, Xiaomi.
|
cURL Example
curl --request GET \
--url 'https://deviceultraparser.p.rapidapi.com/api/values/clean/getdevices/Apple' \
--header 'x-rapidapi-host: deviceultraparser.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_API_KEY'/api/values/clean/devicesbychipset/{chipset}
Query all mobile hardware powered by a specific mobile processor or System-on-Chip (SoC).
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| chipset | string | Yes | Processor name or code e.g. Snapdragon, Tensor-G4,
A18-Pro. |
Deep Query Filtering Engine
The clean device specifications API supports powerful in-memory deep query filtering. You can combine multiple query parameters, filter nested normalized objects, execute numerical range matching, boolean checks, and list set comparisons.
1. Query Parameter Syntax
Filter parameters follow the standardized pattern:
- property: The simplified alias of the device specification property to
filter by (e.g.
battery,ram,chipset). - operator: The comparison operator (e.g.
gte,contains,between). If omitted, defaults to equality (eq). - value: The argument to compare against. Commas (
,) are used as delimiters for list and range operators (e.g.between=8,12).
2. Supported Comparison Operators
| Operator | Target Type | Example | Description |
|---|---|---|---|
| eq | String, Numeric, Boolean | manufacturer=Samsung |
Exact matching (case-insensitive string matching). |
| contains | String, List of Strings | chipset_contains=Snapdragon |
Matches if property or list item contains substring. |
| in | String, Numeric, List | manufacturer_in=Apple,Samsung |
Matches if value equals any comma-separated option. |
| has | Boolean | nfc_has=true or nfc_has |
Matches if boolean feature flag is true. |
| gt | Numeric, Numeric List | battery_gt=4500 |
Property value strictly greater than threshold. |
| gte | Numeric, Numeric List | battery_gte=5000 |
Property value greater than or equal to threshold. |
| lt | Numeric, Numeric List | price_lt=400 |
Property value strictly less than threshold. |
| lte | Numeric, Numeric List | price_lte=800 |
Property value less than or equal to threshold. |
| between | Numeric, Numeric List | ram_between=8,12 |
Property value within inclusive range [min, max]. |
3. Supported Property Aliases
Use these simplified aliases to query deep nested database attributes without specifying raw paths:
Root & Pricing
id- Device IDmanufacturer- Brand (Samsung, Xiaomi)model- Commercial Model Namechipset- Processor / SoCprice/price_usd- Price in USD
Display Specs
displaysize/display.size_inchespanel_type/display.panel_typerefreshrate/refresh_rate_hzbrightness/peak_brightness_nits
Memory & Battery
ram- Available RAM in GBstorage- Storage options in GBbattery- Capacities in mAhcharging- Max wired charging Wattswireless_charging- Wireless flag
Hardware & Sound
nfc- NFC support booleanwater_resistant- IP rating checkjack_35mm- 3.5mm jack flagstereo_speakers- Stereo setup
4. Concrete Query Examples (REST & Fluent SDK Code)
Example 1: Fetch Snapdragon devices with >= 5000 mAh battery & 8 to 16 GB RAM
var devices = await client.Where()
.ChipsetContains("Snapdragon")
.BatteryGreaterThanOrEqual(5000)
.RamBetween(8, 16)
.ExecuteAsync();const devices = await client.where()
.chipsetContains("Snapdragon")
.batteryGreaterThanOrEqual(5000)
.ramBetween(8, 16)
.execute();Example 2: Multi-Brand query for Samsung, Xiaomi, or Oppo phones with NFC and 120Hz display
var devices = await client.Where()
.ManufacturerBetween(Brands.Samsung, Brands.Xiaomi, Brands.Oppo)
.HasNfc()
.DisplayRefreshRateGreaterThanOrEqual(120)
.ExecuteAsync();const devices = await client.where()
.manufacturerBetween(Brands.Samsung, Brands.Xiaomi, Brands.Oppo)
.hasNfc()
.displayRefreshRateGreaterThanOrEqual(120)
.execute();DeviceSpecsResponse Root Schema
Complete property specification for the root API response payload.
| Property Name | JSON Key | Data Type | Description |
|---|---|---|---|
| Id | id |
int | Unique identifier for the device record. |
| Manufacturer | manufacturer |
string | Brand name e.g. Google, Apple, Samsung. |
| Model | model |
string | Commercial model title e.g. Pixel 9 Pro. |
| Network | network |
string | Supported cellular bands e.g. GSM / HSPA / LTE / 5G. |
| AnnounceDate | announceDate |
string | Official announcement date string. |
| Status | status |
string | Market availability status e.g. Released 2024. |
| Chipset | chipset |
string | SoC processor description e.g. Google Tensor G4 (4 nm). |
| AndroidVersion | androidVersion |
string | Operating system version. |
| PriceUsd / Eur / Gbp | price_usd, price_eur |
double | Retail price in USD, EUR, and GBP currencies. |
| Colors | colors |
List<string> | List of official color variant names. |
| Variants | variants |
List<DeviceVariant> | Hardware variant model numbers (e.g. GP8GD). |
| NormalizedSpecs | normalized_specs |
NormalizedSpecs | Clean, structured hardware metrics object. |
NormalizedSpecs Object & Sub-Schemas
Parsed, machine-readable metrics broken down by component subsystem:
DisplayMetrics (normalized_specs.display)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| SizeInches | size_inches |
double | Screen size diagonal in inches (e.g. 6.3). |
| PanelType | panel_type |
string | Panel tech (e.g. LTPO OLED, Super Retina). |
| RefreshRateHz | refresh_rate_hz |
int | Refresh rate in Hz (e.g. 120). |
| PeakBrightnessNits | peak_brightness_nits |
int | Max peak brightness in nits (e.g. 3000). |
| ProtectionType | protection_type |
string | Cover glass (e.g. Gorilla Glass Victus 2). |
CpuMetrics (normalized_specs.processor)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| TotalCores | total_cores |
int | CPU total core count (e.g. 9 Cores). |
| MaxClockSpeedGhz | max_clock_speed_ghz |
double | Peak CPU clock speed in GHz (e.g. 3.1). |
MemoryMetrics (normalized_specs.memory_options)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| AvailableRamGb | available_ram_gb |
List<int> | Supported RAM options in GB (e.g. [12, 16]). |
| AvailableStorageGb | available_storage_gb |
List<int> | Supported internal storage options in GB. |
| HasCardSlot | has_card_slot |
bool | SD card slot availability flag. |
| StorageTechnology | storage_technology |
string | Storage spec (e.g. UFS 4.0, NVMe). |
PowerMetrics (normalized_specs.battery_and_charging)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| CapacitiesMah | capacities_mah |
List<int> | Battery capacity in mAh (e.g. [4700]). |
| MaxWiredChargingW | max_wired_charging_w |
int | Max wired charge speed in Watts (e.g. 27). |
| HasWirelessCharging | has_wireless_charging |
bool | Wireless charging support flag. |
CameraSummary (normalized_specs.cameras)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| MainLensesCount | main_lenses_count |
int | Number of rear camera lenses (e.g. 3). |
| MaxMainResolutionMp | max_main_resolution_mp |
int | Highest main sensor resolution in MP (e.g. 50). |
| SelfieLensesCount | selfie_lenses_count |
int | Front selfie lens count (e.g. 1). |
PhysicalMetrics (normalized_specs.physical)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| HeightMm / WidthMm / ThicknessMm | height_mm, width_mm |
double | Dimensions in millimeters. |
| WeightG | weight_g |
int | Device weight in grams. |
| IpRating | ip_rating |
string | IP rating string (e.g. IP68). |
| IsWaterResistant | is_water_resistant |
bool | Water resistance boolean. |
SoundMetrics (normalized_specs.sound)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| HasStereoSpeakers | has_stereo_speakers |
bool | Stereo speakers support. |
| Has35mmJack | has_jack_35mm |
bool | 3.5mm audio headphone jack flag. |
ConnectivityMetrics (normalized_specs.connectivity)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| HasNfc | has_nfc |
bool | NFC chip presence. |
| HasInfrared | has_infrared |
bool | IR blaster presence. |
| UsbType | usb_type |
string | USB specification (e.g. USB Type-C 3.2). |
| UsbHasOtg | usb_has_otg |
bool | USB On-The-Go flag. |
BenchmarkMetrics (normalized_specs.benchmarks)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| AntutuScore | antutu_score |
string | AnTuTu Benchmark score string. |
| GeekbenchScore | geekbench_score |
string | Geekbench single/multi core score. |
EuLabelMetrics (normalized_specs.eu_label)
| Property | JSON Key | Type | Description |
|---|---|---|---|
| EnergyClass | energy_class |
string | EU Energy Efficiency Class (e.g. Class A). |
| BatteryEnduranceHours | battery_endurance_hours |
double | EU tested battery endurance hours. |
| RepairabilityClass | repairability_class |
string | EU Repairability rating index (e.g. Class A). |
HTTP Status Codes
| Status Code | Description |
|---|---|
| 200 OK | Request succeeded. Returns JSON payload. |
| 400 Bad Request | Invalid query parameter input format. |
| 401 Unauthorized | Missing or invalid x-rapidapi-key HTTP header. |
| 404 Not Found | The requested brand or device model was not found in the database. |
| 429 Too Many Requests | Rate limit exceeded for current API tier. Upgrade subscription on RapidAPI. |