Guides / Use cases

Dog breed images for pet insurance apps

By the Dog Image API team. Updated .

A quote form that asks for a breed gets better answers when the customer sees one. Show the head view next to the breed picker, then the front three-quarter view on the policy card. Use the free previews first. Move to full-size files only for print and documents.

Why show the breed in a quote flow

Breed lists are long and many names look alike on a small screen. A picture next to the selected name lets the customer catch a wrong tap before it reaches underwriting. It is a confirmation step, not a verification step. You still ask the questions your product needs, and the image never replaces them.

Say what the picture is. Under it, write a short label such as "Illustration of a Beagle". The images are AI-generated, show no real dog, and are not a breed standard. A customer should never read the picture as a statement about their own pet.

Which view goes where

All nine views come from the same set, so they match each other. A reasonable split:

  • Breed picker and confirmation chip: head. It reads well at a small size and takes little room next to a dropdown.
  • Quote summary and policy card: front-left. This three-quarter view shows the whole dog and is the one most apps pick for a card.
  • Policy documents and emails: front-left again, so the dog looks the same everywhere. Change views only when the layout needs it.

Keep one rule across the product: one view per place, never mixed within a list. Every image in the catalog uses a square canvas with a transparent background and the dog filling at most 80% of it, so cards line up without cropping. A tinted card color shows through the transparent background.

Mixed breeds and colors

Each breed record has a crossbreed boolean. Use it to label the entry in the picker, for example with a "Mix" tag, so a customer choosing a doodle or a cavapoo sees that it is a crossbreed entry. If the customer's dog is a mix that is not in the catalog, do not force a near match. Offer your own "Other or unknown" row and show a neutral placeholder.

Seven breeds have several colors. If your rating does not depend on color, use the breed's default_variant. If you do ask, the variant list gives a name and a kind of color, pattern or coat that you can use as the second step of the picker.

How to wire it

The breed list needs no key, and browsers on other sites may read it. Build the picker from GET /api/v1/breeds at load time, so new breeds appear without a deploy:

const BASE = "https://dogimage.dev";

async function loadBreeds() {
  const res = await fetch(`${BASE}/api/v1/breeds`);
  if (!res.ok) throw new Error(`Breed list failed: ${res.status}`);
  const { breeds } = await res.json();
  return breeds.map((b) => ({
    slug: b.slug,
    name: b.name,
    isMix: b.crossbreed,
    headUrl: `${BASE}/api/v1/images/${b.slug}/${b.default_variant}/head?size=512`,
  }));
}

The image URL answers with a redirect to a WebP preview, which an <img> tag follows. Put the credit link in the quote summary next to the image:

<img src="https://dogimage.dev/api/v1/images/beagle/default/front-left?size=1024"
     alt="Illustration of a Beagle" width="256" height="256">
<p>Illustration of a Beagle.
  <a href="https://dogimage.dev/dogs/beagle">Beagle image: Dog Image API</a></p>

For documents, download full-size files on your server or in a build step, never in app code that ships to customers. The key comes from an environment variable:

curl -H "Authorization: Bearer $DOG_IMAGE_API_KEY" \
  -o beagle-front-left.png \
  "https://dogimage.dev/api/v1/images/beagle/default/front-left?size=full"

Store the file in your own bucket and serve it from there. Do not link the full-size endpoint from a page. The full reference is in the docs.

Which plan fits

One image is one view of one set at full size. Fetching the same image again in the same month is free. The numbers for an insurer:

  • One view of every breed's default set: 298 images. Starter covers 200 a month, so you finish in two months. Pro covers all 298 in a single month, with 402 to spare.
  • Two views of every default set (head and front-left): 596 images, which fits in Pro's 700.
  • Three views of every default set: 894 images, which is over Pro. You would spread it across two months or take All images.

You rarely need the whole catalog on day one. If your quote flow lists the 30 most requested breeds, one view of each is 30 images and Starter has plenty of room. Plans and prices are on the pricing page.

License points that matter here

  • Previews can be used commercially with a visible link crediting Dog Image API next to the image or on the same page. A quote summary satisfies that with the snippet above.
  • Full-size files can go into your own products, including apps, sites, documents and print, with no credit needed. Files you fetched during an active plan stay usable in what you built.
  • You cannot resell the images, republish them as a collection or library, or use them to build a competing image service. A claims portal that embeds them is fine. A "download our pet image pack" page is not.

The license page is marked as a draft not yet reviewed by a lawyer. Have your own counsel read the license before you ship a regulated product.

Questions

Can the image prove which breed a customer's dog is?

No. The images are AI-generated illustrations of one adult dog per set. They help a customer confirm the breed they picked, but they are not evidence of breed and not a breed standard.

Do I need a paid plan for a quote flow?

Not to start. Previews are free for commercial use with a visible credit link. A paid plan is for full-size 2048 pixel PNG files, for example on printed policy documents.

What should I store in the quote record, the breed name or the slug?

Store the slug, such as golden-retriever, plus the variant slug when the customer picks a color. Names can be reworded; slugs are what the image URLs use.

What do I show for a puppy?

The catalog has one life stage, adult. For a puppy quote, show the adult illustration and label it as the breed, not as the customer's dog.

Next steps