Image metadata (EXIF)
Image metadata is an API that reads or changes a photo's EXIF data (author, copyright, description, date) and, most importantly, lets you strip it before publishing an image: a phone photo can carry your GPS location and camera model without it showing anywhere visible. The sibling of PDF metadata.
How it works
Send the image with no fields and it tells you what EXIF it currently has (including has_gps: whether location is present). Send at least one field (or strip:true) and get back the image with only those fields, or completely clean.
By privacy design: write mode NEVER carries over the original EXIF. If the input photo has GPS and you only ask to change copyright, the GPS disappears anyway: you'd need to explicitly ask to keep something from the original (not possible today, on purpose).
All you need
- Your API key. Create it in your dashboard with "+ Create key".
- In your automation platform, an "HTTP Request" step (n8n, Make, Zapier, Pipedream…).
Strip all EXIF before publishing (the most common use)
In the HTTP Request node: Method POST, URL https://api.cofferdock.com/image-metadata?strip=true, upload the image as binary, header x-api-key. Response: the same image, no EXIF.
Options
| Option | Default | What it does |
|---|---|---|
strip | false | Removes all EXIF, without setting anything new. |
artist, copyright, description, software | - | Text. Give any of these to enter write mode. |
date_time | - | ISO 8601, e.g. 2026-09-28T12:00:00Z. |
API overview
- Endpoint:
POST https://api.cofferdock.com/image-metadata - Auth:
x-api-key: YOUR_KEY. - Mode: no fields and no
strip→ read (doesn't change the image). At least one → write. - Engine: sharp + exif-reader. With no EXIF fields on output, sharp strips them all by default (that's how the "carries nothing over" privacy design works).
- Limits: 30 requests/min per IP. 1 call = 1 credit.
Example (read)
curl -X POST "https://api.cofferdock.com/image-metadata" \
-H "x-api-key: YOUR_KEY" -H "Content-Type: image/jpeg" \
--data-binary @photo.jpg
{ "success": true, "mode": "read", "metadata": { "artist": null, "copyright": null,
"description": null, "software": "Adobe Lightroom", "date_time": "2026-09-20T10:00:00.000Z",
"has_gps": true, "format": "jpeg", "width": 4032, "height": 3024 },
"meta": { "used": 12, "remaining": 488 } }
What you get back
Read: metadata with the fields and has_gps. Write: the image (base64 or binary depending on output).