PHP-Noise API
Free noise background API with no key: generate subtle tiling noise texture PNGs in any colour with adjustable grain and blur, straight from a URL. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the PHP-Noise API?
PHP-Noise is a free, key-free API that generates noise-texture background images. You pass a base colour and optional grain, blur and size parameters in the query string, and it returns a PNG containing a subtle randomised texture suitable for tiling as a page background.
Flat colour backgrounds can look lifeless, and the usual fix is a subtle noise texture — a faint randomised grain that adds depth without becoming a visible pattern. Normally that means opening an image editor, generating noise, tweaking opacity and exporting a tile. PHP-Noise reduces the whole exercise to a URL you can adjust and reload.
Because the output is deterministic per parameter set, the generated tile caches perfectly and you can pin an exact texture by keeping the URL. In practice most people generate a texture once, download it and self-host the PNG rather than calling a third-party service on every page load — which is the right call for a background image that appears on every screen of a site.
Quick facts
- Base URL
https://php-noise.com- Authentication
- No API key or account. The project is open source and self-hostable.
- Rate limit
- No published limit. Generate once and self-host the resulting PNG rather than calling it per page view.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the PHP-Noise API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Generate a dark red noise texture
GET https://php-noise.com/noise.php?hex=6e2b2b&json=1
curl 'https://php-noise.com/noise.php?hex=6e2b2b&json=1'const res = await fetch("https://php-noise.com/noise.php?hex=6e2b2b&json=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://php-noise.com/noise.php?hex=6e2b2b&json=1", timeout=20)
res.raise_for_status()
print(res.json())# This endpoint returns image/png, 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/pngParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
hex | query | Required | Base colour as a six-character hex value without the leading hash. 6e2b2b |
rgb | query | Optional | Alternative to `hex`, as comma-separated red, green and blue values. 110,43,43 |
borderWidth | query | Optional | Width of a border drawn around the tile, in pixels. Zero for none. 0 |
blur | query | Optional | Blur radius applied to the noise, which softens the grain. 2 |
noise | query | Optional | Grain intensity. Higher values give a coarser, more visible texture. 5 |
json | query | Optional | Ask for a JSON envelope containing a base64 data URI instead of raw image bytes. Behaviour varies by version — check `Content-Type` on the response. 1 |
Response fields
(body)image/png- The generated noise tile as PNG bytes. The response is the image itself, so the URL works in an `img` tag or a CSS `background-image`.
Content-Typeheader- `image/png` for the standard image response. Verify this rather than assuming JSON, since the `json` parameter is not honoured on every deployment.
(determinism)behaviour- The same parameters produce the same texture, so the URL is a stable reference and caches cleanly.
What you can build with the PHP-Noise API
- Add a subtle noise texture to a page or hero section background
- Generate a tiling texture for a design system without opening an image editor
- Prototype several background treatments quickly by editing a URL
- Produce a matching noise overlay for a brand colour
Common errors and how to fix them
Blank or black image
The `hex` value included a `#` or was malformed.
Fix: Pass bare hex without the hash — a `#` in a URL starts the fragment and never reaches the server.
JSON parameter returns an image anyway
The `json` flag is not honoured on every deployment.
Fix: Check the `Content-Type` header before parsing. Treating the response as an image is the reliable path.
Texture too coarse or invisible
Not an error — `noise` and `blur` are doing their job.
Fix: Lower `noise` for subtlety and raise `blur` to soften. Small changes have a large visual effect.
PHP-Noise API — frequently asked questions
Is the PHP-Noise API free?
Yes, free with no API key or account, and the project is open source so you can self-host it.
How do I create a noise background with PHP-Noise?
Request the noise endpoint with a `hex` parameter holding your base colour without the leading hash, then tune `noise` for grain intensity and `blur` to soften it. The response is a PNG you can use directly as a CSS background image.
Why does the json parameter still return an image?
The JSON envelope is not honoured on every deployment of the service. Check the `Content-Type` response header rather than assuming — treating the response as an image is the reliable approach.
Should I call this on every page load?
No. The output is deterministic for a given set of parameters, so generate the texture once, download the PNG and serve it from your own host. A background image appears on every screen, and that is not a dependency worth outsourcing.
Tools that pair with this API
Add Noise to Image
Add adjustable random noise or film grain to an image, in monochrome or color. Free, private, browser-based grain generator with live preview.
Image to Base64 Converter
Convert an image to a Base64 data URL online. Get copy-ready HTML img tags and CSS background-image snippets. Free, instant and fully private.
Random Color Generator
Generate a random color palette in one click. Lock the swatches you like, re-roll the rest, and copy the result as a HEX list or ready CSS variables.
PHP-Noise is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.