ForHosting KIT · Web Scraping & Monitoring

Download time calculator

Estimate how long a file takes to transfer: 10 MB over a 10 Mbps line takes 8 seconds, not 1, because the speed counts bits and the file counts bytes. Decimal and binary units both work. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Size
10
Size unit
MB
Speed
10
Speed unit
Mbps
You get
Seconds
8
Hours
0
Minutes
0
Remaining seconds
8

free online

Why bits and bytes change the answer

Connection speeds are usually quoted in bits per second, while file sizes are given in bytes, and mixing the two is the most common reason an estimate goes wrong. A byte is eight bits, so speeds in bits per second, such as bps, Kbps, Mbps or Gbps, are divided by eight to reach bytes per second, while speeds already in bytes per second are used as they are. That is why 10 MB over a 10 Mbps line takes 8 seconds rather than one: 10 megabytes are 80 megabits. If you do not change anything, the size is read in MB and the speed in Mbps, which matches how home internet speeds are normally advertised.

File units and how to read the result

File sizes come in two families. The decimal units KB, MB, GB and TB grow by powers of 1000, so a MB is 1,000,000 bytes. The binary units KiB, MiB, GiB and TiB grow by powers of 1024, so a MiB is 1,048,576 bytes. The result gives the total time in seconds, rounded to three decimals, the same time split into hours, minutes and seconds, and a short label such as 1h 5m 3s or simply 8s for quick transfers. It also shows the size in bytes and the speed in bytes per second, so you can verify the conversion. Use it before starting a backup or a large media file, or to compare plans before an upgrade.

From seconds to a readable duration

The human field is assembled from those parts: it shows hours only when present (for example 1h 5m 3s), minutes and seconds when under an hour, and just seconds for short transfers, exactly as the reference example turns 10 MB at 10 Mbps into seconds 8 and human 8s. This gives you both a precise numeric duration for further math and a compact label ready to display in a UI or log line, without any locale-specific formatting.

Sizing a transfer

Estimate how long a backup, ISO or media file will take on a given connection before you start it, using the units your bandwidth is quoted in.

Bandwidth planning

Compare durations across Mbps tiers or byte-per-second links to justify an upgrade, reading the resolved bytes-per-second to check the math.

Why does 10 MB at 10 Mbps take 8 seconds, not 1?

Mbps is megabits per second; the tool divides bit-based speeds by 8. 10 MB is 80 megabits, so at 10 Mbps it is 8 seconds.

What is the human field?

A readable duration string like 8s or 1h 5m 3s, built from the hours, minutes and secs breakdown with correct carry.

Does it account for overhead or latency?

No. It models ideal throughput only, so real transfers may be slower. Inputs are validated and results are deterministic.

What is the difference between MB and MiB for a file?

MB is a decimal unit of 1,000,000 bytes, while MiB is a binary unit of 1,048,576 bytes. Choose the unit your file size is really shown in, because picking the other one shifts the estimate.

How can I compare download times across internet plans?

Keep the same file size and change only the speed, for example between Mbps tiers. The tool also shows the size in bytes and the speed in bytes per second, so you can check the conversion behind each estimate.

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.

POSThttps://api.kit.forhosting.com/dev/download-time

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.

curl -X POST https://api.kit.forhosting.com/dev/download-time \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"size":10,"speed":10}'
{
  "size": 10,
  "speed": 10
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.download_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.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Estimates how long a transfer takes by converting size (with size_unit) to bytes and speed (with speed_unit) to bytes per second, dividing to get seconds, and returning an h/m/s breakdown plus a human-readable string.

Units: decimal, binary, bits and bytes

Size is read with size_unit, which accepts decimal units B, KB, MB, GB and TB (powers of 1000) as well as binary units KiB, MiB, GiB and TiB (powers of 1024), so a MB is 1,000,000 bytes while a MiB is 1,048,576. Speed is read with speed_unit and handles the bit-versus-byte distinction that trips up most estimates: bit-per-second units bps, Kbps, Mbps and Gbps are divided by 8 to reach bytes per second, while byte-per-second units Bps, KBps, MBps and GBps are used directly. That is why 10 MB over a 10 Mbps line is not one second but eight: 10 MB is 80 megabits. The defaults are MB for size and Mbps for speed, matching how consumer bandwidth is usually quoted, and the output reports the resolved size_bytes and speed_bytes_per_sec so you can verify the conversion.

From seconds to a readable duration

After converting, the tool computes size_bytes divided by speed_bytes_per_sec to get raw seconds, then rounds that to three decimals as the seconds field. It splits the total into whole hours and minutes and a fractional secs value, carrying overflow correctly so a secs that reaches 60 rolls into minutes and a minutes that reaches 60 rolls into hours.

Validation, rounding and determinism

Both size and speed must be finite numbers strictly greater than zero, and size_unit and speed_unit must be one of the enumerated keys; an unknown unit or a non-positive number throws a typed invalid_input error naming the problem, and a zero effective speed is guarded against division by zero. The calculation is a pure model of ideal throughput with no protocol overhead, latency, congestion or ramp-up, which keeps it fully deterministic: identical inputs always yield identical JSON.

In-app estimates via API

Call the endpoint to show users a live 'about 8s' style estimate, feeding the human field straight into the interface.

Does it support binary units like MiB and GiB?

Yes. size_unit accepts decimal B/KB/MB/GB/TB (x1000) and binary KiB/MiB/GiB/TiB (x1024); speed_unit covers bps to Gbps and Bps to GBps.

Is the browser tool free?

Yes, the widget is free (tier A). The API runs on prepaid KIT balance from $0.002, charging only successful tasks.

Read the full KIT documentation →