Images · GIFs · Video · Audio

Media, squished.

Up to 99% smaller files that still look right. AVIF, AV1 and Opus, picked for each browser and cached, so repeat requests come back in milliseconds.

Try
Quality
Max width
Size limitvideo
Codecvideo

One URL. No SDK.

Put squish.fit/?file= in front of any media link. Each browser gets the best format it supports, and every later request comes from cache.

<img src="https://squish.fit/?file=https://site.com/hero.jpg&w=1200">
<video src="https://squish.fit/?file=https://site.com/clip.mp4&maxkb=300&codec=av1">
file

URL of the original. Any public http(s) link.

src

ID of a file uploaded to squish (instead of file).

w

Max width in px. Never upscales.

q

Quality 1–100. Leave it out for smart defaults.

maxkb

Video: hard size limit. Picks bitrate, resolution and fps.

codec

Video: h264 (plays everywhere) or av1 (about half the size).

format

Force avif, webp, jpeg, mp4, opus or aac.

h

Video: max height in px.

Upload with POST /upload (raw body) and you get back an id to use as src. Every response includes X-Original-Bytes, X-Served-Bytes and X-Detail.