xref: /curl/docs/cmdline-opts/rate.md (revision b80798c2)
1---
2c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
3SPDX-License-Identifier: curl
4Long: rate
5Arg: <max request rate>
6Help: Request rate for serial transfers
7Category: connection global
8Added: 7.84.0
9Multi: single
10Scope: global
11See-also:
12  - limit-rate
13  - retry-delay
14Example:
15  - --rate 2/s $URL ...
16  - --rate 3/h $URL ...
17  - --rate 14/m $URL ...
18---
19
20# `--rate`
21
22Specify the maximum transfer frequency you allow curl to use - in number of
23transfer starts per time unit (sometimes called request rate). Without this
24option, curl starts the next transfer as fast as possible.
25
26If given several URLs and a transfer completes faster than the allowed rate,
27curl waits until the next transfer is started to maintain the requested
28rate. This option has no effect when --parallel is used.
29
30The request rate is provided as "N/U" where N is an integer number and U is a
31time unit. Supported units are 's' (second), 'm' (minute), 'h' (hour) and 'd'
32/(day, as in a 24 hour unit). The default time unit, if no "/U" is provided,
33is number of transfers per hour.
34
35If curl is told to allow 10 requests per minute, it does not start the next
36request until 6 seconds have elapsed since the previous transfer was started.
37
38This function uses millisecond resolution. If the allowed frequency is set
39more than 1000 per second, it instead runs unrestricted.
40
41When retrying transfers, enabled with --retry, the separate retry delay logic
42is used and not this setting.
43
44Starting in version 8.10.0, you can specify number of time units in the rate
45expression. Make curl do no more than 5 transfers per 15 seconds with "5/15s"
46or limit it to 3 transfers per 4 hours with "3/4h". No spaces allowed.
47