Quickstart
Your first image in two minutes.
1. Get an API key
Sign in and you start with 100 free credits — no card. Create a key in the dashboard, or let the CLI do it through a browser-approved device code:
npx @meterapp/car-image loginKeys belong in headers or your environment
A key is shown once when it is created and stored only as a hash. Never put it in a URL, a prompt, a tool result or a committed MCP config; use
CAR_IMAGE_API_KEY and signed URLs for anything a browser can see.2. Request an image
One request returns the bytes. make, model and year are validated against the vehicle catalog; view picks one of six camera angles.
curl --fail-with-body \
-H "Authorization: Bearer $CAR_IMAGE_API_KEY" \
"https://car-imgs.vercel.app/api/v1/images/car?make=porsche&model=911&year=2024&view=front-3-4&color=red" \
--output porsche-911.pngThe first request for a vehicle, color and angle nobody has asked for yet renders it (about ten seconds). It is cached forever after that and served in milliseconds — for the same single credit.
3. Read the response headers
Every image response tells you what it cost and where it came from:
| Header | Example | Meaning |
|---|---|---|
X-Credits-Charged | 1 | Always 1 for a delivered image. |
X-Credits-Remaining | 99 | Your balance after this request. |
X-Image-Source | cache | cache or generated — the price is identical. |
X-Image-Width / X-Image-Height | 1024 | Delivered pixel dimensions. |
ETag | "9f2a…c41d" | Send it back as If-None-Match to get a free 304. |
X-Request-Id | req_01j… | Quote it when you report a problem. |
4. Go further
- AuthenticationAPI keys, scopes, the device flow and where keys must never go.
- ImagesGET /api/v1/images/car — parameters, headers, JSON mode.
- Signed URLsPOST /api/v1/image-urls — browser-safe URLs billed once at creation.
- Views & sizesCamera angles with yaw, size presets, formats and the 15 colors.
- Vehicles & searchList years, makes and models; search and resolve free text.
- FeedbackPOST /api/v1/feedback — rate an image.
- Errorsproblem+json and every status code.
- CLInpx @meterapp/car-image — every command.
- MCP & agentsRemote and local MCP, Claude Code, ChatGPT actions.
- Rate limits & caching120 req/min per key, RateLimit-* headers, ETags and cache policy.
- Pricing & billingCredits, packs, auto-reload and Stripe.
- ChangelogWhat shipped, when.