A P I.
D O C S.

Everything you need to pull raw data from N(DATA). No auth required. No rate limits.

Version 0.0.0

1. Overview

N(DATA) exposes its entire product archive as a single, publicly accessible JSON file. There is no authentication, no API key, and no rate limit. You fetch the file, you get all the data.

The data lives at a static path on the same domain. This design keeps things simple and fast for everyone. The file is updated whenever new items are added to the archive.

2. Data Endpoint

One endpoint. Returns the full product array as JSON.

GET /api/data/data.json

Response is an array of product objects. HTTP 200 on success.

RESPONSE HEADERS

Content-Type: application/json
Access-Control-Allow-Origin: *

UPDATES ENDPOINT

GET /api/data/updates-data.json

Changelog and update records for the archive.

3. Data Schema

Each item in the array follows this structure:

Field Type Description
id string Unique identifier. Format: prefix-NNNNNN (e.g. phn-000001). Auto-assigned if not present in source data.
name string Full product name.
brand string Manufacturer or brand name.
category string Product category slug. See Categories section.
price number Base price in USD at time of indexing.
description string Short product description.
images array Array of image URLs. May be empty.
specs object Key-value map of technical specifications. Keys use snake_case. Values are strings.
diy_resources array Optional. Array of repair/guide objects with title, url, description, icon, and type fields.
date_added string Optional. ISO date string (YYYY-MM-DD) when item was indexed.

EXAMPLE OBJECT

{
  "id": "phn-000001",
  "name": "Phone (2a)",
  "brand": "Nothing",
  "category": "smartphones",
  "price": 349,
  "description": "A uniquely designed smartphone...",
  "images": ["https://..."],
  "specs": {
    "processor": "MediaTek Dimensity 7200 Pro",
    "ram": "12GB",
    "display": "6.7-inch AMOLED 120Hz"
  },
  "diy_resources": [
    {
      "title": "Teardown Guide",
      "url": "https://...",
      "icon": "wrench",
      "description": "Step-by-step teardown.",
      "type": "REPAIR GUIDE"
    }
  ]
}

4. Categories

Valid values for the category field:

SlugLabel
smartphonesSmartphones and mobile phones
laptopsLaptops and portable computers
tabletsTablets and e-readers
wearablesSmartwatches, earbuds, and audio gear
componentsCPUs, GPUs, RAM, storage
camerasDigital cameras and lenses
gamingConsoles, handhelds, and peripherals
monitorsDisplays and projectors
networkingRouters, switches, and access points

5. Code Examples

JAVASCRIPT (FETCH)

// Fetch all items
const res = await fetch('/api/data/data.json');
const items = await res.json();

// Filter by category
const phones = items.filter(i => i.category === 'smartphones');

// Get by ID
const item = items.find(i => i.id === 'phn-000001');

PYTHON (REQUESTS)

import requests

res = requests.get('https://your-domain.com/api/data/data.json')
items = res.json()

# Filter by brand
samsung = [i for i in items if i['brand'] == 'Samsung']

# Sort by price
by_price = sorted(items, key=lambda x: x['price'])

CURL

curl https://your-domain.com/api/data/data.json
# Pretty print with jq
curl https://your-domain.com/api/data/data.json | jq '.[0]'

6. Client-Side Filtering

Since the API returns all data in one request, filtering and searching happen on the client side. Below are common patterns:

// Search across name, brand, description, and specs
function search(items, query) {
  const q = query.toLowerCase();
  return items.filter(item => {
    const fields = [item.name, item.brand, item.description];
    const specVals = Object.values(item.specs || {});
    return [...fields, ...specVals].some(v =>
      String(v).toLowerCase().includes(q)
    );
  });
}

// Sort by price ascending
items.sort((a, b) => a.price - b.price);

7. Changelog

v1.11.0 2026-05-10

Added bookmarks, compare (up to 4 items), sort by price/date, halftone card image shaders, auto image scroll on hover, keyboard shortcut (/), multi-language support (EN/AR/JP/DE), auto ID assignment, new categories (gaming, monitors, networking), EUR and GBP currencies, full docs and API pages.

v1.10.1 2026-05-09

Previous release. Base feature set with search, category filters, product modal, lightbox, dark mode, currency conversion.