commands.sh
⌘K

curl

all

Transfers data from or to a server. Supports most protocols, including HTTP, HTTPS, FTP, SCP, etc. See also: `wcurl`, `wget`.

More info →

Options (10)

-L, --locationboolean

Make an HTTP GET request, follow any `3xx` redirects, and dump the reply headers and contents to `stdout`

Example: curl {{[-L|--location]}} {{[-D|--dump-header]}} - {{https://example.com}}
-D, --dump-headerboolean

Make an HTTP GET request, follow any `3xx` redirects, and dump the reply headers and contents to `stdout`

Example: curl {{[-L|--location]}} {{[-D|--dump-header]}} - {{https://example.com}}
-O, --remote-nameboolean

Download a file, saving the output under the filename indicated by the URL

Example: curl {{[-O|--remote-name]}} {{https://example.com/filename.zip}}
-X, --requestboolean

Send form-encoded data (POST request of type `application/x-www-form-urlencoded`). Use `--data @file_name` or `--data @'-'` to read from `stdin`

Example: curl {{[-X|--request]}} POST {{[-d|--data]}} '{{name=bob}}' {{http://example.com/form}}
-d, --databoolean

Send form-encoded data (POST request of type `application/x-www-form-urlencoded`). Use `--data @file_name` or `--data @'-'` to read from `stdin`

Example: curl {{[-X|--request]}} POST {{[-d|--data]}} '{{name=bob}}' {{http://example.com/form}}
-k, --insecureboolean

Send a request with an extra header, using a custom HTTP method and over a proxy (such as BurpSuite), ignoring insecure self-signed certificates

Example: curl {{[-k|--insecure]}} {{[-x|--proxy]}} {{http://127.0.0.1:8080}} {{[-H|--header]}} '{{Authorization: Bearer token}}' {{[-X|--request]}} {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}
-x, --proxyboolean

Send a request with an extra header, using a custom HTTP method and over a proxy (such as BurpSuite), ignoring insecure self-signed certificates

Example: curl {{[-k|--insecure]}} {{[-x|--proxy]}} {{http://127.0.0.1:8080}} {{[-H|--header]}} '{{Authorization: Bearer token}}' {{[-X|--request]}} {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}
-H, --headerboolean

Send a request with an extra header, using a custom HTTP method and over a proxy (such as BurpSuite), ignoring insecure self-signed certificates

Example: curl {{[-k|--insecure]}} {{[-x|--proxy]}} {{http://127.0.0.1:8080}} {{[-H|--header]}} '{{Authorization: Bearer token}}' {{[-X|--request]}} {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}
-E, --certboolean

Pass client certificate and private key for the request, skipping certificate validation

Example: curl {{[-E|--cert]}} {{client.pem}} --key {{key.pem}} {{[-k|--insecure]}} {{https://example.com}}
-v, --verboseboolean

Resolve a hostname to a custom IP address, with verbose output (similar to editing the `/etc/hosts` file for custom DNS resolution)

Example: curl {{[-v|--verbose]}} --resolve {{example.com}}:{{80}}:{{127.0.0.1}} {{http://example.com}}

Examples (8)

Make an HTTP GET request and dump the contents in `stdout`

curl https://example.com

Make an HTTP GET request, follow any `3xx` redirects, and dump the reply headers and contents to `stdout`

curl [-L|--location] [-D|--dump-header] - https://example.com

Download a file, saving the output under the filename indicated by the URL

curl [-O|--remote-name] https://example.com/filename.zip

Send form-encoded data (POST request of type `application/x-www-form-urlencoded`). Use `--data @file_name` or `--data @'-'` to read from `stdin`

curl [-X|--request] POST [-d|--data] 'name=bob' http://example.com/form

Send a request with an extra header, using a custom HTTP method and over a proxy (such as BurpSuite), ignoring insecure self-signed certificates

curl [-k|--insecure] [-x|--proxy] http://127.0.0.1:8080 [-H|--header] 'Authorization: Bearer token' [-X|--request] GET|PUT|POST|DELETE|PATCH|... https://example.com

Send data in JSON format, specifying the appropriate Content-Type header

curl [-d|--data] '{"name":"bob"}' [-H|--header] 'Content-Type: application/json' http://example.com/users/1234

Pass client certificate and private key for the request, skipping certificate validation

curl [-E|--cert] client.pem --key key.pem [-k|--insecure] https://example.com

Resolve a hostname to a custom IP address, with verbose output (similar to editing the `/etc/hosts` file for custom DNS resolution)

curl [-v|--verbose] --resolve example.com:80:127.0.0.1 http://example.com
made by @shridhargupta | data from tldr-pages