Car Image API

Bruksområder · Forsikring

Bilbilder for skadesaker og forsikringstilbud

Dekod VIN-en på en polise eller skadesak gratis, lagre kjøretøy-ID-en, og vis én merket visning av den forsikrede modellen i skadesaken og tilbuds-PDF-en.

En byggeguide skrevet ut fra API-ets dokumenterte virkemåte; den nevner ingen kunder. Publisert .

Problemet: dokumentasjonen nevner en bil ingen kan se

Et tilbudsskjema, en polise og en første skademelding identifiserer alle kjøretøyet på samme måte: med VIN, skrevet inn av en kunde eller lest av et vognkort. Alt en person deretter ser om bilen, er tekst: et årstall, et merke, en modell og kanskje en utstyrsvariant. Å spørre «er dette kjøretøyet ditt?» ved siden av en tekstlinje inviterer til et ja til hva som helst.

Et bilde av modellen VIN-en dekodes til, lar kunden og skadebehandleren raskt sjekke at registreringen angir riktig type bil. Det kan ikke vise hvilken bil: en rendering er en studioillustrasjon av et merke, en modell og et år fra katalogen, og den avbilder ikke noe bestemt fysisk kjøretøy. Dette ene faktumet former hele integrasjonen nedenfor.

Slik ser integrasjonen ut

  • Dekod ved mottak. Tilbudsflyten eller polisesystemet dekoder VIN-en én gang, gratis, og lagrer katalogens kjøretøy-ID sammen med polisen. Skadesaker som opprettes på polisen, arver den.
  • Én visning overalt. front-3-4, hovedvinkelen, i én ramme i tilbudsskjermbildet, i skadebehandlingsverktøyet, i tilbuds-PDF-en og i forsikringsportalen, slik at alle skjermbilder viser modellen på samme måte.
  • Signerte URL-er, aldri nøkkelen. Nettlesere og PDF-renderere laster nøkkelfrie URL-er som serveren deres oppretter.
  • Ord for det et bilde ikke kan si. Utstyrsversjon, ekstrautstyr, registrert farge, skader og kilometerstand forblir tekst og fotografier, og bildet opplyses å være et illustrasjonsbilde.

Trinn 1: dekod VIN-en – gratis

GET /api/v1/vin/{vin} er gratis og krever en nøkkel med images:read. Den svarer med de dekodede feltene fra NHTSAs vPIC-data (årsmodell, merke, modell, utstyrsnivå, serie, karosseritype, motor og alle andre attributter vPIC kjenner til) og, når katalogen har kjøretøyet, et vehicle-objekt med en stabil id og en ferdig image_path.

Dekod VIN-en på forsikringstilbudet
curl --fail-with-body \
  -H "Authorization: Bearer $CAR_IMAGE_API_KEY" \
  "https://carimage.dev/api/v1/vin/WP0AA2A96RS201834"
200 OK (forkortet)
{
  "data": {
    "vin": "WP0AA2A96RS201834",
    "valid": true,
    "errors": [],
    "suggested_vin": null,
    "year": 2024,
    "make": "Porsche",
    "model": "911",
    "trim": "Carrera, Carrera T, Carrera 4",
    "series": "Type 992",
    "body_class": "Coupe",
    "vehicle": {
      "id": "veh_78qtwrgh37bkr",
      "make": "Porsche",
      "model": "911",
      "year": 2024,
      "image_path": "/api/v1/images/car?vehicle=veh_78qtwrgh37bkr"
    },
    "source": "vpic-db"
  }
}

Les trim: «Carrera, Carrera T, Carrera 4». Mønsteret til dette VIN-et dekker tre utstyrsversjoner, så selv dekodingen kan ikke si hvilken polisen forsikrer, og et bilde av 2024 911 kan det i hvert fall ikke. Be kunden bekrefte utstyrsversjonen, lagre den som tekst sammen med series og body_class, og la bildet vise modellen.

  • En VIN med feil kontrollsiffer blir likevel dekodet, med valid: false og problemet i errors. suggested_vin markerer tegnet vPIC mener er feil, med !, og det er dette du bør vise personen som skriver.
  • Et skjema som bare har de første tegnene, kan sende et delvis VIN: minst fem tegn, med * for hver ukjent posisjon og et valgfritt year.
  • 404 betyr at vPIC ikke har noen oppføring for mønsteret. vPIC dekker kjøretøy laget for det amerikanske markedet, så for andre markeder bør du ta utgangspunkt i merke og modell med POST /api/v1/images/resolve, som også er gratis.

Trinn 2: lagre kjøretøy-ID-en på polisen og i skadesaken

Lagre data.vehicle.id på polisen som en vanlig streng, og kopier den til hver skadesak som opprettes på den. ID-en er deterministisk og permanent: samme kjøretøy har samme ID ved hver utrulling og etter hver katalogversjon, så den er trygg å bruke som fremmednøkkel, og alle senere forespørsler oppgir vehicle=veh_78qtwrgh37bkr i stedet for å skrive ut merke og modell.

