place.dog API
Free placeholder image service with no key: dog photographs at any width and height straight from the URL path, with greyscale and specific-image options. Tested example included.
Endpoint tested and returned HTTP 200 on 21 Aug 2026
What is the place.dog API?
place.dog returns dog photographs sized to whatever dimensions you put in the URL path, with no API key. The response is the image itself, and path segments select greyscale or a specific numbered photograph.
There is no meaningful difference in mechanism between this and the other animal placeholder services — the value is that a designer reviewing a mockup reacts differently to a dog than to `Lorem ipsum` in a grey rectangle. Two numbers in the path, one dog, no setup of any kind.
The feature that distinguishes it is deterministic selection. Appending `/id/{n}` pins a specific photograph, so a mockup that needs the same picture every time — a screenshot for documentation, a visual regression test — will actually get it, rather than a different dog on every reload. That is exactly the property random placeholder services lack. Note that the declared `Content-Type` is not always an accurate guide to the actual bytes, which is harmless in an `img` tag but worth knowing if you are saving files.
Quick facts
- Base URL
https://place.dog- Authentication
- No API key, no account and nothing to configure.
- Rate limit
- No published limit. Images cache well per size.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the place.dog API
Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Fetch a 300x200 dog placeholder
GET https://place.dog/300/200
curl 'https://place.dog/300/200'const res = await fetch("https://place.dog/300/200");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://place.dog/300/200", timeout=20)
res.raise_for_status()
print(res.json())# This endpoint returns image/jpeg, not JSON.
# The response body is the image itself, so it can be used directly as an
# <img src="..."> or saved to a file — there is nothing to parse.
#
# Verified: HTTP 200, Content-Type: image/jpegParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
width | path | Required | Requested width in pixels. 300 |
height | path | Required | Requested height in pixels. 200 |
/g/ | path | Optional | Prefix returning the greyscale version. |
/id/{n} | path | Optional | Pin a specific numbered photograph so the result is deterministic. /id/5 |
Response fields
(body)image- The photograph itself, ready to use as an `img` src. Nothing to parse.
Content-Typeheader- Declared as `image/jpeg`, though the bytes served are not always JPEG. Sniff the actual format if you are writing files.
What you can build with the place.dog API
- Fill a card grid in a prototype with real photography
- Pin a fixed image for documentation screenshots or visual regression tests
- Check a layout in greyscale before committing to colour
- Demonstrate responsive images across breakpoints
Common errors and how to fix them
Different image on every reload
Without `/id/`, selection is random.
Fix: Append `/id/{n}` to pin a specific photograph when you need a stable result.
Saved file has the wrong extension
The declared content type does not always match the bytes.
Fix: Detect the format from the file signature rather than trusting the header when writing to disk.
Cross-origin fetch blocked
No CORS header is sent.
Fix: An `img` tag works fine. Canvas and fetch access need a proxy.
place.dog API — frequently asked questions
Is place.dog free?
Yes, free with no key and no account. It is a placeholder service intended for mockups and prototypes.
Can I get the same image every time?
Yes — append `/id/{n}` to pin a specific numbered photograph. That makes it usable for documentation screenshots and visual regression tests, which random placeholders are not.
How do I get greyscale?
Prefix the path with `/g/`, in the same way as the other services in this family.
Should I use it in production?
No. There is no uptime commitment and the image licensing is unclear. Use it while designing, then bundle real assets.
Tools that pair with this API
Placeholder Image Generator
Generate placeholder images at any size online — solid, gradient or checkerboard with the dimensions as text. Download PNG or copy a data URI for markup.
Image Cropper
Crop images online to an exact rectangle with pixel-precise x, y, width and height inputs or aspect-ratio presets. Free, private and browser-based.
Bulk Image Resizer
Resize up to 30 images at once by width, height, percentage or exact dimensions. Batch photo resizing that runs entirely in your browser.
Alternatives to place.dog API
If place.dog does not fit, these animal apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| Cat Facts | Free cat facts API with no key. Random feline facts as JSON, with pagination and length filtering. CORS enabled. Tested curl example and live response. | No key | Yes | 19 Aug 2026 |
| Dog CEO | Free dog image API with no key: 20,000+ photos across 100+ breeds and sub-breeds, random or filtered. CORS enabled. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| TheCatAPI | Free cat image API with breed data, filtering and search. Works without a key for basic use; free key unlocks more. Tested curl example and live JSON. | No key | Yes | 19 Aug 2026 |
| RandomFox | Free fox image API with no key. Returns a random fox photo URL as JSON. CORS enabled, minimal payload. Tested curl example and live response included. | No key | Yes | 19 Aug 2026 |
| PlaceBear | Free placeholder image service with no key: width and height in the path returns a bear photograph at that exact size, with greyscale and colour-shift options. Tested example included. | No key | No | 21 Aug 2026 |
| random.dog | Free random dog API with no key: returns a URL to a photo, GIF or video with its file size in bytes, so you can filter before downloading. Tested example included. | No key | Yes | 21 Aug 2026 |
place.dog is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.