Free EXIF remover: metadata out, pixels untouched
Drop a JPEG, PNG or WebP and get the same picture back without EXIF, GPS, XMP, IPTC or comments. The image data is copied byte for byte, so nothing is lost. The form calls the same free API your code can call: one POST, no API key and no account.
curl -s -X POST https://aisenseapi.com/services/v1/image_strip \
-F "file=@photo.jpg"
{
"storage_id": "3a60f9aa-1277-4025-9028-9d1a6c618118",
"storage_url": "https://aisenseapi.com/services/v1/storage/3a60f9aa-1277-4025-9028-9d1a6c618118",
"sha256_hash": "976bb93fbccde05545bf17033d5616dc83ea7c5787b5eafc58ac1e0c54381679",
"bytes": 640376,
"expire_timestamp": 1790778560,
"expire_datetime": "2026-09-30T14:29:20+00:00",
"content_type": "image/jpeg",
"filename": "result.jpg",
"operation": "image_strip",
"format": "jpeg",
"width": 1600,
"height": 1200,
"input_bytes": 640790,
"removed": [
"EXIF"
],
"kept": []
}Try it in the browser
This form posts your image to the same endpoint and shows the stored result. The image is sent to aisenseapi.com, and the result is kept for 24 hours at a link that anyone with the link can open.
How it works
- The file is rewritten, not saved again. The endpoint walks the segments of a JPEG, the chunks of a PNG or the chunks of a WebP and writes them out again without the metadata. The compressed image data is copied byte for byte, so the pixels are exactly the ones you sent.
- From a JPEG it removes EXIF with its GPS directory and thumbnail, XMP, IPTC and other Photoshop data, comments, the multi-picture index, other application segments, and whatever follows the end of the image, where phones keep depth maps and HDR gain maps.
- From a PNG it removes the text chunks, XMP, EXIF and the time of last change.
- From a WebP it removes the EXIF and XMP chunks.
- The colour profile is kept, so the colours look the same, and so are the JFIF header and the Adobe colour transform of a JPEG.
- The orientation is kept. A photo the camera marked as rotated gets a new EXIF with its orientation alone, so it still shows the right way up. Nothing else is written back.
The image converter and image compression remove metadata too, but they save the image again. This endpoint does not, so it is the one to use when the pixels must not change. The image metadata viewer shows what a file carries before you remove it.
The API
POST https://aisenseapi.com/services/v1/image_strip with multipart/form-data and one field, file. Any other field is refused. The result is stored in the format of the upload, and the answer holds the Storage fields and what was done:
| Field | Meaning |
|---|---|
storage_id, storage_url | Where the result is. A GET on the URL returns it. |
sha256_hash, bytes | The digest and size of the stored result. |
expire_timestamp, expire_datetime | When the result is removed, 24 hours after it was stored. |
content_type, filename | The image type, and result.jpg, result.png or result.webp. |
operation, format, width, height | image_strip, and the format and size of the image. |
input_bytes | The size of the upload. bytes is the size without the metadata. |
removed | What was taken out, such as EXIF, XMP and Comments. |
kept | Colour profile and Orientation, when the image had them. |
The example at the top of the page comes from the same test photo as on the metadata viewer, with made-up EXIF data and a GPS position. What came back is the photo as it was before the EXIF data was added, 640 376 bytes. A GET on storage_url returns the image with its own image type.
Anyone with the link can open the image until it expires, so do not send pictures of people or anything confidential. Stored results count against the Storage budget of 80 MB per IP address per day.
Limits
- The upload is a JPEG, PNG or WebP of at most 10 MB. There is no pixel limit, since the image is not decoded.
- HEIC is read by the image converter only.
- The result is at most 10 MB.
Errors
A refused request stores nothing and answers with error. The endpoint's own refusals also carry fix, a sentence saying what to send instead.
| Status | When |
|---|---|
400 | A field was sent, the upload is not one whole file, or the file cannot be read as an image. |
405 | The method is not POST. |
413 | The upload, its number of pixels or the result is over a limit. |
415 | The body is not multipart/form-data, or the file is not a JPEG, PNG or WebP. |
429 | More than 5000 requests from one IP address in 24 hours, or the day's Storage budget is used up. |
503 | The service cannot read or store the image right now. |
Questions
Is the EXIF remover API free?
Yes. No API key, no account and no sign up. The limit is 5000 requests per IP address per 24 hours, and stored results count against the Storage budget of 80 MB per IP address per day.
Does removing the metadata lower the quality?
No. The image data is copied byte for byte, so the pixels are exactly the same as in the upload.
Will the photo still show the right way up?
Yes. When the camera marked the photo as rotated, the orientation is written back on its own, and nothing else is.
Can it remove metadata from HEIC?
No. It takes JPEG, PNG and WebP. The image converter reads HEIC and removes the metadata while it converts.
Related tools
- Image converter, which also reads HEIC, and image compression
- Image metadata viewer and EXIF remover
- Colour palette and favicon generator
- JSON to CSV, CSV to JSON and table matching
- JSON formatter and JSON validator
- File uploader and the Temporary Storage API, where every result is kept for 24 hours