curl is an amazing tool to perform HTTP calls.

Some less known features of it are:

URL templates

curl accepts a certain level of “templating” in its URLs:


Will generate the following (sequential) HTTP calls:

However, these will be sequential and executed one at a time. If we wanted to parallelize them, we can make use of the -P parameter (that will allow multiple connections), but curl needs to be called through xargs.

Different options for multiple calls

curl accepts multiple URLs to perform requests:


However, the same options will apply for each of them. If we wanted to change them, we can use the -: or --next option:

curl -: -X 'POST'