---
title: squish · Compress images, GIFs, video & audio up to 99%
description: Make images, GIFs, video and audio up to 99% smaller without visible quality loss. AVIF, AV1 and Opus from one URL, cached at the edge.
url: https://squish.fit/
---

# Media, squished.

squish makes images, GIFs, video and audio up to 99% smaller files that still look right. It picks AVIF, AV1 or Opus for each browser and caches the result, so repeat requests come back in milliseconds.

| Example | Original | Squished |
|---|---|---|
| Photo | 14 MB JPEG | 107 KB AVIF |
| Video, 10 s 1080p | 5 MB | 282 KB AV1 (`maxkb=300&codec=av1`) |
| Animated GIF | 1 MB | 58 KB animated AVIF |

## Use the web tool

At https://squish.fit you can paste a link to a media file, upload one, drag one onto the page, or paste one from the clipboard. Choose presets for quality (Auto, High, Balanced, Small), maximum width, a video size limit (1 MB, 500 KB, 300 KB) and the video codec (H.264 or AV1). squish shows the original next to the compressed version with the savings, and gives you a URL plus HTML and Markdown snippets to copy.

## Use the API: one URL, no SDK

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

```html
<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"></video>
```

| Parameter | Meaning |
|---|---|
| `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. |
| `h` | Video: max height in px. |
| `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`. |

Upload with `POST /upload` (raw body) and use the returned `id` as `src`. Every response includes `X-Original-Bytes`, `X-Served-Bytes` and `X-Detail`.

Full reference: https://squish.fit/llms-full.txt
