Grilling Fish Time by Thickness Calculator
This grilling fish time by thickness calculator turns one practical kitchen measurement into a clear time estimate.
Run — free
Measure the fish at its thickest point, enter that thickness in inches, and the calculator applies the familiar ten-minutes-per-inch rule. The result is a total estimated grilling time, not a guarantee of doneness. Use it to plan when to turn, check, and serve fillets, steaks, or a whole fish while still confirming doneness with appearance and an appropriate food thermometer.
Measure the thickest part before the fish reaches the grill
For a useful estimate, measure the fish where it is thickest rather than averaging its entire shape. Lay a fillet or steak flat and check the vertical distance from the cooking surface to the highest point. For a whole fish, measure through the deepest part of the body. Enter that measurement in inches as thickness_inches. Skin, a thin tail, and tapered edges do not change which point controls the estimate, because the thickest portion usually takes longest to cook. If several pieces differ greatly in size, calculate each thickness separately or group pieces with similar dimensions. A ruler gives a more repeatable input than guessing, especially for portions thicker than one inch. The calculator accepts decimal values, so three quarters of an inch can be entered as 0.75 and one and a half inches as 1.5. Thickness must be a finite number greater than zero; zero, negative values, missing values, and text are rejected instead of producing a misleading cooking time.
Understand what the ten-minutes-per-inch result means
The calculation is deliberately simple and deterministic: total estimated grilling time equals thickness in inches multiplied by ten minutes. A one-inch portion therefore receives a ten-minute estimate, while a 1.5-inch portion receives fifteen minutes. The result represents the full cooking time, not the time for each side. If the fish is turned once, a practical starting point is to spend roughly half the estimate on the first side and the remainder on the second, while allowing for the grill and the fish to behave differently. The rule is a planning aid, not a sensor. Grill temperature, starting temperature, bone structure, skin, foil, direct versus indirect heat, and the species and cut can all affect the actual finish time. Begin checking before the estimate expires when working with delicate or thin fish. Continue only as needed. The returned number is not rounded to a whole minute, so you can decide whether your kitchen routine calls for seconds, half minutes, or a conservative whole-minute checkpoint.
Use the estimate safely and adjust with observation
Treat the calculated time as the center of a checking window rather than an instruction to ignore the food until a timer rings. Preheat the grill, clean and oil the grate as appropriate, and keep the setup consistent when comparing results across meals. Start checking a little early, particularly for lean fillets that can dry quickly or for portions measured near a tapered section. Fish commonly changes from translucent toward opaque and separates more readily into flakes as it cooks, but visual signs alone can be uncertain. Follow the food-safety guidance applicable to your location and use a clean food thermometer when a verified internal temperature is important. After cooking, note the thickness, grill conditions, and actual time that worked. That small record lets you refine future estimates for the same grill and cut without changing what this calculator promises. The tool does not account for frozen centers, stuffed fish, unusually low heat, smoking, or cooking in a closed packet; those methods may require a different process and closer monitoring.
What you can do with it
Plan a weeknight fillet
Convert a measured fillet thickness into a quick total-time estimate before preparing side dishes.
Coordinate mixed portions
Calculate differently sized fish portions separately so the thickest pieces can start first.
Set an early doneness check
Use the estimate to choose a sensible checkpoint while relying on observation and temperature for the final decision.
FAQ
What formula does the calculator use?
It multiplies the fish thickness in inches by 10 to estimate the total grilling time in minutes.
Is the result the time per side?
No. It is the estimated total grilling time. If turning once, you can begin with roughly half on each side and adjust while checking doneness.
Where should I measure the fish?
Measure at the thickest point, since that portion generally controls how long the fish needs.
Can I enter a fraction of an inch?
Yes. Enter it as a decimal, such as 0.75 for three quarters of an inch.
Does the estimate guarantee that the fish is done?
No. Grill heat, cut, starting temperature, and other conditions vary. Check the fish and follow appropriate food-safety guidance.
What does an API request cost?
The API costs $0.002 per request, and the browser calculator can run locally on this page.
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/cook/grill-fish-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"thickness_inches":1.5}'const res = await fetch("https://api.kit.forhosting.com/cook/grill-fish-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"thickness_inches": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/grill-fish-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"thickness_inches": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/grill-fish-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"thickness_inches":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"thickness_inches":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/grill-fish-time", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"thickness_inches": 1.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.grill_fish_time",
"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. |