BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://php-noise.com/noise.php?hex=6e2b2b&json=1'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://php-noise.com/noise.php?hex=6e2b2b&json=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
# 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/png

Parameters

ParameterTypeRequiredDescription
hexqueryRequiredBase colour as a six-character hex value without the leading hash. 6e2b2b
rgbqueryOptionalAlternative to `hex`, as comma-separated red, green and blue values. 110,43,43
borderWidthqueryOptionalWidth of a border drawn around the tile, in pixels. Zero for none. 0
blurqueryOptionalBlur radius applied to the noise, which softens the grain. 2
noisequeryOptionalGrain intensity. Higher values give a coarser, more visible texture. 5
jsonqueryOptionalAsk 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

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.