Photon Flux from Power Calculator
This photon flux from power calculator converts a beam's average optical power into the number of photons passing per second.
Run — free
Enter the optical power in watts and the energy of one photon in joules. The calculator applies the direct relationship between energy per unit time and energy per photon, returning a deterministic photon rate. It is useful for laser experiments, detector estimates, optical links, illumination studies, and any calculation where radiant power must be expressed as a photon count rate.
Connect optical power to a photon count rate
Optical power describes how quickly a beam transports energy. One watt equals one joule per second, but many optical calculations need a particle rate rather than an energy rate. If every photon carries the same specified energy, dividing the beam power by that single-photon energy gives the number of photons arriving each second. The calculator therefore evaluates photon flux from power as N = P / E, where P is optical power in watts and E is photon energy in joules. The result has units of photons per second because joules per second divided by joules per photon leaves photons per second. Use average power when estimating an average flux. For a pulsed source, an average-power input produces an average photon rate across time; it does not describe the much higher rate during an individual pulse. The calculation assumes that the entered power belongs to the light under study and that the stated energy represents each photon in that beam. It does not estimate losses, detector efficiency, or spectral bandwidth automatically.
Choose consistent inputs and interpret the result
Enter optical power in watts, converting milliwatts or microwatts before submission. For example, one milliwatt is 0.001 watt. Enter photon energy in joules, not electronvolts, unless you first convert electronvolts to joules. A monochromatic beam has a well-defined photon energy associated with its wavelength or frequency, so a single value is usually appropriate. A broadband source contains photons with different energies; in that case, one representative energy only gives an approximation, while a rigorous total requires integrating photon flux over the spectrum. The result can be very large because visible and infrared photons carry extremely small amounts of energy. Scientific notation is therefore normal and should not be mistaken for an error. A reported value such as 2.5e15 means 2.5 quadrillion photons per second. The calculator accepts zero optical power and correctly returns zero flux, but photon energy must be positive. Negative power, zero photon energy, nonnumeric values, infinities, and results beyond the supported numeric range are rejected rather than producing a misleading answer.
Apply photon flux without confusing it with detected counts
Photon flux at the source is not necessarily the count rate recorded by an instrument. Windows, fibers, filters, free-space propagation, and imperfect coupling can reduce the power that reaches a detector. Quantum efficiency then determines what fraction of arriving photons create a measurable event. Use this calculator at the point where the optical power is known: source power gives emitted photon rate, while power measured at the detector plane gives incident photon rate. To estimate detected counts, multiply the returned flux by the total optical transmission and detector quantum efficiency, provided those factors are expressed as fractions and are appropriate for the wavelength. The direct calculation is valuable for quick feasibility checks because it separates the fundamental energy conversion from apparatus-specific losses. It also makes assumptions easy to audit in a lab notebook or software pipeline: preserve the exact power and photon-energy inputs alongside the returned rate. Through the API, each request costs $0.002; the deterministic implementation uses no network service, random value, clock, or stored state, so identical valid inputs yield identical numeric outputs.
What you can do with it
Estimate laser photon output
Convert a measured continuous-wave laser power and known photon energy into an emitted photons-per-second rate.
Plan a detector measurement
Find the incident photon rate before applying optical transmission and detector quantum efficiency to estimate detected events.
Check an optical link budget
Express received optical power as photon arrivals per second for sensitivity and shot-noise calculations.
FAQ
What formula does the calculator use?
It uses photons per second = optical power in watts / photon energy in joules.
Can I enter milliwatts directly?
No. Convert the value to watts first; divide milliwatts by 1,000 before entering the power.
Can I enter photon energy in electronvolts?
The input requires joules. Convert electronvolts to joules before using the calculator.
Does the result equal my detector count rate?
Not automatically. The result is incident photon flux at the point represented by the power measurement; losses and detector quantum efficiency must be applied separately.
Does this work for pulsed lasers?
Yes for an average rate when average power is used. To find photons per pulse, use pulse energy divided by photon energy instead.
What does an API calculation cost?
Each API request costs $0.002.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/optics/photon-flux-from-power \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"optical_power_w":0.001,"photon_energy_j":3.972891714297857e-19}'const res = await fetch("https://api.kit.forhosting.com/optics/photon-flux-from-power", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"optical_power_w": 0.001,
"photon_energy_j": 3.972891714297857e-19
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/photon-flux-from-power",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"optical_power_w": 0.001,
"photon_energy_j": 3.972891714297857e-19
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/photon-flux-from-power", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"optical_power_w":0.001,"photon_energy_j":3.972891714297857e-19}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"optical_power_w":0.001,"photon_energy_j":3.972891714297857e-19}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/photon-flux-from-power", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"optical_power_w": 0.001,
"photon_energy_j": 3.972891714297857e-19
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.photon_flux_from_power",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |