---
title: "The spec dictionary — every spec key, its label, unit and group"
method: GET
path: "/specs/catalog"
tags: ["catalog"]
---

# The spec dictionary — every spec key, its label, unit and group

`GET /specs/catalog`

## Request

- Base URL: `https://api.cars-data.com/v1`
- URL: `https://api.cars-data.com/v1/specs/catalog`
- Auth: one of:
  - API key in header `X-Api-Key`
  - HTTP bearer

The 232 spec types, localized. Read this once to know what the keys in `/variants/{id}/specs` mean.

## Query parameters

- `locale` 'ar' | 'bg' | 'cs' | 'da' | 'de' | 'el' | 'en' | 'es' | 'fr' | 'hr' | 'hu' | 'it' | 'no' | 'pl' | 'pt' | 'ro' | 'sk' | 'sr' | 'sv' | 'tr'
- `cursor` string
- `limit` integer

## Response `200`

OK

- SpecDefinitionListEnvelope
  - `data` SpecDefinition[]
    - `display_name` string
    - `group` string, nullable
    - `spec_key` string
    - `unit` string, nullable
  - `links` Links
    - `next` string, nullable: Opaque cursor for the next page; absent when the page was not full.
  - `meta` Meta
    - `last_synced_at` string, date-time, required
    - `locale` string
    - `units` 'metric' | 'imperial'

## Other responses

- `401`: No key, or a key we do not know. `WWW-Authenticate: Bearer` on the MCP surface. The MCP server needs no key at all; a REST demo key is one click away. On the two x402 routes a request with no key gets `402` instead, with the price.
- `403`: RFC 9457 problem document.

---

[API](https://skmtc.dev/cars-data/apis/cars-data-com-api.md) · [All operations](https://skmtc.dev/cars-data/apis/cars-data-com-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cars-data/apis/cars-data-com-api/revisions/4aeb6b2b5c5f?raw)
