Window Sticker API

Key-authenticated JSON/PDF API for original OEM window stickers (Monroney labels), per-VIN availability checks, and bulk inventory provisioning. For the free, unauthenticated VIN decode and pricing API, see VIN API docs.

Quickstart

  1. Get a key: start a 14-day free trial ($99/mo per rooftop after) — your key is issued instantly on the confirmation page and shown once. Multi-rooftop / platform use requires a Partner license.
  2. Auth: send the key in the x-api-key header on every request.
  3. Base URL: https://www.carwhere.com

GET /api/dealer/v1/window-sticker

Returns the original OEM Monroney PDF for a VIN, or a JSON availability check with format=check.

Query params: vin (required, 17 chars, no I/O/Q) · format=check (optional, JSON instead of PDF)

# Availability check (JSON)
curl -H "x-api-key: cw_dealer_..." \
  "https://www.carwhere.com/api/dealer/v1/window-sticker?vin=1GKS2JKL0TR171996&format=check"

# → 200
{ "available": true, "manufacturer": "GM (Chevrolet, GMC, Buick, Cadillac)",
  "brand": "GMC", "reason": null }

# Unsupported brand →
{ "available": false, "manufacturer": "Toyota / Lexus", "brand": "Toyota",
  "reason": "not_supported", "supported": ["GM (Chevrolet, GMC, Buick, Cadillac)",
  "Stellantis (Chrysler, Dodge, Jeep, Ram)", "Ford / Lincoln", "Hyundai", "Genesis"] }

# PDF fetch (default)
curl -H "x-api-key: cw_dealer_..." -o sticker.pdf \
  "https://www.carwhere.com/api/dealer/v1/window-sticker?vin=1GKS2JKL0TR171996"
# → 200 application/pdf (Cache-Control: private, max-age=86400)

POST /api/dealer/v1/provision

Bulk inventory check. Body: { "vins": string[], "live"?: boolean, "decode"?: boolean }. Limits: 500 VINs/request (instant WMI-level), 25 VINs/request with live=true (real OEM probes). decode=true adds NHTSA year/make/model/trim per VIN.

curl -X POST -H "x-api-key: cw_dealer_..." -H "Content-Type: application/json" \
  -d '{"vins":["1GKS2JKL0TR171996","3FTTW8BA1TRA77710"],"decode":true}' \
  "https://www.carwhere.com/api/dealer/v1/provision"

# → 200
{ "mode": "wmi",
  "note": "WMI-level support check...",
  "results": [
    { "vin": "1GKS2JKL0TR171996", "status": "supported", "brand": "GMC",
      "vehicle": { "year": "2026", "make": "GMC", "model": "Yukon", "trim": null } },
    ...
  ] }

# live=true result statuses: "available" | "fallback" | "unknown" | "invalid_vin"

Supported brands

Original OEM PDFs are served for: Chevrolet, GMC, Buick, Cadillac, Ford, Lincoln, Chrysler, Dodge, Jeep, Ram, Hyundai, Genesis. Toyota and Lexus retired public sticker access in 2026 and Kia removed its service — no vendor can retrieve those originals; the availability check returns not_supported for them so your UI never renders a dead link (archived copies, where we hold them, are still served).

Errors

  • 401 — missing, invalid, or revoked API key
  • 400 — invalid VIN, empty vins[], or batch over limit
  • 404 — no sticker exists for this VIN (not_found / not_supported)
  • 502 — manufacturer system unreachable (fetch_error) — retry later

Rate limits

No per-key request rate limit is currently enforced. The provisioning endpoint caps batch size per request (500 standard / 25 live). Be a good citizen with live probes — they hit manufacturer systems directly. Sustained abusive traffic may result in key revocation.

Widget (no code beyond two lines)

Prefer not to handle PDFs? The embeddable VDP widget renders a "View Window Sticker" button. Note: the widget uses CarWhere's free public lookup route; the keyed API above is for server-side and feed integrations.

<div data-carwhere-sticker data-vin="YOUR_VIN_HERE"></div>
<script async src="https://www.carwhere.com/widget/window-sticker.js"></script>

Questions or volume needs: [email protected] · Partner plans · For dealers