Guides / Use cases
Dog breed images for dog walking and daycare apps
By the Dog Image API team. Updated .
A walking or daycare app can show a breed illustration as the default avatar until an owner uploads a photo of the real dog. Use the head view in lists and the front three-quarter view on the dog's profile. Keep size in your own data, because the images do not show it.
The default avatar problem
An owner signs up, adds a dog named Bruno, and picks "Beagle". That is the whole profile. The walker's schedule for tomorrow lists eleven such dogs. A letter in a grey circle does not help a walker standing in a hallway with a leash. A beagle head does.
The default avatar is also a signal of what is missing. When the illustration sits next to a "Add a photo of Bruno" prompt, the owner knows what to do. Treat the illustration as a placeholder that disappears as soon as a real photo exists.
What the images are good for
Every set shows one adult dog in the same nine views on a transparent background, so a list of different breeds looks uniform. The files are square. The dog is centered and fills at most 80% of the canvas, which leaves clean margins in a round or rounded-square avatar.
They are AI-generated illustrations, not photos of real dogs. Do not describe them as a photo, and do not let them stand in for the animal's actual look in anything a walker relies on for identification at a door or a park. Color matters here: if an owner picks "Poodle" and the dog is apricot, the default illustration may not match. The catalog has multiple colors for a few breeds only, including Poodle and Golden Retriever, so offer a color step when the breed has variants and otherwise accept the mismatch.
Size at a glance
Walkers need to know a dog's size before they accept a job. The images cannot tell them. Because each dog fills the frame in its own canvas, a Dachshund and a Great Dane look similar in scale.
So keep size as your own field: an owner-entered weight or a small, medium or large choice. Show it as a badge next to the avatar, and let the illustration do one job only: say which breed. Two signals with two sources are easier to trust than one picture asked to do both.
Where each view goes
- Schedule list rows and chat headers:
head, in a round slot of 40 to 56 pixels. - Dog profile:
front-left, large, with the owner's photo taking its place when uploaded. - Walk summary screens:
left, a side view that suits a wide, short card.
Pick one view per surface and stick to it.
How to wire it
A small React component that prefers the owner's photo and falls back to the breed preview. It carries the credit link, as the free preview requires:
const BASE = "https://dogimage.dev";
type Dog = {
name: string;
breedSlug: string;
variantSlug?: string; // omit for the default set
photoUrl?: string;
};
export function DogAvatar({ dog, size = 48 }: { dog: Dog; size?: number }) {
const src =
dog.photoUrl ??
`${BASE}/api/v1/images/${dog.breedSlug}/${dog.variantSlug ?? "default"}/head?size=512`;
return (
<img
src={src}
width={size}
height={size}
alt={dog.photoUrl ? `${dog.name}` : `${dog.name}, breed illustration`}
style={{ borderRadius: "50%", objectFit: "cover", background: "#f2ece0" }}
/>
);
}
export function IllustrationCredit() {
return (
<a href={BASE}>Dog breed illustrations: Dog Image API</a>
);
}
Render IllustrationCredit once per screen that shows illustrations, for example in the footer of the schedule. For breed names and slugs, load GET /api/v1/breeds into your picker; it needs no key. Use the slug as the stored value. Full details are in the docs.
If you want illustrations to work offline, you can download full-size files on a server with your key in DOG_IMAGE_API_KEY, resize them in your build, and ship them inside the app. That route needs a paid plan. Never place the key in the app itself.
Which plan fits
One image is one view of one set at full size.
- Previews only: free, with the visible credit link. Most walking apps can stay here.
- A bundled head avatar for the 40 breeds your users add most: 40 full-size images, within Starter's 200 a month.
- A bundled head avatar for every default set: 298 images. Starter takes two months, Pro takes one.
- Head plus front-left for every default set: 596 images, within Pro's 700.
See pricing for what each plan includes.
License points that matter here
Previews need the visible credit link next to the image or on the same page. Full-size files, used inside your own app, need no credit. You may not republish the images as a pack, hand them to other developers, or build a competing image service from them. An app that ships avatars to its own users is the intended use; an open "download all dog avatars" endpoint is not. Read the license for the exact wording, and note that it is a draft not yet reviewed by a lawyer.
Questions
Do the images show how big a breed is?
No. Each dog fills up to 80% of its own square canvas, so a small breed and a large one appear at similar sizes. Store size in your own data and show it as a badge.
Can I use the preview as an in-app avatar on a phone?
Yes. Previews can be used commercially with a visible credit link on the same page. The 512 pixel WebP preview suits an avatar, and it can be hot-linked.
Should I bundle images inside the app?
Only full-size files can be stored on your side, and they come from a server or build step with your key. Do not put the key in the app. Previews can be loaded from their URLs.
What happens when the owner uploads a photo?
Show the owner's photo and stop using the breed illustration for that dog. Keep the illustration only as the fallback.
Next steps
- API docs: endpoints, keys, limits and errors.
- All dog breeds, each with nine views.
- Pricing for full-size transparent PNG files.
- Breed placeholder images for shelter and adoption sites
- Default dog avatars for pet profiles
- Dog breed images for online pet stores
- Dog breed images for pet insurance apps