Open-source · MIT licence

Beautiful
placeholder
images, fast.

Drop-in placeholder images for every project. Random, seeded, categorised, or specific - Built with Arkstack.

GET/800/600
GET/id/10001/400/300.webp
GET/category/nature/600/400
GET/images/avatar?w=200&h=200&filters=greyscale
7
Image formats
6+
Filter effects
Seeds
0ms
Cold start
Live samples
See it in action
random placeholder
random · 760×368
random
seeded placeholder
seed: sunrise
seeded
greyscale placeholder
greyscale
greyscale
blur placeholder
blur · sigma 6
blur
technology category
category · technology
category
sharpen+normalize placeholder
sharpen + normalize
multi-filter
Browse
Available Categories

Every category maps directly to a URL segment. Use it with either route style.

Reference
API Endpoints

Two compatible URL styles — Picsum-style path params and Lorem Toneflix-style query params. Mix and match freely.

Picsum-style
GET
/{width}
Random image, square crop to width × width
GET
/{width}/{height}
Random image, exact dimensions. Append .webp / .avif / .png for format.
GET
/id/{id}/{width}/{height}
Deterministic: always returns the same image by file ID
GET
/seed/{seed}/{width}/{height}
Seeded random: same seed always returns same image
GET
/category/{category}/{width}/{height}
Random image from a specific category, resized to dimensions
New
Lorem Toneflix–compatible /images/*
GET
/images
Random image. Use ?w= and ?h= to set dimensions.
GET
/images/{category}
Random image from category. Supports avatar, nature, technology, etc.
GET
/images/image/{id}
Specific image by file ID. Combine with ?text=true to discover IDs.
Shared query parameters
PARAM
?w=N &h=N
Output width / height (Lorem Toneflix style). Alias for path params.
PARAM
?filters=f1,f2:v
Comma-separated filters with optional values. E.g. ?filters=greyscale,blur:5
PARAM
?text=true|string
Overlay text on the image. Pass true to use the image file name.
PARAM
?seed=anything
Deterministic random. Any unknown query param also acts as a seed.
JSON API
API Routes

Inspect the image catalogue programmatically. All routes return JSON and require no authentication.

GET/api/v1/list

Returns a paginated list of every image across all categories.

ParamDefaultDescription
?page1Page number, 1-based
?limit30Items per page
Response · array
{
  "data": [
    {
      "id": "60059",
      "url": "https://pictwo.toneflix.net/api/v1/id/60059/info",
      "width": 800,
      "height": 600,
      "category": "technology",
      "download_url": "https://pictwo.toneflix.net/id/60059/800/600"
    }
  ],
  "links": {
    "prev": "https://pictwo.toneflix.net/api/v1/list?page=1&limit=30",
    "next": "https://pictwo.toneflix.net/api/v1/list?page=3&limit=30"
  }
}
GET/api/v1/id/:id/info
GET/api/v1/seed/:seed/info

Returns metadata for a single image by file ID or seed. The seed endpoint resolves which image the seed maps to and returns that image's details — useful for confirming what a seed will produce before embedding it.

Response · object
{
  "id": "60001",
  "url": "https://pictwo.toneflix.net/api/v1/id/60001/info",
  "width": 800,
  "height": 600,
  "category": "technology",
  "download_url": "https://pictwo.toneflix.net/id/60001/800/600"
}

links.prev and links.next are omitted when there is no previous or next page.

Response fields
idstringFilename without extension — use in image routes
width / heightnumberNative dimensions of the source file
categorystringParent directory name
download_urlstringReady-to-use image URL at 800×600
Image processing
Filters

Stack filters with commas. Filters that accept a value use the filter:value syntax.

blur :sigma
Gaussian blur. Amount 1–100 (default 2).
?filters=blur:10
greyscale
Convert to greyscale. Also accepts grayscale.
?filters=greyscale
sharpen
Increase image sharpness using an unsharp mask.
?filters=sharpen
invert
Invert all colours in the image (negate).
?filters=invert
normalize
Stretch contrast to full dynamic range.
?filters=normalize
flip / flop
Mirror vertically (flip) or horizontally (flop).
?filters=flip,flop
combining filters
All filters can be combined in a single request by separating them with commas.
?filters=greyscale,blur:5,sharpen
Interactive
Playground

Build a URL and preview the result — no setup needed.

Filters
Generated placeholder
https://pictwo.toneflix.net/800/600