Images
Compress, convert and resize. The quality scale and defaults are the Mac app’s.
in: jpg png webp avif heic gif tiff bmp raw out: jpg png webp avif gif
Smol API
One HTTPS request compresses an image, a PDF or an audio file with the same engine as the Smol Mac app. The file streams through and is gone. Larger files run as jobs that delete themselves on a timer.
curl -X POST "https://api.smolmac.com/v1/compress" \
-H "Authorization: Bearer $SMOL_API_KEY" \
--data-binary @photo.jpg -o photo.min.jpgMeasured at default settings (quality 75, images fitted inside 2000 × 2000 pixels) on our test files. Your files will differ: an already-optimised file may not shrink at all, and then the request costs nothing.
Three operations cover it: compress, convert, and strip metadata. Send any supported file and the API works out what it is from its contents, not its name.
Compress, convert and resize. The quality scale and defaults are the Mac app’s.
in: jpg png webp avif heic gif tiff bmp raw out: jpg png webp avif gif
Five presets from email-sized to print. Text and vectors are left alone; embedded images are recompressed.
compress · render a page to png or jpg · strip metadata
Re-encode at five bitrate tiers, or name the bitrate yourself.
aac mp3 opus ogg flac wav alac
Word, Excel and PowerPoint to PDF, and between office formats.
docx xlsx pptx odt ods odp rtf → pdf
CSV, JSON, Markdown and XLSX tables. TTF, OTF, WOFF and WOFF2 containers.
csv tsv json ndjson md html xlsx · ttf otf woff woff2
Remove camera, location, author and software details without touching a pixel. Rotation and colour stay correct.
images · pdf (rewritten, so removed data cannot be recovered)
H.264, H.265 and VP9 at six quality tiers, as jobs. Enabled per account while we finish licensing.
mp4 mov webm mkv
Same engine
The API runs the same encoders at the same versions with the same settings as Smol for Mac. We ran 182 file-and-setting combinations through both and compared the results. Where the two differ, it is because the API fixes a defect, and each fix is written down. In four, the app could not process the file and the API could.
A compressor has to read a file to shrink it. So the promise is not that we can’t see it. The promise is how briefly it exists here, and that you can check.
Small files answer in the same request. Large ones run as jobs. Both return the same result object and the same error format.
For images, PDFs and audio on the request path of your own app.
For work that takes longer than a web request should.
A test key runs the real engine on our published samples at no cost. Add a card when you’re ready to send your own files. Pricing is per file, and a file we can’t shrink is free.