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
- 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.
- Auth: send the key in the
x-api-keyheader on every request. - 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 key400— invalid VIN, emptyvins[], or batch over limit404— 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