Extract EXIF/GPS/IPTC/XMP metadata
API · /exif-api
EXIF API
Extract the hidden metadata baked into a photo. Pass an image URL (we fetch it) or a base64 image and get back its EXIF, GPS, IPTC and XMP data: the camera make and model, lens, software, the capture date/time, full exposure settings (shutter speed, aperture / f-number, ISO, focal length, flash, metering and white balance), orientation, colour space and resolution, plus the GPS location (latitude, longitude, altitude) with a ready Google Maps link — and the complete raw tag map. A dedicated /v1/gps endpoint returns just the geotag. Supports JPEG, TIFF, HEIC and PNG. Parsing runs locally (no third-party service) and nothing is stored. Live. 3 endpoints. Built for photo-management apps, geotagging, digital forensics, copyright/credit checks and image pipelines. Distinct from a basic image-info or resize service. No upstream key.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 118 ms
- Server probes · 24h
- Subscribers
- 4,571
- active
- Total calls
- 57
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 1,680 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 1,680 calls/month
- 2 req/sec
- EXIF + GPS + IPTC + XMP
- No credit card
Starter
€9.50 /month
- 36,000 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 36k calls/month
- 8 req/sec
- URL + base64, up to 25 MB
- Email support
Pro
€28.50 /month
- 200,000 calls / month
- 20 requests / second
- Hard cap (429 above quota, no overage)
- 200k calls/month
- 20 req/sec
- Photo / forensics pipelines
- Priority support
Mega
€64.50 /month
- 1,010,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.01M calls/month
- 50 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Polyline API
Encode and decode Google/Mapbox encoded polylines — the compact ASCII string used by the Google Maps Directions API, Mapbox, Valhalla, OSRM and GPX-style route geometry to pack a list of coordinates into a few bytes. Decode an encoded string into an array of latitude/longitude points, encode a coordinate list back into a polyline (precision 5, the Google default, or 6 for OSRM/Valhalla overview), and measure a path — point count, total length by the haversine great-circle formula in km and miles, and the bounding box. Perfect for drawing routes on a map, storing tracks compactly, computing trip distance and fitting a map viewport. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. Distinct from coordinate-format conversion (Plus Code/MGRS/UTM) and geohash.
api.oanor.com/polyline-api
Flickr Photos API
Live public photo streams from Flickr, the original photo-sharing community, served from Flickr's open public feeds — no key, nothing cached. Flickr has hosted billions of photos from photographers, museums and agencies for two decades. The recent endpoint returns the newest public photos uploaded across all of Flickr right now, each with its title, photographer, capture and publish dates, tags and ready-to-use image URLs at several sizes. The tag endpoint returns the newest public photos for one or more tags — sunset, wildlife, street — the hashtag feed of Flickr, with a match-any or match-all mode. The user endpoint returns a photographer's most recent public photostream by their Flickr ID; institutions like NASA on The Commons publish here. Every photo comes back cleaned up: the photographer name pulled out of the raw author field, machine tags filtered away from human tags, and the static image URL expanded into square, small, medium and large variants plus a link to the photo page. Everything is live from Flickr's public feeds, nothing stored. This is the Flickr photo-discovery layer for any gallery, wallpaper, photography, moodboard or social app. Distinct from Pixelfed and mainstream social-network APIs — this is Flickr's public photo stream by recency, tag and user. Feeds return the 20 most recent public photos per query. 3 endpoints, no key on our side.
api.oanor.com/flickr-api
Time-lapse API
Time-lapse photography maths as an API, computed locally and deterministically — the clip-length, interval and storage numbers a photographer, filmmaker or camera app plans a sequence with. The clip-length endpoint trades a long shoot for a short clip: the frames captured = the shoot duration ÷ the interval, and the clip length = those frames ÷ the playback frame rate — shooting for 60 minutes at one frame every 5 seconds gives 720 frames, and at 24 fps that plays back in 30 seconds, a 120× speed-up. Longer intervals compress time harder but can stutter on fast motion. The interval endpoint works backwards from a target clip: the frames needed = the target clip length × the frame rate, and the interval = the shoot duration ÷ those frames, so a 60-minute shoot for a 20-second clip at 24 fps needs 480 frames, one every 7.5 seconds. The storage endpoint sizes the card and disk: total storage = the frame count × the size of one frame, and because time-lapse shoots full-resolution stills (RAW ~20–30 MB each), 720 RAW frames at 25 MB is about 18 GB for a single 30-second clip — which is why a long lapse eats cards fast. Everything is computed locally and deterministically, so it is instant and private. Ideal for time-lapse and intervalometer apps, photography-planning tools, and production calculators. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For video bitrate and file size use a bitrate API.
api.oanor.com/timelapse-api
Photography Exposure API
Photographic exposure maths as an API, computed locally and deterministically — the exposure-value, equivalent-exposure and Sunny-16 numbers a photographer, camera-app developer or educator works the exposure triangle with. The exposure-value endpoint gives EV = log₂(aperture² ÷ shutter) and the ISO-100-normalised EV100 (subtracting log₂(ISO/100)) — every one-EV step is a stop, a doubling or halving of light — so bright sun reads about EV 15 and a typical interior EV 6–8, and equal-EV settings give the same exposure. The equivalent endpoint applies the reciprocity at the heart of the triangle: exposure ∝ shutter × ISO ÷ f-number², so when you close the aperture or drop the ISO it returns the new shutter that keeps the brightness constant — going from f/2.8 to f/5.6 needs four times the shutter time. The sunny16 endpoint gives the classic meterless rule: in bright sun shoot f/16 at about 1/ISO (1/125 s at ISO 100), opening up in stops for softer light — slight overcast f/11, overcast f/8, heavy overcast f/5.6, open shade f/4, and f/22 on snow or sand — solving the shutter for your chosen ISO and aperture. Everything is computed locally and deterministically, so it is instant and private. Ideal for camera and photography apps, exposure-calculator and teaching tools, and metering and automation utilities. Pure local computation — no key, no third-party service, instant. 3 compute endpoints. For depth of field and hyperfocal distance use a photography (optics) API.
api.oanor.com/exposure-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for EXIF API?
What's the rate limit for EXIF API?
How much does EXIF API cost?
Can I cancel my subscription anytime?
Is EXIF API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/exif-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/exif-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/exif-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/exif-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.