Shutter speed converter
Switch a shutter speed between fractions, decimal seconds, milliseconds, microseconds and APEX stops: 1/125 is 0.008 seconds, or 8 ms, so camera dials, light-meter tables and video notes speak the same time. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 125
- Source shutter unit
- fraction
- Target shutter unit
- s
- Result
- 0.008
- From label
- fraction (1/N second)
- To label
- seconds
- Seconds
- 0.008
A shutter speed converter turns a camera exposure time written as a fraction, a decimal number of seconds, milliseconds, microseconds, or an APEX time value into any other supported form without hunting charts or spreadsheet formulas.
Supported units and how the conversion is computed
Seconds are identity. Milliseconds and microseconds use exact SI factors of one thousand and one million. Fraction uses the exact reciprocal t equals one over N.
APEX Tv and stops use the exact power-of-two relation t equals two to the power of negative Tv, which is the standard photographic mapping that places one second at Tv zero, one half second at Tv one, and roughly one one-hundred-twenty-fifth second near Tv seven. Because the intermediate is always seconds, converting A to B and B to A is consistent up to the published rounding of twelve decimal places, and there is no pairwise matrix that can drift out of sync.
Full exposure value from aperture and ISO, film speed scales, and creative exposure advice are intentionally out of scope so photographers get predictable time-only results under one clear convention.
Shutter speed conversions in everyday photography
Use the free in-browser shutter speed converter when you need a quick fraction-to-seconds, milliseconds-to-fraction, or APEX-Tv-to-stops check while reading a camera dial, light-meter handbook, video frame-time note, or lighting diagram. Open the page, enter the number and units, and copy the result without installing a spreadsheet, a unit library, or a desktop calculator pack. Source inputs follow the same retention rules as other KIT parse items, and results are safe to cache because the algorithm is fully deterministic.
What you can do with it
Camera dials and fraction charts
Convert 1/125-style fractions to decimal seconds or milliseconds when meters, manuals, and software use different time formats.
APEX and stop teaching
Map APEX time value Tv or stops from one second to real exposure times when teaching additive exposure systems.
FAQ
How do I convert 1/125 second to decimal seconds?
Send value 125, from "fraction", and to "s". The result is 0.008 seconds (one one-hundred-twenty-fifth of a second).
What is the difference between tv and stops?
Canonical codes differ for SEO and UI labels; the numeric conversion is identical.
What happens if I send an unknown unit?
The message names the field and lists supported units (s, ms, us, fraction, tv, stops).
Is the shutter speed converter free?
The browser tool runs free on your device.
Does this compute full exposure value (EV)?
No. This capability converts shutter time representations only. For EV from aperture, shutter, and ISO, use a dedicated exposure-value calculator.
Related tools
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/conv/shutter-speed \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":125,"from":"fraction","to":"s"}'const res = await fetch("https://api.kit.forhosting.com/conv/shutter-speed", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 125,
"from": "fraction",
"to": "s"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/shutter-speed",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 125,
"from": "fraction",
"to": "s"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/shutter-speed", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":125,"from":"fraction","to":"s"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":125,"from":"fraction","to":"s"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/shutter-speed", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 125,
"from": "fraction",
"to": "s"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.shutter_speed",
"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. |
Technical notes
The browser tool runs free on your device; the prepaid API charges $0.002 per successful item when pipelines need the same contract from servers and automation.
Supported units and how the conversion is computed
The converter accepts six shutter-speed families under stable canonical codes: s for decimal exposure time in seconds, ms for milliseconds, us for microseconds including the micro sign aliases, fraction for the reciprocal form where the numeric value N means one over N of a second so one hundred twenty-five becomes one one-hundred-twenty-fifth of a second, tv for the APEX time value used in additive exposure systems, and stops for exposure stops relative to one second which share the same numeric bridge as APEX Tv. Friendly aliases such as seconds, milliseconds, reciprocal, apex, apex tv, exposure stops, and shutter fraction are normalized case-insensitively so forms and APIs can pass either short codes or full names. Every request converts the input into exposure time t in seconds, then from t into the target scale.
Request shape, response fields, and unknown-unit errors
When value is a simple ratio string such as one slash one hundred twenty-five, it is parsed as that quotient so clients can paste common fraction text into the value field. The error message names the bad field and lists the supported set so clients can correct forms without guessing. Zero and negative exposure times are rejected because photographic shutter duration must be positive and logarithms for APEX Tv are undefined for non-positive t. Send a JSON body with three required fields: value as a finite number, from as the source unit string, and to as the target unit string. Aliases amount, quantity, speed, and t are accepted for value; unit_from and source for from; unit_to and target for to. On success the response echoes the canonical from and to codes, human-readable from_label and to_label strings, the converted result, the intermediate seconds exposure time, a fraction_display string such as one slash one hundred twenty-five for UI cards, a short formula line suitable for display, the method tag shutter_speed_seconds_bridge, and the fixed list of units_supported. Missing value, non-finite numbers such as NaN or Infinity, non-positive times for s ms us and fraction, missing unit fields, and any token that does not map to a supported unit fail with invalid_input and are not charged after the engine rejects the request. Identical inputs always yield identical JSON because the path is pure arithmetic with no randomness, no remote lookup, and no dependence on the wall clock, which makes the endpoint safe to pin in continuous-integration goldens and SDK contract tests.
Browser use, API pricing, and photography workflows
Switch to the prepaid API when a photo education app, exposure companion, e-commerce listing tool, or studio pipeline must convert shutter speeds at scale under a stable KIT contract at $0.002 per successful item; validation failures that raise invalid_input do not consume balance after rejection. Pair this endpoint with an exposure-value calculator when a product pipeline needs both time conversion and full EV arithmetic from aperture and ISO, or call it alone when search traffic is specifically for shutter speed conversion—fraction, seconds, stops, APEX Tv—rather than a general photography toolkit. Authors shipping mobile apps or chatbots can map the result, seconds, and fraction_display fields directly into cards that show both the number and the reciprocal photographers expect on paper.
Integration use cases
Apps and automated pipelines
Call a prepaid, deterministic shutter-speed API from education and studio tools with clear invalid_input on unknown units.