Photography — entry 020 of 25
ReSmush.it
ReSmush.it is a free, keyless image-optimization API — best known as the backend behind the ReSmush.it WordPress plugin — that accepts a source image URL and returns a JSON payload with the compressed image's URL plus original size, compressed size, and percent reduction. A live call against api.resmush.it needed no credentials and returned Access-Control-Allow-Origin: *, so it works directly from browser JavaScript. The plain http:// endpoint immediately redirects to https, so the service is https-only despite requiring no API key.
ReSmush.it is a free, keyless image-optimization API — best known as the backend behind the ReSmush.it WordPress plugin — that takes a source image's URL, compresses it server-side, and returns a JSON payload with the compressed image's own URL plus the original size, compressed size, and percent reduction. There is no upload endpoint for this GET form: the image itself must already be reachable at a public URL for the API to fetch and re-encode.
GreatAPIs Score
Auth quickstart
- No API key or account is needed — pass the source image's URL as the
imgquery parameter to a bare GET and the response comes back immediately.
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Optimize an image by URL
GEThttps://api.resmush.it/ws.php?img=https://picsum.photos/id/237/800/600.jpg
{"client_type":null,"src":"https:\/\/picsum.photos\/id\/237\/800\/600.jpg","dest":"http:\/\/fal1.static.resmush.it\/5931d0a372c0231a096f0c9a28e7063c\/600.jpg","src_size":71743,"dest_size":71537,"percent":0,"output":"json","expires":"Tue, 04 Aug 2026 11:04:15 +0200","generator":"reSmush.it rev.3.0.11.20240125"}Captured byte-for-byte from this run's live probe against a real Lorem Picsum JPEG, no truncation. percent came back 0 for this particular source image — it was already a well-compressed JPEG with little left to shrink — confirming the API's own reduction figure rather than assuming a non-zero saving.
Developer reference
Gotchas & limits
destis served over plainhttp://, nothttps://, even though the request itself was HTTPS — the compressed-image host (fal1.static.resmush.itin this probe) does not support TLS, so downstream code that hotlinks it must tolerate a mixed-content URL or re-fetch and re-host it.percentcan legitimately be0(or, per the API's own docs, occasionally negative if re-compression makes a file marginally larger) — it is not an error signal, and a caller expecting a guaranteed saving should checkdest_sizeagainstsrc_sizedirectly rather than assumingpercent > 0.- The compressed file at
destis not permanent — the response's ownexpiresfield (a few hours out from request time in this probe) documents that it is cleaned up, so it must be downloaded/re-hosted promptly rather than linked to long-term. - The bare
http://api.resmush.ithost redirects tohttps://(confirmed live), so despite needing no API key the service is effectively HTTPS-only for the request itself — call the https base directly to skip the extra round trip. - There is no batch mode on this endpoint — one
imgURL per request. Optimizing many images means one GET per image, and the API's own docs ask for reasonable request pacing since it fetches and re-encodes the source image synchronously on each call.