Skip to documentation

Brands

List catalog brands and their published device counts, optionally filtered by category.

GET/v1/brands

Request

Run this on your server with SPECSPOOL_API_KEY set.

curl --request GET 'https://api.specspool.com/v1/brands?category=phone' \
  --header "x-api-key: $SPECSPOOL_API_KEY"

Parameters

Required header: x-api-key.

Query parameters
FieldTypePresence
categorycategoryOptional
  • Category values: phone, tablet, smartwatch, laptop, desktop, cpu, gpu, motherboard, memory, storage, peripheral, reference. Use GET /v1/categories to discover categories with published devices.
  • The response contains the complete matching brand list sorted by name and a catalog revision object. When category is supplied, only brands with published devices in that category are returned and deviceCount is scoped to that category.
  • To find devices for a brand, use Search devices with q and brand.
  • This is a discovery request. Account-wide discovery limits use fixed UTC windows and apply across all API keys.

Response

200 OK, application/json. See Response schema for device, brand, variant and search-result fields.

All customer /v1 responses use Cache-Control: private, no-store. Free device-detail responses omit image URL fields. Image URLs are optional on paid plans too; check for their presence before rendering an image.

Show an example JSON response

Illustrative data; names, counts and specifications are examples.

200 OK
{
  "data": [
    {
      "id": "00000000-0000-4000-8000-000000000010",
      "slug": "example-brand",
      "name": "Example Brand",
      "deviceCount": 2
    }
  ],
  "revision": {
    "revision": "example-revision",
    "updatedAt": "2026-10-01T00:00:00.000Z"
  }
}
Success response fields
FieldTypePresence
dataBrand[]Required
revisionRevisionRequired

Errors

Invalid supported parameters or malformed JSON can return 400 validation_error. Authentication and admission can return 401, 402, 403, 429 or 503; see authentication errors. Unexpected failures return 500 internal_error. Errors after admission remain counted.

{
  "error": {
    "code": "validation_error",
    "message": "Invalid request parameters"
  }
}