Når data.vehicle er null, finnes ikke det dekodede merket og modellen i katalogen, slik som med tilhengere og enkelte chassis for nyttekjøretøy. De dekodede feltene kan likevel vises. Vis dem uten bilde, og sett aldri inn en lignende bil i stedet.

Trinn 3: én visning i skadesaken og tilbuds-PDF-en

Tilbudsskjermen, skadebehandlingsverktøyet og kundeportalen for forsikringer er nettleserapper, så serveren din genererer signerte URL-er med POST /api/v1/image-urls: hver URL teller bildet sitt som et av månedens kjøretøybilder når den genereres, opptil 50 per kall, og er gratis å laste inn til den utløper. Komponer bildet én gang og gjenbruk formen: front-3-4 i en 640×400-boks med fit: "contain", og trim med litt padding, slik at en coupé og en pickup fyller boksen på samme måte. Hvor lenge hver URL bør leve, avhenger av hvor den vises:

  • Arbeidsflaten for skadesaker. Generer URL-en når skjermen tegnes. Standard levetid på 1 time dekker en arbeidsøkt, og en skadesak som gjenåpnes i morgen, får en ny URL.
  • Tilbuds-PDF-en. Når PDF-en genereres fra HTML, laster PDF-motoren bildet én gang og bygger det inn, så standard levetid er mer enn nok, og PDF-tjenesten får aldri tilgang til nøkkelen din. format: "jpg" legger bildet på hvit bakgrunn, som er det et dokument trenger.
  • Forsikringsportalen og fornyelses-e-posten. Disse varer lenger enn noen URL-levetid, så opprett med renew: true og ttl_seconds: 604800 (7 dager). URL-en fortsetter å virke. En fornyelse teller bildet én gang i måneden den skjer i, og ikke mer hvis det allerede er telt den måneden. renew_days: 365, det lengste som er tillatt, dekker en ettårig forsikringsperiode.

Gi nøkkelen som oppretter URL-ene, en liste over tillatte opprinnelser på dashbordet: en URL som lastes fra et annet nettsted, svarer 403 med origin_not_allowed, mens e-postklienter og PDF-visere, som ikke sender Referer, fortsatt laster den. Når nøkkelen tilbakekalles, slutter alle URL-er den har opprettet, å virke.

Mottak, arbeidsbenken, PDF-en og portalen, med TypeScript-SDK-en
import { CarImageClient, type ImageParams } from "@meterapp/car-image-sdk";

const client = new CarImageClient({ apiKey: process.env.CAR_IMAGE_API_KEY });

// Quote or policy intake: the VIN in, the vehicle id and the decoded words on the record. Free.
const { data: decoded } = await client.decodeVin(policy.vin);
policy.vehicleId = decoded.vehicle?.id ?? null; // null: show the decoded text and no picture
policy.trimText = decoded.trim;                 // "Carrera, Carrera T, Carrera 4": words, never the picture

if (policy.vehicleId) {
  // One view, framed once, for every screen and document that shows this policy's car.
  const view: ImageParams = {
    vehicle: policy.vehicleId, view: "front-3-4", color: policy.paintHex ?? "silver",
    width: 640, height: 400, fit: "contain", trim: true, padding: 6,
  };

  // The claims workbench: a URL for this session, minted when the screen draws.
  const { data: [workbench] } = await client.createImageUrls({ ...view, format: "auto" });

  // The quote PDF: the HTML-to-PDF renderer loads the URL once and embeds the picture.
  const { data: [pdf] } = await client.createImageUrls({ ...view, format: "jpg" });

  // The policy portal and the renewal email: one URL that keeps working for the term.
  const { data: [portal] } = await client.createImageUrls(
    { ...view, format: "auto" },
    { ttlSeconds: 604800, renew: true, renewDays: 365, idempotencyKey: `policy:${policy.id}:image` }
  );
}

Trinn 4: merk det som modellen, aldri som den forsikrede bilen

Plasser merkingen der bildet er, ikke bare i en fotnote: i alt-teksten og i en bildetekst under bildet. Renderingen viser merke, modell og årsmodell i en lakkfarge du velger, og color kan følge fargen på polisen (navnet på en forhåndsdefinert farge eller en hvilken som helst hex-kode). Det er likevel modellen i den fargen, ikke kundens bil.

Kjøretøyblokken i et tilbud
<figure>
  <img src="https://carimage.dev/api/v1/delivery/eyJhbGciOi…" width="640" height="400"
       alt="Representative image of a 2024 Porsche 911, not a photo of the insured vehicle">
  <figcaption>
    2024 Porsche 911 · Coupe · Type 992 · trim on the VIN: Carrera, Carrera T or Carrera 4
    <small>Representative image of the model. Not a photo of the insured vehicle.</small>
  </figcaption>
