Skip to documentation

Search devices

Find up to 20 published devices by name, with optional brand and category filters. Results contain identifiers and labels only; fetch Device Details for specifications.

GET/v1/search

Request

Run this on your server with SPECSPOOL_API_KEY set.

curl --request GET 'https://api.specspool.com/v1/search?q=iphone&category=phone&limit=10' \
  --header "x-api-key: $SPECSPOOL_API_KEY"

Parameters

Required header: x-api-key.

Query parameters
FieldTypePresence
qstringRequired
brandslugOptional
categorycategoryOptional
limitintegerOptional
  • Send q exactly once. After trimming, it must contain 2-200 characters and at least one letter or digit.
  • brand is a lowercase brand slug. limit defaults to 10 and accepts 1-20. category uses one of the supported category values.
  • Only q, brand, category and limit are accepted, each at most once. Unknown parameters, duplicates, page and sort return 400 validation_error before admission.
  • The response is only a data array of { id, slug, name, brand, brandSlug, category }. It has no summaries, specifications, images, facets, pagination, totals, revision or conditional 304 workflow.
  • Category values: phone, tablet, smartwatch, laptop, desktop, cpu, gpu, motherboard, memory, storage, peripheral, reference. Use GET /v1/categories to discover categories with published devices.
  • 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-000000000001",
      "slug": "example-phone",
      "name": "Example Phone",
      "brand": "Example Brand",
      "brandSlug": "example-brand",
      "category": "phone"
    }
  ]
}
Success response fields
FieldTypePresence
dataCustomerDeviceMatch[]Required

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.

400 validation_error

The query is missing, invalid, duplicated, or contains unsupported parameters.

503 SEARCH_UNAVAILABLE

Search is temporarily unavailable. Retry with backoff.

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