---
title: "VIN → market instrument bridge"
method: GET
path: "/v2/vin/{vin}/instrument"
tags: ["vin"]
---

# VIN → market instrument bridge

`GET /v2/vin/{vin}/instrument`

## Request

- Base URL: `https://api.cardog.app`
- URL: `https://api.cardog.app/v2/vin/{vin}/instrument`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

## Path parameters

- `vin` string, required

## Response `200`

Squish always; model-year when bridged

- VinInstrument
  - `vin` string, required
  - `squishRef` string, required: Configuration key ref (WMI + VDS + model year, plant-agnostic). Always present, since it is computed from the VIN alone.
  - `mmy` object, nullable, required: The model-year instrument. Null when the VIN has not yet been linked to a model year in the entity graph.
    - `ref` string, required: Model-year entity ref, e.g. "model-year:honda/cr-v/2026"
    - `label` string, required: Display label, e.g. "Honda CR-V 2026"
  - `links` object: Related resources, keyed by relation name, each a server-relative path. Example: {"recalls": "/v2/recalls/entity/model-year:toyota/rav4/2021"}

## Other responses

- `400`: Invalid request — grammar failure or unknown-but-well-formed refs, NAMED in `refs`/`details`, with nearest-ref `suggestions` where computable. Never a fuzzy fallback.
- `401`: No valid credential (API key, session, or internal token)
- `402`: Insufficient credits (free-tier hard stop; paid tiers bill overage instead)
- `429`: Per-minute rate limit exceeded
- `500`: Internal error

---

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