Car Image API

dev.carimagePublished by carimage.devOfficial publisherv1.38.3Updated Nov 7, 2026

Studio-quality images and 3D models of any real car, 1990-2027, by make, model, year or VIN.

VerifiedStreamable HTTPWeb executableLocation & LifestyleMedia & Design

Overview

AI-generated overview

Generates studio-style vehicle images of real cars from 1990-2027 by make, model, year or VIN, with catalog lookup, signed image URLs and inline renders.

What you can do
  • Look up vehicles by year/make/model phrase, browse the catalog, decode full or partial VINs, and check a list of up to 100 vehicles at once
  • Check image availability per view and color before rendering
  • Render a vehicle image inline in chat, or create 1-50 key-free signed URLs with Markdown for pages, apps, emails and documents
  • Review account usage, monthly image limits and key scopes
  • File feature requests, report bugs with a request id, upvote existing feedback and post a public review
When to use it
Useful when an assistant needs a picture of a specific real car, such as a named year, make, model and color, for a chat reply, web page, document or email. Also handy for VIN decoding and checking which vehicles the catalog carries before a batch of renders.
Requirements
Remote endpoint at carimage.dev, or the local npm package @meterapp/car-image over stdio. OAuth is required; an API key can be supplied via the CAR_IMAGE_API_KEY environment variable or stored with the car-image login command. Network access is needed for renders and signed URLs.
Before you install
The API key is a secret: keep it out of URLs, HTML, logs, screenshots and client-side code, and only let signed delivery URLs reach a browser. New accounts include 100 free vehicle images a month; confirm the count before large batches, and stop on HTTP 402 rather than retrying. Feedback, issue reports and reviews are public and posted on the human's behalf, so only do so with their agreement.

Installation

In SourceWeft

  1. Open Car Image API in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/dev.carimage%2Fcar-image/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "car-image-api": {
      "type": "http",
      "url": "https://carimage.dev/api/mcp"
    }
  }
}

Tools

12

get_car_image

Get car image bytes

In ChatGPT, use create_car_image_urls for the inline image card instead. In other hosts, show a vehicle in chat: returns the image as an MCP image the host displays inline with the result, and the bytes for a file. Name the vehicle, view and color in the reply; do not also mint a signed URL for the same image. Where the person cannot see tool images (a terminal), use create_car_image_urls instead. Counts one vehicle image (vehicle, color, angle) for the month on the account's plan, prepared yet or not; the same image again this month adds nothing. Legacy credit-meter accounts: COSTS 1 CREDIT per call, cached or generated. Call resolve_vehicle first (or search_vehicles, or decode_vin for a VIN) and pass the id it returns as `vehicle`: the lookup is free, and the catalog files cars under its own names (a Mazda "MX-5 Miata" is mx-5), so a make and model typed from memory can answer 404 for a car the catalog carries. Make, model and year are for callers that already hold catalog spellings. Nine camera angles, any paint color (fifteen named presets or any hex such as #1a2b3c), any width and height up to the stored image's own size, 1024 px square for older renders, up to 2560 px for new ones (fit contain|cover|inside), transparent or on a solid background, optionally trimmed to the car and with a soft ground shadow (shadow: true). Returns the image (PNG/WebP/JPG; format auto delivers PNG here) plus usage metadata (credits_charged, vehicle_images used this month, or credits_remaining on the credit meter; source cache|generated, request_id, the vehicle with its vehicle_id). Use create_car_image_urls for web pages, apps, emails and documents, and in a terminal. Do not call both paid tools for one image.

Parametersfitmakesizetrimviewyearcolormodelwidthformatheightshadow+6 more

create_car_image_urls

Create signed car image URLs

Put vehicle images into web pages, apps, emails and documents: create 1-50 key-free signed URLs a browser loads directly (<img src>), each with ready-to-display Markdown. In ChatGPT, use this tool to show the inline image card. In other chat hosts, get_car_image displays the picture inline. For chat use ttl_seconds 604800, max_uses 0 and renewal off unless requested. When ChatGPT shows the card, do not repeat its images or URLs. Without a card, use the returned Markdown where supported or link the same URL. Reuse unexpired URLs; never mint twice for one image. Each URL counts its vehicle image for the month at creation (1 credit on the legacy credit meter); loads within the TTL add nothing and are publicly cacheable. Each image names its vehicle like get_car_image: look each distinct vehicle up once (resolve_vehicle, search_vehicles or decode_vin, all free) and pass its id as vehicle, or send make, model and year in catalog spelling. Each takes any paint color (a preset or a hex) and the same sizing options (width, height, fit, background, framing, trim, padding, shadow); format auto makes the URL serve webp or png per viewer. For email, CMS pages or documents that outlive a TTL, set renew: true with ttl_seconds 604800: the URL keeps serving past expiry, renewing in each opened week (one more credit per week on the legacy credit meter), for up to renew_days. Pass idempotency_key when the call might be repeated: a retry with the same key and arguments replays the first result instead of billing again. Returns id, url, markdown, expires_at, max_uses, renews_until and the normalized vehicle for each image. Prefer this over get_car_image for HTML, Markdown files, documents, emails and websites. State expiry briefly.

Parametersrenewimagesrequiredmax_usesrenew_daysttl_secondsidempotency_key

search_vehicles

Search the vehicle catalog

