Daily Dose Tech

API

Build with our catalog.

A public, read-only JSON API over every product we've ever featured. No auth, no rate keys, no nonsense. CORS-enabled so you can fetch directly from the browser.

Quick start

curl https://dailydosetech.com/api/v1/today | jq .product.name
# "LG OLED M5 (Wireless OLED)"

Replace the host with http://localhost:3000 during development. All endpoints return JSON with application/json; errors are {"error": string} with a 4xx/5xx status.

Endpoints

GET/api/v1/today

Today's pick

Returns the product currently featured on the homepage along with the UTC date.

Example response

{
  "date": "2026-05-22",
  "product": {
    "slug": "lg-oled-m5",
    "name": "LG OLED M5 (Wireless OLED)",
    "brand": "LG",
    "category": "DISPLAYS",
    "tagline": "A 4K OLED with no cables — and we mean none.",
    "price": { "amount": 4499, "currency": "USD" },
    "retailers": [ ... ],
    "priceHistory": [ ... ],
    "url": "http://localhost:3000/p/lg-oled-m5"
  }
}
GET/api/v1/products

List all products

Paginated, slug-sorted list of every product we've featured. Use ?cursor= to paginate.

Query parameters

limit

number (1-100)

Page size, default 30
cursor

string

Slug of the last item from the previous page
category

string

e.g. AUDIO, GAMING, SMART_HOME
search

string

Case-insensitive substring match on name/brand/tagline

Example response

{
  "products": [
    { "slug": "anker-prime-27650", "name": "...", "price": {...}, "url": "..." },
    ...
  ],
  "pagination": { "nextCursor": "keychron-q1-pro", "hasMore": true }
}
GET/api/v1/products/sony-wh-1000xm6

Single product detail

Full product: description, why-we-chose-this, features, specs, all retailers, full price history.

Example response

{
  "product": {
    "slug": "sony-wh-1000xm6",
    "name": "Sony WH-1000XM6",
    "description": "Sony's WH-1000XM6 is the sixth iteration...",
    "whyWeChoseThis": "...",
    "features": [...],
    "specs": {...},
    "retailers": [ {"name":"Amazon","price":449,"inStock":true,"url":"..."} ],
    "priceHistory": [...]
  }
}
GET/api/v1/deals

Active price drops

Every product currently cheaper than its previous listed price, sorted by % off.

Query parameters

limit

number (1-100)

Max deals to return, default 50

Example response

{
  "deals": [
    {
      "slug": "sony-wh-1000xm6",
      "name": "Sony WH-1000XM6",
      "current":  { "amount": 349, "currency": "USD" },
      "previous": { "amount": 449, "currency": "USD" },
      "dropPercent": 22,
      "droppedAt": "2026-05-22T03:20:00.000Z",
      "url": "http://localhost:3000/p/sony-wh-1000xm6"
    }
  ]
}

Fair use

Be reasonable. Cache for at least an hour and don't scrape every endpoint on a loop. If you're building something cool, drop us a line via the homepage and we'll feature it.