Depth of field + hyperfocal
API · /photography-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 health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 91 ms
- Server probes · 24h
- Subscribers
- 3,044
- active
- Total calls
- 44
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 7,935 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 7,935 calls/month
- 2 req/sec
- DoF + field of view + exposure
- No credit card
Starter
€9.45 /month
- 17,450 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 17.45k calls/month
- 8 req/sec
- 7 sensor formats
- Email support
Pro
€29.35 /month
- 225,500 calls / month
- 20 requests / second
- Hard cap (429 above quota, no overage)
- 225.5k calls/month
- 20 req/sec
- Photo / video app pipelines
- Priority support
Mega
€67.35 /month
- 1,170,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.17M calls/month
- 50 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
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
Prism Optics API
Optical-prism geometry as an API, computed locally and deterministically. The deviation endpoint computes the minimum deviation angle of a light ray passing through a prism of apex angle A and refractive index n, δ_min = 2·arcsin(n·sin(A/2)) − A, together with the symmetric angle of incidence and the internal refraction angle A/2 on each face — an equilateral prism (A = 60°) of crown glass (n = 1.5) deviates light by about 37.2°. The refractive-index endpoint inverts the spectrometer formula n = sin((A + δ_min)/2) / sin(A/2), the standard way a refractive index is measured from a prism’s apex angle and its measured minimum deviation. The dispersion endpoint computes the angular dispersion between two wavelengths from their refractive indices and the apex angle, and, given the three Fraunhofer indices n_F, n_C and n_D, the dispersive power ω = (n_F − n_C)/(n_D − 1) and the Abbe number V = 1/ω that quantify how strongly a glass spreads colours — crown glass has ω ≈ 0.017 and V ≈ 59. All angles are in degrees. Everything is computed locally and deterministically, so it is instant and private. Ideal for optics, spectroscopy, refractometry, photonics and physics-education app developers, lens-and-prism design tools, and lab software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is prism geometry; for a single flat-surface refraction use a Snell’s-law API and for thin lenses a lens API.
api.oanor.com/prism-api
Angular Size API
Angular-size astronomy and optics maths as an API, computed locally and deterministically. The angular-size endpoint computes the angular diameter an object subtends, δ = 2·arctan(d/(2D)), from its physical size and its distance, returning the angle in radians, degrees, arcminutes and arcseconds, along with the small-angle approximation δ ≈ d/D — the Sun and Moon are each about half a degree (31 arcminutes) across. The distance endpoint inverts the relation, D = d/(2·tan(δ/2)), to give an object's distance from its known true size and its measured angular size, the basis of the standard-ruler distance method. The object-size endpoint computes an object's physical diameter, d = 2·D·tan(δ/2), from its distance and angular size. Size and distance use any one consistent unit, and angles may be given in radians, degrees, arcminutes or arcseconds. Everything is computed locally and deterministically, so it is instant and private. Ideal for astronomy, telescope, astrophotography, surveying and optics app developers, field-of-view and rangefinding tools, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is angular size; for stellar magnitude and parallax distance use a star-magnitude API and for sidereal time a sidereal API.
api.oanor.com/angularsize-api
Optical Fiber API
Optical-fibre photonics maths as an API, computed locally and deterministically. The numerical-aperture endpoint computes a step-index fibre's numerical aperture NA = √(n1² − n2²) from the core and cladding refractive indices, the acceptance angle θa = arcsin(NA) — the half-angle of the cone of light the fibre can capture — the full acceptance cone and the relative index difference Δ = (n1 − n2)/n1. The v-number endpoint computes the normalized frequency V = 2π·a·NA/λ from the core radius, the numerical aperture (or the indices) and the wavelength, classifies the fibre as single-mode when V is below the 2.405 cutoff or multimode above it, and gives the cutoff wavelength for single-mode operation. The modes endpoint estimates the number of guided modes — about V²/2 for a step-index fibre and V²/4 for a graded-index one — and confirms single-mode operation below the cutoff. Core radius and wavelength are in metres (1310 nm = 1.31×10⁻⁶ m) and refractive indices are dimensionless. Everything is computed locally and deterministically, so it is instant and private. Ideal for telecom, photonics, datacenter, sensor and laser app developers, fibre-link and waveguide-design tools, and optics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is optical-fibre guiding; for thin lenses and mirrors use a lens API and for refraction at a surface a Snell API.
api.oanor.com/fiber-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Photography Calculator API?
What's the rate limit for Photography Calculator API?
How much does Photography Calculator API cost?
Can I cancel my subscription anytime?
Is Photography Calculator 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/photography-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/photography-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/photography-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/photography-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.