</figure>

Hva det koster, og hvilket abonnement som passer

  • Gratis: VIN-dekoding, resolve, katalogoppslag og hver innlasting av en signert URL innenfor levetiden.
  • Ett kjøretøybilde: hvert kjøretøy i hver lakkfarge og visning, telles én gang i måneden uansett hvor ofte det leveres, genereres eller fornyes, i alle størrelser og formater.
  • Kjøretøybilder i måneden: En tilbudstrakt ser mange forskjellige kjøretøy, og hver plan inkluderer et visst antall av dem i måneden: Free 100, Pro 2 500 og Business 10 000. Enterprise forhandles. Et bilde som allerede er telt denne måneden, leveres alltid, og en forespørsel utover kvoten får svaret 402 før noe telles. Dimensjoner derfor planen etter kjøretøyene du gir tilbud på.

Med et betalt abonnement dekker lisensen en rendering i det produktet ditt lager for brukerne sine, for eksempel et tilbud eller en rapport, så lenge abonnementet er aktivt. Detaljene står i lisensen.

CLI, SDK og MCP

npx @meterapp/car-image
# decode for free and keep the id
npx @meterapp/car-image vin WP0AA2A96RS201834 --json | jq -r .data.vehicle.id

# one renewing URL for the policy's documents, minted once however often intake retries
npx @meterapp/car-image url --vehicle veh_78qtwrgh37bkr --view front-3-4 --width 640 --height 400 \
  --fit contain --trim --padding 6 --format auto --ttl 604800 --renew --renew-days 365 \
  --idempotency-key policy-88213-image
  • SDK: client.decodeVin(vin, { year? }) og client.createImageUrls(…), som ovenfor; client.resolve(query) for et kjøretøy uten VIN.
  • MCP: decode_vin og create_car_image_urls er med i kjerneverktøysettet, så en assistent med skadesaken i konteksten kan svare på «vis meg den forsikrede modellen» ut fra VIN-en som er registrert. Oppsettet står på MCP-siden.

Ofte stilte spørsmål

Kan bildet erstatte bilder av det forsikrede kjøretøyet?
Nei. Det er en studiorendering av katalogens merke, modell og årsmodell, ikke et fotografi, og den viser ikke noe bestemt kjøretøy. Den hjelper en kunde eller en skadebehandler med å se at registreringen gjelder riktig type bil. Tilstand, skader, utstyrsvariant, ekstrautstyr og modifikasjoner kommer fra bilder, inspeksjoner og den dekodede teksten, og bildet bør opplyse om at det er illustrativt.
Hva koster et bilde på hvert tilbud?
VIN-dekodingen er gratis. Bildet telles som ett kjøretøybilde for måneden når den signerte URL-en lages eller bytene leveres til serveren din, og kan deretter vises så ofte som nødvendig. Det er gratis å laste en signert URL til den utløper. En fornyende URL teller bildet én gang i hver senere måned den åpnes i, og ingenting i måneder da ingen ser på det.
VIN-en dekodes, men vehicle er null. Hva nå?
Dekoderen kjente igjen kjøretøyet, men katalogen har ingen oppføring for det merket, den modellen og det året, noe som skjer med tilhengere og enkelte nyttekjøretøychassis. Vis de dekodede feltene uten bilde, og erstatt aldri med en lignende bil. Søk i katalogen i tilfelle stavemåten er annerledes, og hvis den virkelig mangler, be om den på den offentlige forespørselstavlen.
Fungerer VIN-dekoding for kjøretøy fra utenfor det amerikanske markedet?
Dekoderen bruker vPIC-data fra NHTSA, som dekker kjøretøy laget for det amerikanske markedet, så en korrekt skrevet VIN fra et annet marked kan gi 404 eller dekodes uten modell. Finn i stedet bilen etter merke, modell og årsmodell med det gratis resolve-endepunktet; selve katalogen dekker modellnavn fra andre markeder.
Hvor lenge kan en skadesak beholde bildet?
Så lenge planen din er aktiv. På en betalt plan dekker lisensen en rendering i det produktet ditt lager, inkludert tilbud og rapporter. Innen 30 dager etter at planen avsluttes, slettes lagrede kopier. Vil du beholde bilder i arkivet for godt, kan du kjøpe dem som en Image Pack. Renderinger kan også forbedres over tid, så en post som må bevare nøyaktig det kunden så, bør lagre filen i stedet for en URL.

Les videre

Kundehistorie · ForhandlerprogramvareSlik gjør du et VIN eller en lagerliste om til et bilde av hvert kjøretøy i forhandlerprogramvareEn lagerpost har et VIN og et lagernummer lenge før den har et bilde. Forhandlerverktøy dekoder VIN-et gratis, lagrer kjøretøy-ID-en på posten og viser én konsistent visning i CRM-et via signerte URL-er.