{"openapi":"3.1.0","info":{"title":"Photometry & Lighting API","version":"1.0.0","description":"Photometry and lighting maths as an API, computed locally and deterministically. The illuminance endpoint computes the light falling on a surface from a point source, E = I·cos(θ)/d² in lux, from the luminous intensity in candela, the distance in metres and the angle of incidence from the surface normal — a 1000 cd source straight down at 2 m gives 250 lux. The inverse-square endpoint scales a known illuminance to a new distance, E2 = E1·(d1/d2)², so doubling the distance quarters the light. The flux-intensity endpoint converts between luminous flux in lumens and luminous intensity in candela through the solid angle, I = Φ/Ω and Φ = I·Ω, with the solid angle taken as the full sphere 4π steradian for an isotropic source or, for a spotlight of full beam angle β, Ω = 2π·(1 − cos(β/2)) — so a 100 cd isotropic source emits about 1256.6 lm, and a 1000 cd lamp in a 30° beam emits about 214 lm. Distances are in metres and angles in degrees. Everything is computed locally and deterministically, so it is instant and private. Ideal for lighting-design, architecture, photography, film, horticulture-grow-light, stage and AV app developers, lux-and-lumen and luminaire-planning tools, and engineering software. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. These are photometric (perceived-light) quantities; for blackbody/peak-wavelength radiometry use a Wien/radiation API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/photometry-api","description":"oanor gateway"}],"tags":[{"name":"Photometry"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/flux-intensity":{"get":{"operationId":"get_v1_flux_intensity","tags":["Photometry"],"summary":"Flux ↔ intensity","description":"","parameters":[{"name":"flux","in":"query","required":false,"description":"Luminous flux (lm)","schema":{"type":"string"}},{"name":"intensity","in":"query","required":false,"description":"Luminous intensity (cd)","schema":{"type":"string"},"example":"100"},{"name":"beam_angle","in":"query","required":false,"description":"Full beam angle (deg)","schema":{"type":"string"}},{"name":"solid_angle","in":"query","required":false,"description":"Solid angle (sr)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Φ = I·Ω. A 100 cd isotropic source emits 100·4π ≈ 1256.6 lm.","inputs":{"intensity":100},"flux_lumen":1256.637061,"solid_angle_sr":12.56637061},"meta":{"timestamp":"2026-06-05T19:50:24.097Z","request_id":"d329b480-76c9-4107-b354-679726f84b36"},"status":"ok","message":"Flux/intensity conversion","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/illuminance":{"get":{"operationId":"get_v1_illuminance","tags":["Photometry"],"summary":"Illuminance from a point source","description":"","parameters":[{"name":"intensity","in":"query","required":true,"description":"Luminous intensity (cd)","schema":{"type":"string"},"example":"1000"},{"name":"distance","in":"query","required":true,"description":"Distance (m)","schema":{"type":"string"},"example":"2"},{"name":"incidence_angle","in":"query","required":false,"description":"Angle of incidence (deg)","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Point-source illuminance E = I·cos(θ)/d² (lux), with θ the angle of incidence from the surface normal. A 1000 cd source at 2 m gives 250 lux head-on.","inputs":{"distance":2,"intensity":1000,"incidence_angle":0},"illuminance_lux":250},"meta":{"timestamp":"2026-06-05T19:50:24.198Z","request_id":"83a6b870-8783-435d-8023-fbeb46094d57"},"status":"ok","message":"Illuminance","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/inverse-square":{"get":{"operationId":"get_v1_inverse_square","tags":["Photometry"],"summary":"Inverse-square scaling","description":"","parameters":[{"name":"illuminance","in":"query","required":true,"description":"Known illuminance (lux)","schema":{"type":"string"},"example":"250"},{"name":"distance1","in":"query","required":true,"description":"Known distance (m)","schema":{"type":"string"},"example":"2"},{"name":"distance2","in":"query","required":true,"description":"New distance (m)","schema":{"type":"string"},"example":"4"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Inverse-square law E2 = E1·(d1/d2)². Doubling the distance quarters the illuminance.","inputs":{"distance1":2,"distance2":4,"illuminance":250},"illuminance_lux":62.5},"meta":{"timestamp":"2026-06-05T19:50:24.300Z","request_id":"1256f5a9-b387-4de9-a24d-06495b87da8f"},"status":"ok","message":"Inverse-square law","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Distances in metres, angles in degrees. Photometric (perceived-light) quantities; for radiometric watts use a radiometry/Wien API and for sound levels a sound-level API.","units":{"flux":"lumen (lm)","intensity":"candela (cd)","illuminance":"lux (lx = lm/m²)","solid_angle":"steradian (sr)"},"service":"photometry-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/illuminance":"Illuminance E = I·cosθ/d² from intensity and distance.","GET /v1/flux-intensity":"Convert luminous flux ↔ intensity via beam/solid angle.","GET /v1/inverse-square":"Scale illuminance to a new distance."},"description":"Photometry / lighting: illuminance (lux), the inverse-square law, and luminous flux (lm) ↔ intensity (cd) via solid angle."},"meta":{"timestamp":"2026-06-05T19:50:24.402Z","request_id":"6078b875-abdb-465f-b65b-4a1d0a793bb2"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":5300,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":540,"monthly_call_quota":53000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1500,"monthly_call_quota":235000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4700,"monthly_call_quota":1330000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/photometry-api"}