API · /exposure-api

Photography Exposure API

healthy 3,802 Subscribers

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
Get an API key Try in playground → Contact provider

Machine-readable spec so AI agents can integrate this API.

/api/exposure-api/openapi.json
/api/exposure-api/llms.txt

Discovery: GET /api/index.json lists every API.

API health

healthy
Uptime
100.00%
Server probes · 24h
Avg latency
83 ms
Server probes · 24h
Subscribers
3,802
active
Total calls
0
last 7 days
status Full status page → · 4 probes/24h

Pricing

Pick a tier — billed monthly, cancel anytime.

Free

Free

  • 8,800 calls / month
  • 2 requests / second
  • Hard cap (429 above quota, no overage)
  • 8,800 calls/month
  • 2 req/sec
  • EV + equivalent + Sunny-16
  • No credit card
Sign in to subscribe

Starter

€7.60 /month

  • 86,000 calls / month
  • 6 requests / second
  • Hard cap (429 above quota, no overage)
  • 86,000 calls/month
  • 6 req/sec
  • Exposure-triangle reciprocity
  • Email support
Sign in to subscribe

Pro

€26.80 /month

  • 352,000 calls / month
  • 15 requests / second
  • Hard cap (429 above quota, no overage)
  • 352,000 calls/month
  • 15 req/sec
  • Camera-app & teaching pipelines
  • Priority support
Sign in to subscribe

Mega

€83.00 /month

  • 1,620,000 calls / month
  • 40 requests / second
  • Hard cap (429 above quota, no overage)
  • 1,620,000 calls/month
  • 40 req/sec
  • Platform scale
  • Dedicated SLA
Sign in to subscribe

Built by

Related APIs

Other APIs with overlapping tags.

Darkroom API

Analog darkroom and film maths as an API, computed locally and deterministically — the three corrections that bite when you develop film and make prints by hand. The reciprocity endpoint corrects long exposures for reciprocity failure, where film loses sensitivity past about a second: corrected time = metered^p (Schwarzschild p ≈ 1.3 for many films, settable per datasheet), so a metered 10-second exposure really wants about 20 seconds, a full stop more, while anything under the threshold is left untouched. The printexposure endpoint adjusts enlarger exposure when you change print size — light spreads as you raise the head, so exposure is proportional to (magnification + 1)², where magnification is print size ÷ negative size: going from 2× to 4× magnification turns a 10-second exposure into 27.8 seconds, about 1.5 stops, ready for f-stop printing. The pushpull endpoint scales development time for pushing or pulling film by N stops — time = base × factor^stops, roughly +40 % per stop pushed — turning a 7-minute base into 13.7 minutes at +2 stops, or 5 minutes pulled a stop. Everything is computed locally and deterministically, so it is instant and private. Ideal for film-photography and darkroom apps, light-meter and timer companions, lab and workshop tools, and analog-photography sites. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. For digital depth-of-field use a photography API; for lab molarity use a dilution API.

api.oanor.com/darkroom-api

Photography Calculator API

Camera and optics maths as an API. The depth-of-field endpoint computes the near and far limits of sharp focus, the total depth of field and the hyperfocal distance from a focal length, aperture and focus distance, using the circle of confusion for your sensor format — full-frame, APS-C, Micro Four Thirds, 1-inch, medium format, Super 35 and more, or your own value. The field-of-view endpoint gives the horizontal, vertical and diagonal angle of view for a focal length on a given sensor, plus the crop factor and the 35 mm-equivalent focal length. The exposure endpoint computes the exposure value (EV) from aperture, shutter speed and ISO, and can also solve for the shutter speed or aperture that hits a target EV. Everything is computed locally and deterministically, so it is instant and private. Ideal for photography and videography apps, camera and lens tools, focus-stacking and landscape planning, and teaching exposure and optics. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. This computes camera optics; for reading EXIF metadata from photo files use an EXIF API.

api.oanor.com/photography-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.oanor.com/exif-api

Battery Pack API

Battery-pack design maths as an API, computed locally and deterministically — the voltage, capacity, energy, current and charge-time numbers an EV, e-bike, solar or robotics pack builder lays out a battery with. The configuration endpoint turns a series-parallel cell layout into the pack: cells in series add their voltages (the series count sets the pack voltage) and cells in parallel add their amp-hours (the parallel count sets the capacity), with the energy in watt-hours = voltage × capacity — a 13S4P pack of 3.6 V / 3.5 Ah cells is 46.8 V, 14 Ah and about 655 Wh from 52 cells, and it also reports the full-charge voltage (series × 4.2 V for Li-ion) to size the charger and BMS. The c-rate endpoint relates current to capacity both ways — give a C-rate to get the current, or a current to get the C-rate — because 1C draws or charges the whole capacity in an hour, so a 14 Ah pack at 2C is 28 A, and it returns the power if you pass the pack voltage. The charge-time endpoint gives the time to charge between two states of charge from the charge current. Everything is computed locally and deterministically, so it is instant and private. Ideal for EV and e-bike builders, solar and off-grid storage tools, robotics and drone packs, and battery-engineering apps. Pure local computation — no key, no third-party service, instant. Pack-design estimates — real cells taper on charge and sag under load. 3 compute endpoints. For runtime under a load use a battery API; for EV charging an EV-charging API.

api.oanor.com/batterypack-api

Frequently asked questions

Quick answers about pricing, quotas, and integration.

How do I get an API key for Photography Exposure API?
Sign up for free at oanor.com, generate an API key from the developer dashboard, and call Photography Exposure API with the x-oanor-key header. No credit card needed for the free tier.
What's the rate limit for Photography Exposure API?
Free tier allows 1 request per second. Paid plans scale up to 50 requests per second on the Mega tier. Hard limits return HTTP 429 above the quota — no surprise overage charges.
How much does Photography Exposure API cost?
Photography Exposure API has a free tier with 100 calls / month. Paid plans start at €7.60 / month with higher quotas and faster rate limits.
Can I cancel my subscription anytime?
Yes. Plans are billed monthly and you can cancel anytime from your billing dashboard. No long-term contracts and no cancellation fee.
Is Photography Exposure API GDPR-compliant?
All requests to Photography Exposure API go through our EU-based gateway. Your upstream API key never leaves our server and no personal data is shared with the upstream provider beyond the request you send.

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/exposure-api/SOME_PATH \
  -H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/exposure-api/SOME_PATH", {
  headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/exposure-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/exposure-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 in

New thread

/ 4000

📌 Pinned 🔒 Locked

·

· ·

/ 4000

🔒 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 in

Open new ticket

Describe what you need help with. The provider team gets an email and replies on the ticket page.

  • No tickets yet for this API.

Subscription active — calls can start immediately.

Send your first request —

Subscription active — copy a snippet and fire off your first call.