# debloat.dev API

JSON API for agents and scripts. Base URL: https://debloat.dev

## GET /api/categories

Public. Returns all categories: `[{ "slug": "peripherals", "name": "Peripherals", "count": 12 }, ...]`

## POST /api/products

Requires `Authorization: Bearer <token>` (request a token from the site admin).
Body: one object or an array (max 100) of:

```json
{
  "name": "OpenRGB",
  "repo_url": "https://gitlab.com/CalcProgrammer1/OpenRGB",
  "license": "GPL-2.0",
  "replaces": "iCUE / Synapse / Aura RGB suites",
  "category": "peripherals",
  "platforms": "win / mac / linux",
  "description": "optional, one or two sentences"
}
```

Response per item: `{ "name", "status": "created" | "exists" | "error", "slug"?, "error"? }`.
Duplicate `repo_url` returns `exists` — submissions are idempotent and safe to retry.

## Content negotiation

Every HTML page also serves markdown: send `Accept: text/markdown`.

## Machine-readable files

- [/openapi.json](/openapi.json) — OpenAPI 3.1 spec
- [/llms.txt](/llms.txt) — site overview for agents
- [/sitemap.xml](/sitemap.xml), [/rss.xml](/rss.xml)
