Photography — entry 012 of 25
Lorem Picsum
Lorem Picsum serves placeholder photos by encoding the size, and optionally a specific image ID or a seed, directly into the request URL — no signup or key required. Every photo comes from Unsplash's library, and query parameters can request a grayscale or blurred variant, a JPEG or WebP file extension, or a random cache-busting suffix for multiple images at one size. A companion /v2/list JSON endpoint returns the full photo catalog with author and dimension metadata for browsing before you hotlink.
Lorem Picsum serves placeholder photos entirely through the request URL — a size, and optionally a specific image id or a random seed, encoded directly in the path — with no signup or key required. Every photo comes from Unsplash's library, and a companion /v2/list JSON endpoint returns a paginated catalogue of the same photos with author and dimension metadata, useful for browsing before hotlinking a specific id.
GreatAPIs Score
Auth quickstart
- No API key or account is needed — every endpoint, including
/v2/list, answers a bare GET.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
List the photo catalogue
GEThttps://picsum.photos/v2/list?page=1&limit=2
[{"id":"0","author":"Alejandro Escamilla","width":5000,"height":3333,"url":"https://unsplash.com/photos/yC-Yzbqy7PY","download_url":"https://picsum.photos/id/0/5000/3333"},{"id":"1","author":"Alejandro Escamilla","width":5000,"height":3333,"url":"https://unsplash.com/photos/LNRyGwIJr5c","download_url":"https://picsum.photos/id/1/5000/3333"}]limit=2 was requested directly this run (not truncated after capture) — both entries are complete, unmodified objects. Each download_url is itself a hotlinkable image URL at that photo's native dimensions, not another JSON call.
Developer reference
Gotchas & limits
- The image endpoints (e.g.
/id/0/5000/3333or/200/300for a random photo at that size) don't serve image bytes directly — a live probe found they 302-redirect to afastly.picsum.photosURL carrying anhmacsignature, so a caller following redirects transparently (as browsers and most HTTP clients do) sees a normalimage/jpeg, but code that disables redirect-following must handle the 302 itself. Only/v2/listand/id/{id}/inforeturn JSON directly with no redirect — a live probe of/id/237/infoconfirmed its shape:{"id","author","width","height","url","download_url"}, the same fields/v2/listreturns per entry. /v2/listis paginated at 30 items per page by default (override withlimit, observed accepting at least 2 in a live probe) and returns aLinkresponse header withrel="next"pointing at the next page — there is nototalcount in the JSON body itself, only in that header's implied pagination.- Requesting an image with a seed (
/seed/{seed}/{width}/{height}) always returns the same photo for that seed, but requesting the same numeric/id/{id}/...with different width/height crops/scales the same source photo — the id, not the dimensions, determines which Unsplash photo you get. - Grayscale (
?grayscale) and blur (?blur=1-10) are query params on the image endpoints only; they do nothing on/v2/listor/id/{id}/info, which always return the unmodified metadata regardless of query string.