Best Free Image Metadata Viewer
See the hidden EXIF a photo carries — camera, date, GPS — or strip it out for privacy. Free.
How it works
- Upload. Choose a photo to inspect (up to 40 MB).
- Read or strip. View its dimensions, format and full EXIF, or choose strip to remove the metadata.
- See or download. Read the metadata on the page, or download a metadata-free copy of the image.
About this tool
Image Metadata Viewer reads the hidden EXIF data embedded in a photo: the camera and lens, the date it was taken, exposure settings, and often the GPS coordinates of where it was shot. It shows you exactly what a photo is quietly carrying. If you'd rather not share that, switch to strip mode and the tool hands back a clean copy of the image with the metadata removed. Nothing is stored — the photo is read in memory and discarded.
What people use it for
- Check whether a photo contains GPS location data
- See what camera and settings took a shot
- Strip metadata before sharing a photo publicly
- Confirm the original date a photo was taken
Developer API
Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.
https://best.free/api/tools/image-metadata/
| Parameter | Example | Required | Notes |
|---|---|---|---|
file (file) |
photo.jpg |
Yes | Any common image, ≤25 MB. |
action |
read |
No | "read" returns JSON; "strip" returns a metadata-free image. |
curl -X POST https://best.free/api/tools/image-metadata/ \
-F 'file=@photo.jpg' \
-F 'action=read' \
-o metadata.json
import requests
files = {"file": open("photo.jpg", "rb")}
data = {"action": "read"}
r = requests.post("https://best.free/api/tools/image-metadata/", files=files, data=data)
with open("metadata.json", "wb") as out:
out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
fd.append("action", "read");
const r = await fetch("https://best.free/api/tools/image-metadata/", { method: "POST", body: fd });
const blob = await r.blob(); // the metadata.json
Response: JSON of dimensions, format and EXIF (or a stripped image when action=strip).