---
title: "Retrieve a catalog vehicle"
method: GET
path: "/manufacturers/{manufacturer}/models/{model}/variants/{variant}/styles/{style}"
tags: ["Catalog"]
---

# Retrieve a catalog vehicle

`GET /manufacturers/{manufacturer}/models/{model}/variants/{variant}/styles/{style}`

## Request

- Base URL: `https://api.ekho.com`
- URL: `https://api.ekho.com/manufacturers/{manufacturer}/models/{model}/variants/{variant}/styles/{style}`
- Auth: HTTP bearer

A catalog vehicle is the most specific variant of a manufacturer's model: one colour of one trim. You get the colour name and swatch, any price adjustment, the image, and your own id for it where we hold one. The trim and its model come back inline, so one call covers all three levels. Add `expand[]=accessories` for the accessories that fit the model; it costs an extra lookup, so it is off by default. Pass `variant_id` and `style_id` together to name this vehicle on `POST /carts/build-to-order`.

## Path parameters

- `manufacturer` string, required
- `model` string, required
- `variant` string, required
- `style` string, required

## Query parameters

- `expand[]` string[]: Repeatable. Expand `accessories` to include what fits the model this style belongs to.

## Response `200`

The catalog vehicle, with its trim and model inline.

- object
  - `data` CatalogStyle, required
    - `variant` CatalogVariantSummary, required: The trim this colour is offered on.
      - `id` string, required
      - `name` string, nullable, required: Year, make, model, and trim.
      - `msrp` number, nullable, required: Suggested retail price of this trim, USD.
      - `type` string, nullable, required: How the trim titles, which downstream registration depends on.
      - `external_id` string, nullable, required: Your own id for this trim, where we hold one.
    - `model` CatalogModelSummary, required: The model that trim belongs to, inlined so one call answers all three.
      - `id` string, required
      - `name` string, nullable, required: Year, make, and model, with no trim in it.
      - `make` string, nullable, required
      - `model` string, nullable, required: The model without a trim, like "Trail 350" rather than "Trail 350 HP".
      - `year` integer, nullable, required
      - `category` string, nullable, required: Primary classification, which sets the spec shape and titling options.
    - `color_name` string, nullable, required
    - `color_hex` string, nullable, required: Hex swatch for the colour.
    - `img_url` string, nullable, required
    - `price_adjustment` number, nullable, required: Added to the trim price for premium paint, USD.
    - `external_id` string, nullable, required: Your own id for this colour, which overrides the trim's where both exist, because the configuration a buyer picked is the one you reconcile against.
    - `accessories` CatalogAccessory[]: Accessories that fit the model this style belongs to. Present only on `expand[]=accessories`.
      - `id` string, required: Accessory id, which a cart accepts directly with no assembly.
      - `name` string, required

## Other responses

- `400`: The request was malformed or failed validation. `errors` itemizes every field at fault, so one response names them all; the fields in the example stand in for this request's own.
- `401`: Authentication is missing or invalid.
- `403`: The token lacks `manufacturers:read`.
- `404`: One body covers three cases: an id that does not exist, an id beneath a different manufacturer or model, and a vehicle we have not built the catalog for. They share a body so ids cannot be probed.
- `429`: The rate limit has been exceeded.
- `500`: An unexpected error occurred.

## Changes

- **2026-09-18** `78c545d96a34`: 18 warning
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `400`
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `401`
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `403`
  - added the new `external_id_in_use` enum value to the `code` response property for the response status `404`
  - …14 more
- **2026-09-17** `2a0b497bcf22`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ekho/apis/ekho-api/changes/manufacturers/:manufacturer/models/:model/variants/:variant/styles/:style/get.md)

---

[API](https://skmtc.dev/ekho/apis/ekho-api.md) · [All operations](https://skmtc.dev/ekho/apis/ekho-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ekho/apis/ekho-api/revisions/efe485119dd7?raw)
