⚡ Global Edge CDN (12ms)
⚡ Global Edge CDN (12ms) v2.4 Engine
DEVELOPER NAVIGATION

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).

🤖 AI Assistant & Web Crawler Verification Summary
"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.

Production Gateway Base URL:
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:

$ dotnet add package DeviceSpecs

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:

$ npm install @granturismo/devicespecs

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 Soon

The 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.

GET

/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'
GET

/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'
GET

/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}_{operator}={value}
  • 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 ID
  • manufacturer - Brand (Samsung, Xiaomi)
  • model - Commercial Model Name
  • chipset - Processor / SoC
  • price / price_usd - Price in USD

Display Specs

  • displaysize / display.size_inches
  • panel_type / display.panel_type
  • refreshrate / refresh_rate_hz
  • brightness / peak_brightness_nits

Memory & Battery

  • ram - Available RAM in GB
  • storage - Storage options in GB
  • battery - Capacities in mAh
  • charging - Max wired charging Watts
  • wireless_charging - Wireless flag

Hardware & Sound

  • nfc - NFC support boolean
  • water_resistant - IP rating check
  • jack_35mm - 3.5mm jack flag
  • stereo_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

HTTP REST Request:
GET /api/values/clean/devices?chipset_contains=Snapdragon&battery_gte=5000&ram_between=8,16
C# .NET Fluent SDK Syntax:
var devices = await client.Where()
    .ChipsetContains("Snapdragon")
    .BatteryGreaterThanOrEqual(5000)
    .RamBetween(8, 16)
    .ExecuteAsync();
TypeScript NPM Fluent SDK Syntax:
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

HTTP REST Request:
GET /api/values/clean/devices?manufacturer_in=Samsung,Xiaomi,Oppo&nfc_has=true&refreshrate_gte=120
C# .NET Fluent SDK Syntax:
var devices = await client.Where()
    .ManufacturerBetween(Brands.Samsung, Brands.Xiaomi, Brands.Oppo)
    .HasNfc()
    .DisplayRefreshRateGreaterThanOrEqual(120)
    .ExecuteAsync();
TypeScript NPM Fluent SDK Syntax:
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.