Free URL-based placeholder images for wireframes, prototypes, and CMS layouts. No account or API key is required. GET an image URL directly or use it as an HTML img src. Responses contain image bytes, not JSON or a hosted-image URL. PNG is the default; an extension selects JPEG, WebP, or SVG. These are geometric placeholders with text and colors, not prompt-generated photographs or illustrations. Prefer query parameters for captions and colors to avoid ambiguous path segments. URL-encode query values; encode # as %23 or omit it.
Both dimensions in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{square}.{ext}
Generate a square in a selected format
Select PNG, JPEG, WebP, or SVG with a file extension.
Output extension: png, jpg, jpeg, webp, svg. Case-insensitive. Unrecognized extensions fall back to PNG.
square Required
path
integer
Both dimensions in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png, image/jpeg, image/webp, image/svg+xml
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{square}/{first}
Generate a square with a path color or caption
Color-like path values select a background; other values set a caption.
A CSS named color or 3/6-digit hex without # sets the background. Anything else is a caption. Use ?text=red for a caption that looks like a color. A path color overrides bg_color; a path caption overrides text.
square Required
path
integer
Both dimensions in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{square}/{bg}/{text_c}
Generate a square with path colors
Set background and text colors in the URL path. Add a caption with the text query parameter.
Background color: CSS name or 3/6-digit hex. Overrides the corresponding query color. Invalid colors use the default.
square Required
path
integer
Both dimensions in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text_c Required
path
string
Text color: CSS name or 3/6-digit hex. Overrides the corresponding query color. Invalid colors use the default.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{width}x{height}
Generate a rectangular PNG
Recommended default endpoint. Customize the image using query parameters.
Height in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
width Required
path
integer
Width in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{width}x{height}.{ext}
Generate a rectangle in a selected format
Select PNG, JPEG, WebP, or SVG with a file extension.
Output extension: png, jpg, jpeg, webp, svg. Case-insensitive. Unrecognized extensions fall back to PNG.
height Required
path
integer
Height in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
width Required
path
integer
Width in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png, image/jpeg, image/webp, image/svg+xml
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{width}x{height}/{first}
Generate a rectangle with a path color or caption
Color-like path values select a background; other values set a caption. For unambiguous captions prefer the text query parameter.
A CSS named color or 3/6-digit hex without # sets the background. Anything else is a caption. Use ?text=red for a caption that looks like a color. A path color overrides bg_color; a path caption overrides text.
height Required
path
integer
Height in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
width Required
path
integer
Width in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{width}x{height}.{ext}/{caption}
Generate an image with a format and path caption
This caption is always treated as text, even when it matches a color name. It overrides the text query parameter.
URL-encoded caption. Overrides the text query parameter. Supports literal \n or encoded newline characters. Raster captions wrap; SVG captions do not.
ext Required
path
string
Output extension: png, jpg, jpeg, webp, svg. Case-insensitive. Unrecognized extensions fall back to PNG.
height Required
path
integer
Height in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
width Required
path
integer
Width in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png, image/jpeg, image/webp, image/svg+xml
404 — The URL does not match a route (for example, negative dimensions). application/json
500 — Image generation failed. text/html
GET/{width}x{height}/{bg}/{text_c}
Generate a rectangle with path colors
Set background and text colors in the URL path. A valid gradient replaces the background.
Background color: CSS name or 3/6-digit hex. Overrides the corresponding query color. Invalid colors use the default.
height Required
path
integer
Height in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text_c Required
path
string
Text color: CSS name or 3/6-digit hex. Overrides the corresponding query color. Invalid colors use the default.
width Required
path
integer
Width in pixels. Nonnegative integers are accepted and clamped to 10–5000; out-of-range values are not rejected. Negative numbers do not match the route.
text
query
string Default: ""
Caption; supports literal \n or encoded newline characters. Raster captions wrap automatically; SVG captions do not. Ignored when a path caption is present.
bg_color
query
string Default: "#C7C7C7"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence. A valid gradient replaces the background color.
text_color
query
string Default: "#8F8F8F"
CSS named color or 3/6-digit hex, optionally prefixed with # (encode # as %23). Invalid values fall back to the default. A corresponding path color takes precedence.
gradient
query
string Default: ""
Preset name (case-insensitive): sunset, ocean, forest, lavender, midnight, fire, sky, peach, mint, berry, coral, steel, candy, arctic, ember, twilight, spring, neon, rose, shadow. Alternatively, two CSS names or hex colors separated by a comma. Invalid or empty values use a solid background.
gradient_angle
query
integer
CSS-style degrees: 0=up, 90=right, 180=down, 270=left. Omit to use the preset angle, or 180 for custom gradients. Invalid integers use that same default. Ignored without a valid gradient.
dims
query
boolean Default: true
Show dimension text. Only false (case-insensitive) hides it; other values show it. Captions still render when dimensions are hidden.
Responses
200 — Generated image bytes. Embed the request URL directly in an img src. image/png
404 — The URL does not match a route (for example, negative dimensions). application/json