Free. Browse the open vehicle catalog (1,608 makes, 42,334 models, 1990-2027) by make and/or model with typo tolerance. Returns canonical make/model names, the years each model exists and match kind; a model hit carries a stable vehicle id per year (ids, and id when the query names one year) to pass as `vehicle` to the image and 3D tools. Use it to list a make's models, to see which years exist or to let the human choose between similar models; when you already know which car is wanted, resolve_vehicle is the one call that names it.

Parametersyearlimitqueryrequired

resolve_vehicle

Resolve free text to image parameters

Free. The first call for any picture of a car, including one you chose yourself: turn a request such as "red 2018 Mazda MX-5 Miata side view" into the catalog vehicle and exact get_car_image parameters (vehicle_id, make, model, year, view, color), plus alternative candidates and a confidence of high, medium or low. A make and model are read by the rules the image tools read them with, so this names the vehicle they would render. Pass params.vehicle_id as vehicle to get_car_image, create_car_image_urls or create_3d_model. Ask the human to choose when confidence is low or several candidates fit, and tell them when params.year is not the year they asked for (extracted.year).

Parametersqueryrequired

decode_vin

Decode a VIN

Free. Decode a full 17-character VIN, or a partial VIN of at least 5 characters with * for unknown positions, with NHTSA vPIC data: year, make, model, trim, series, body class, engine, transmission, manufacturer, plant and every decoded attribute. `vehicle` is the catalog vehicle it maps to, with the stable id to pass as `vehicle` to get_car_image, create_car_image_urls or create_3d_model, or null when the catalog does not carry that car. Use it whenever the human gives a VIN instead of a make and model. To show the vehicle, call create_car_image_urls with that id (1 credit per signed URL, loads at once when the image is already rendered).

Parametersvinrequiredyear

get_image_availability

Check prepared images and quality

Free, read-only check before generating an image. Look the vehicle up first and pass its vehicle id. Check one view or omit view for all nine; pass the requested paint as color. cached true means the view is prepared: it serves quickly from storage, without waiting for a new render. Returns each view's quality (standard, enhanced or premium; null when no stored image), upgrade state, and render_eta for views not cached. It renders nothing, queues nothing and counts no image usage. This does not authorize a render or a quality upgrade. Unlike a public preview, this checks what an authenticated image request would serve, including the requested color.

Parametersmakeviewyearcolormodelvehicle

check_vehicles

Check which vehicles the catalog carries

Free. Check a list of up to 100 vehicles in one call before rendering any: which ones the catalog carries and under which vehicle id. Send each as the list spells it ({make, model, year}) or as a stored id ({vehicle}), with an optional ref that is echoed back. Each entry is read exactly as get_car_image would read it and answered as match (vehicle.id is the id to store and render by; vehicle.match is exact, or the looser rule that read the name), suggestion (not in the catalog as named; suggestions are real vehicles close to it, such as the same model in its nearest year, which is another car: ask the human before using one), miss (nothing close: skip it in every view and color) or invalid (error says what to fix). Use it for a catalog, a spreadsheet or any list of more than a few cars, instead of one lookup or one paid render per car; summary counts each status and the distinct vehicles a backfill would render. With views: true each match also carries views.prepared (0-9) and views.missing, which of its nine camera views are prepared now, and summary.views_complete counts the vehicles with all nine. A longer list is work for code: car-image check <file>, or client.checkVehicles, 2,000 vehicles per request.

Parametersviewsvehiclesrequired

get_account

Get account

Free. Show the organization this connection acts for (data.organization, with the caller's role), usage this month (limits_usage: vehicle images used and included, keys, request rates) and the key's scopes. Every new account includes 100 free vehicle images a month. Check this before large batches.

Takes no parameters.

request_feature

Request a feature

Free. When the human wishes the API did something it does not (new views, formats, endpoints, anything), file it on the public feedback board. Similar items are checked first: when some exist nothing is filed (created: false) and similar lists them; upvote_feedback the one that matches, or call again with force: true if none does. A new request returns its page URL; the human gets a thank-you email and one for every status change until it ships.

Parametersbodyforcetitlerequired

report_issue

Report an issue

Free. Report a problem with Car Image itself (a failed or wrong render, an error that looks like a bug, a broken endpoint), with the human's agreement. Pass the failed call's request_id and what you know in context (endpoint, error_code, vehicle id, view, color): the team sees exactly what happened. Private to the human and the team. Similar open reports come back first, as with request_feature: upvote_feedback one that matches. The human gets an acknowledgement and an email when it is picked up and when it is fixed. Not for a vehicle the catalog lacks, and never include API keys.

Parametersbodyforcetitlerequiredcontextrequest_id

upvote_feedback

Upvote a feedback item

Free. Add the human's vote to a feature, vehicle request or published issue (idempotent): the way to say "me too" instead of filing a duplicate. They follow it from then on and hear about every status change. A vote on a merged item lands on the item it was merged into.

Parametersidrequired

submit_review

Review Car Image

Free. Post or edit the human's public review of Car Image (one per account, 1-5 stars, their own words; never invent or nudge a rating). Shown on the reviews page with the team's answer once it passes a quick check. Set marketing_consent only when they agree to be quoted. Editing replaces the displayed public review; confirm the replacement text with the human. One edit an hour; the first post gets a thank-you email.

Parametersbodylikestitleratingrequireddislikesuse_casedisplay_namedisplay_companymarketing_consent

Version history

3
  1. v1.38.3LatestNov 5, 2026
  2. v1.38.2Nov 3, 2026
  3. v1.38.1Nov 3, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Carimage integrations