Developers

Developer documentation

The URL is the API. Start with a size, then add only the options your design needs. No account, token or SDK is required for ordinary public use.

Migrate legacy placeholder URLs

Use the official local migration CLI to scan source files, review safe conversions and update verified URLs without uploading source code.

npx placeholder-photo-migrate .
npx placeholder-photo-migrate . --write
npx placeholder-photo-migrate . --check

Open the migration CLI guide

Quick start

https://placeholder.photo/800x600 creates a classic placeholder. Add colours as path segments and text as a query parameter:

https://placeholder.photo/800x600/6D5DFC/FFFFFF?text=Hello

Generator families

Stable seeds

Use a human-readable seed whenever identity matters. The same normalized configuration, seed and renderer version returns the same asset. Curated photo selection uses immutable versioned sets: omitted set keeps the launch v1 mapping, while set=v2 opts into the expanded catalogue without reshuffling old URLs.

Caching

Deterministic requests are rendered once, stored under a content-addressed immutable cache URL and reused. Browsers and future edge layers can cache the redirect and derivative for one year. A cache hit never repeats expensive image work.

Errors and limits

Invalid image requests return a concise branded SVG error image with the correct 4xx/5xx HTTP status. Maximum width and height are 4096 pixels, total rendered pixels are bounded, DPR is limited to 3, text is bounded to five lines, and costly effects use conservative ranges.

placeholder.jansma.vip · 2024
Jansma VIP

Placeholder Image Generator

Create customizable placeholder images for your projects with ease.

Basic Placeholder: https://placeholder.photo/300x200 Current Placeholder.photo output in the former pixel style
Dynamic Generator
Width (px):300
Height (px):200
Custom Text:Optional
Recreated interface · current renderer and watermark rules
A little placeholder history

Same useful idea.
A much bigger toolkit.

Jansma VIP ran a compact generator at placeholder.jansma.vip from 2024. It handled the classic size, colour and text URLs that now remain supported by Placeholder.photo.

  1. 2022An unrelated earlier developer project used the Placeholder.photo domain.
  2. 2024Jansma VIP launched its own small generator at placeholder.jansma.vip.
  3. 2026The independently built Placeholder.photo platform brought Classic, procedural art, photos, logos and avatars together.

This is an independent new implementation—not a claim of ownership over the earlier 2022 project. The nostalgic panel is a faithful visual nod, rebuilt with today’s Placeholder.photo URLs.