Scrapers / Developer & File Tools
Image Metadata Remover
hipersoft/image-metadata-remover
Bulk-remove EXIF, GPS location, IPTC and XMP metadata from images while keeping the picture intact. Export clean JPG/PNG/WebP for privacy and GDPR.
Total users
2Monthly users
1Total runs
85Per image cleaned
$0.005Last rebuilt
Oct 26, 2026Overview
Remove EXIF, GPS location, IPTC and XMP metadata from images in bulk — and get back clean JPG, PNG, WebP, AVIF or TIFF files with the picture untouched. Point this Image Metadata Remover at a list of image URLs and it returns privacy-safe copies plus a report of exactly what was stripped from each one. No design software, no manual work.

Why remove image metadata?
Every photo taken on a phone or camera carries hidden metadata: GPS coordinates of where it was shot, the device model, serial numbers, timestamps, editing history and more. Publishing images with that data attached can leak someone's home address or a business's location. This tool wipes it before your images go public.
What it does
- Strips EXIF (camera, GPS, timestamps), IPTC (captions, keywords) and XMP (editing history) metadata.
- Keeps the image pixel-perfect — same resolution, same quality.
- Optionally bakes in the correct orientation first, so photos never come out rotated.
- Optionally keeps the color profile (ICC) so colors don't shift.
- Optionally converts every image to one format (JPEG/PNG/WebP/AVIF/TIFF).
- Returns a per-image report of what metadata was found and removed.
Use cases
- Privacy & GDPR — scrub location and personal data before publishing user-submitted photos.
- Marketplaces & classifieds — remove seller location data from listing images at scale.
- Publishing & journalism — clean source photos before they go on the web.
- Real estate & agencies — strip metadata from property and client images in bulk.
- Dataset preparation — normalize and de-identify image sets before sharing or training.
Input
Provide one or more image URLs and choose your options.
{
"imageUrls": [
"https://example.com/photo1.jpg",
"https://example.com/photo2.png"
],
"keepOrientation": true,
"keepColorProfile": true,
"outputFormat": "original"
}
| Field | Type | Description |
|---|---|---|
imageUrls |
array | Direct links to the images to clean (JPG, PNG, WebP, AVIF, TIFF, GIF). |
keepOrientation |
boolean | Bake rotation into the pixels before stripping, so images stay upright. Default true. |
keepColorProfile |
boolean | Preserve the ICC color profile so colors don't shift. Default true. |
outputFormat |
string | original, or convert all to jpeg / png / webp / avif / tiff. |
Output

Each image becomes one dataset item, and the cleaned file is saved to your key-value store.
{
"sourceUrl": "https://example.com/photo1.jpg",
"cleanedUrl": "https://api.apify.com/v2/key-value-stores/.../records/clean/0001-photo1.jpg",
"format": "jpeg",
"width": 4032,
"height": 3024,
"originalBytes": 3785412,
"cleanedBytes": 3719004,
"metadataRemoved": ["EXIF", "GPS", "XMP"],
"hadMetadata": true,
"ok": true
}
Output schema
| Field | Type | Description |
|---|---|---|
sourceUrl |
string (URL) | The original image URL. |
cleanedUrl |
string (URL) | Link to the cleaned image in your key-value store. |
format |
string | Detected image format. |
width |
integer | Image width in pixels. |
height |
integer | Image height in pixels. |
originalBytes |
integer | Original file size. |
cleanedBytes |
integer | Cleaned file size. |
metadataRemoved |
array | Which metadata blocks were removed (EXIF, IPTC, XMP, ICC…). |
hadMetadata |
boolean | Whether the original had any metadata. |
ok |
boolean | Whether the image was processed successfully. |
FAQ
Does it change how the image looks? No. The pixels, resolution and quality stay the same — only the hidden metadata is removed (and orientation is corrected if enabled).
Does it remove GPS location? Yes. GPS coordinates live in EXIF, which is fully stripped.
Can I convert formats at the same time?
Yes — set outputFormat to convert every image to JPEG, PNG, WebP, AVIF or TIFF while cleaning it.
What export formats are supported for the results? The dataset exports to JSON, CSV, Excel and XML; cleaned images are saved as files in the key-value store.
Can I automate or integrate it? Yes. Connect it with almost any app via integrations on the Apify platform — Make, Zapier, Slack, GitHub, Google Drive and more, plus the Apify API and webhooks.
Notes
Original clean-room implementation. You are responsible for how you use the processed images.
Input
| Field | Type | Description |
|---|---|---|
imageUrls requiredImage URLs | array | Direct links to the images you want to clean (JPG, PNG, WebP, AVIF, TIFF, GIF). Each image is downloaded, stripped of metadata, and saved to your storage. |
keepOrientationKeep correct orientation | boolean | Bake the photo's rotation into the pixels before removing metadata, so it still displays the right way up. Default: true |
keepColorProfileKeep color profile (ICC) | boolean | Preserve the embedded color profile so colors don't shift. Turn off for the smallest, most fully-stripped file. Default: true |
outputFormatOutput format | string · original, jpeg, png, webp, avif, tiff | Keep the original format or convert every image to one format. Default: "original" |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~image-metadata-remover/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"imageUrls": [
"https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/image-metadata-remover").call(run_input={
"imageUrls": [
"https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/image-metadata-remover').call({
"imageUrls": [
"https://raw.githubusercontent.com/ianare/exif-samples/master/jpg/gps/DSCN0010.jpg"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Image cleaned One image stripped of metadata and saved to your storage | $0.005 | $0.0025 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Bulk Image Downloader
Download thousands of images from a list of URLs and store each in the key-value store with a public link. Returns content type, size, dimensions and SHA-256 per image. Bulk-ready. Great for datasets, backups and media pipelines.
8,102 runs · 103 users · $0.056 / url processedText to Speech
Convert any text to natural-sounding speech as an MP3 download. 300+ premium neural voices across 70+ languages, adjustable rate, pitch and volume. Great for voiceovers, videos, accessibility and audio content. No setup.
278 runs · 22 users · $0.01 / audio generatedGoogle Maps Email Extractor
Search Google Maps for businesses, then crawl each business website to extract emails, social profiles and extra phone numbers. Turns any Maps search into a ready lead list. No setup.
159 runs · 8 users · $0.006 / business lead scrapedWebsite Screenshot
Capture full-page or viewport screenshots of any URL as PNG or JPEG, at any device size. For monitoring, previews, thumbnails and automation workflows.
156 runs · 3 users · $0.004 / screenshot capturedBulk URL Status Checker
Check thousands of URLs over plain HTTP: status codes, broken links (404/410/5xx), full redirect chains, response time, content type, page title and SSL certificate expiry.
154 runs · 13 users · $0.002 / url checkedGoogle Search Scraper
Scrape Google Search results (organic listings) for any query: title, URL, displayed URL, snippet and position. Multi-query, per-country/language, pagination. Uses Google SERP proxy — reliable, no captcha, no setup.
121 runs · 8 users · $0.001 / result scrapedSend the site and the fields. We build it and you get it first.