OS Manuals

/usr/bin/curl

URL retrieval utility and library

From curl 8.23.0-r3 (os), captured 2026-11-05 by running curl --help (exit 0). permalink

Usage: curl [options...] <url>
 -d, --data <data>            Post data
 -f, --fail                   Fail fast with no output on HTTP errors
 -I, --head                   Show document info only
 -H, --header <header/@file>  Pass custom header(s) to server
 -h, --help <subject>         Get help for commands
 -o, --output <file>          Write to file instead of stdout
 -O, --remote-name            Write output to file named as remote file
 -i, --show-headers           Show response headers in output
 -s, --silent                 Silent mode
 -T, --upload-file <file>     Transfer local FILE to destination
 -u, --user <user:password>   Server user and password
 -A, --user-agent <name>      Send User-Agent <name> to server
 -v, --verbose                Make the operation more talkative
 -V, --version                Show version number and quit

This is not the full help; this menu is split into categories.
Use "--help category" to get an overview of all categories, which are:
auth, connection, curl, deprecated, dns, file, ftp, global, http, imap, ldap, mqtt, output, pop3,
post, proxy, scp, sftp, smtp, ssh, telnet, tftp, timeout, tls, upload, verbose.
Use "--help all" to list all options
Use "--help [option]" to view documentation for a given option
Options (271)
OptionDescriptionSource
-d, --data data(HTTP MQTT) Send the specified data to a server.help + man
-f, --fail(HTTP) Fail with error code 22 and with no response body output at all for HTTP transfers returning HTTP response codes at 400 or greater.help + man
-I, --head(HTTP FTP FILE) Fetch the headers only.help + man
-H, --header header/@file(HTTP IMAP SMTP) Extra header to include in information sent.help + man
-h, --help subjectGet help for commandshelp + man
-o, --output fileWrite output to the given file instead of stdout.help + man
-O, --remote-nameWrite output to a local file named like the remote file we get.help + man
-i, --show-headers(HTTP FTP) Show response headers in the output.help + man
-s, --silentSilent or quiet mode.help + man
-T, --upload-file fileUpload the specified local file to the remote URL.help + man
-u, --user user:passwordSpecify the username and password to use for server authentication.help + man
-A, --user-agent name(HTTP) Specify the User-Agent string to send to the HTTP server.help + man
-v, --verboseMake curl output verbose information during the operation.help + man
-V, --versionDisplay information about curl and the libcurl version it uses.help + man
--abstract-unix-socket path(HTTP) Connect to the server through an abstract Unix domain socket, instead of using the network. (in the manual page but not in --help)man
--alt-svc filename(HTTPS) Enable the alt-svc parser. (in the manual page but not in --help)man
--anyauth(HTTP) Figure out authentication method automatically, and use the most secure one the remote site claims to support. (in the manual page but not in --help)man
-a, --append(FTP SFTP) When used in an upload, this option makes curl append to the target file instead of overwriting it. (in the manual page but not in --help)man
--basic(HTTP) Use HTTP Basic authentication with the remote host. (in the manual page but not in --help)man
--ca-native(TLS) Use the operating system's native CA store for certificate verification. (in the manual page but not in --help)man
--cacert file(TLS) Use the specified certificate file to verify the peer. (in the manual page but not in --help)man
--capath dir(TLS) Use the specified certificate directory to verify the peer. (in the manual page but not in --help)man
--cert-status(TLS) Verify the status of the server certificate by using the Certificate Status Request (aka. (in the manual page but not in --help)man
--cert-type type(TLS) Set type of the provided client certificate. (in the manual page but not in --help)man
--ciphers list(TLS) Specify which cipher suites to use in the connection if it negotiates TLS 1.2 (1.1, 1.0). (in the manual page but not in --help)man
--compressed(HTTP) Request a compressed response using one of the algorithms curl supports, and automatically decompress the content. (in the manual page but not in --help)man
--compressed-ssh(SCP SFTP) Enable SSH compression. (in the manual page but not in --help)man
-K, --config fileSpecify a text file to read curl arguments from. (in the manual page but not in --help)man
--connect-timeout secondsMaximum time in seconds that you allow curl's connection to take. (in the manual page but not in --help)man
--connect-to HOST1:PORT1:HOST2:PORT2For a request intended for the "HOST1:PORT1" pair, connect to "HOST2:PORT2" instead. (in the manual page but not in --help)man
-C, --continue-at offsetResume a previous transfer from the given byte offset. (in the manual page but not in --help)man
-b, --cookie data|filename(HTTP) This option has two slightly separate cookie sending functions. (in the manual page but not in --help)man
-c, --cookie-jar filename(HTTP) Specify to which file you want curl to write all cookies after a completed operation. (in the manual page but not in --help)man
--create-dirsWhen used in conjunction with the --output option, curl creates the necessary local directory hierarchy as needed. (in the manual page but not in --help)man
--create-file-mode mode(SFTP SCP FILE) When curl is used to create files remotely using one of the supported protocols, this option allows the user to set which 'mode' to set on the file at creation time, instead of the… (in the manual page but not in --help)man
--crlf(FTP SMTP) Convert line feeds to carriage return plus line feeds in upload. (in the manual page but not in --help)man
--crlfile file(TLS) Provide a file using PEM format with a Certificate Revocation List that may specify peer certificates that are to be considered revoked. (in the manual page but not in --help)man
--curves list(TLS) Set specific curves to use during SSL session establishment according to RFC 8422, 5.1. (in the manual page but not in --help)man
--data-ascii data(HTTP) This option is an alias for --data. (in the manual page but not in --help)man
--data-binary data(HTTP) Post data exactly as specified with no extra processing whatsoever. (in the manual page but not in --help)man
--data-raw data(HTTP) Post data similarly to --data but without the special interpretation of the @ character. (in the manual page but not in --help)man
--data-urlencode data(HTTP) Post data, similar to the other --data options with the exception that this performs URL-encoding. (in the manual page but not in --help)man
--delegation LEVEL(GSS/kerberos) Set LEVEL what curl is allowed to delegate when it comes to user credentials. (in the manual page but not in --help)man
--digest(HTTP) Enable HTTP Digest authentication. (in the manual page but not in --help)man
-q, --disableIf used as the first parameter on the command line, the curlrc config file is not read or used. (in the manual page but not in --help)man
--disable-eprt(FTP) Disable the use of the EPRT and LPRT commands when doing active FTP transfers. (in the manual page but not in --help)man
--eprt canIf the server is accessed using IPv6, this option has no effect as EPRT is necessary then. (in the manual page but not in --help)man
--disable-epsv(FTP) Disable the use of the EPSV command when doing passive FTP transfers. (in the manual page but not in --help)man
--epsv canIf the server is an IPv6 host, this option has no effect as EPSV is necessary then. (in the manual page but not in --help)man
--disallow-username-in-urlExit with error if passed a URL containing a username. (in the manual page but not in --help)man
--dns-interface interface(DNS) Send outgoing DNS requests through the given interface. (in the manual page but not in --help)man
--dns-ipv4-addr address(DNS) Bind to a specific IP address when making IPv4 DNS requests, so that the DNS requests originate from this address. (in the manual page but not in --help)man
--dns-ipv6-addr address(DNS) Bind to a specific IP address when making IPv6 DNS requests, so that the DNS requests originate from this address. (in the manual page but not in --help)man
--dns-servers addresses(DNS) Set the list of DNS servers to be used instead of the system default. (in the manual page but not in --help)man
--doh-cert-status(DNS) Same as --cert-status but used for DoH (DNS-over-HTTPS). (in the manual page but not in --help)man
--doh-insecure(DNS) By default, every connection curl makes to a DoH server is verified to be secure before the transfer takes place. (in the manual page but not in --help)man
--doh-url URL(DNS) Specify which DNS-over-HTTPS (DoH) server to use to resolve hostnames, instead of using the default name resolver mechanism. (in the manual page but not in --help)man
--dump-ca-embed(TLS) Write the CA bundle embedded in curl to standard output, then quit. (in the manual page but not in --help)man
-D, --dump-header filename(HTTP FTP) Write the received protocol headers to the specified file. (in the manual page but not in --help)man
--ech config(HTTPS) Specify how to do ECH (Encrypted Client Hello). (in the manual page but not in --help)man
--egd-file file(TLS) Deprecated option (added in 7.84.0). (in the manual page but not in --help)man
--engine name(TLS) Select the OpenSSL crypto engine to use for cipher operations. (in the manual page but not in --help)man
--etag-compare file(HTTP) Make a conditional HTTP request for the specific ETag read from the given file by sending a custom If-None-Match header using the stored ETag. (in the manual page but not in --help)man
--etag-save file(HTTP) Save an HTTP ETag to the specified file. (in the manual page but not in --help)man
--expect100-timeout seconds(HTTP) Maximum time in seconds that you allow curl to wait for a 100-continue response when curl emits an Expects: 100-continue header in its request. (in the manual page but not in --help)man
--fail-earlyFail and exit on the first detected transfer error. (in the manual page but not in --help)man
--fail-with-body(HTTP) Return an error on server errors where the HTTP response code is 400 or greater). (in the manual page but not in --help)man
--false-start(TLS) No TLS backend currently supports this feature. (in the manual page but not in --help)man
--follow(HTTP) Instructs curl to follow HTTP redirects and to do the custom request method set with --request when following redirects as the HTTP specification says. (in the manual page but not in --help)man
-F, --form name=content(HTTP SMTP IMAP) For the HTTP protocol family, emulate a filled-in form in which a user has pressed the submit button. (in the manual page but not in --help)man
--form-escape(HTTP IMAP SMTP) Pass on names of multipart form fields and files using backslash-escaping instead of percent-encoding. (in the manual page but not in --help)man
--form-string name=string(HTTP SMTP IMAP) Similar to --form except that the value string for the named parameter is used literally. (in the manual page but not in --help)man
--ftp-account data(FTP) When an FTP server asks for "account data" after username and password has been provided, this data is sent off using the ACCT command. (in the manual page but not in --help)man
--ftp-alternative-to-user command(FTP) If authenticating with the USER and PASS commands fails, send this command. (in the manual page but not in --help)man
--ftp-create-dirs(FTP SFTP) When an FTP or SFTP URL/operation uses a path that does not currently exist on the server, the standard behavior of curl is to fail. (in the manual page but not in --help)man
--ftp-method method(FTP) Control what method curl should use to reach a file on an FTP(S) server. (in the manual page but not in --help)man
--ftp-pasv(FTP) Use passive mode for the data connection. (in the manual page but not in --help)man
-P, --ftp-port address(FTP) Reverse the default initiator/listener roles when connecting with FTP. (in the manual page but not in --help)man
--ftp-pret(FTP) Send a PRET command before PASV (and EPSV). (in the manual page but not in --help)man
--ftp-skip-pasv-ip(FTP) Do not use the IP address the server suggests in its response to curl's PASV command when curl connects the data connection. (in the manual page but not in --help)man
--ftp-ssl-ccc(FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after authenticating. (in the manual page but not in --help)man
--ftp-ssl-ccc-mode active/passive(FTP) Set the CCC mode. (in the manual page but not in --help)man
--ftp-ssl-control(FTP) Require SSL/TLS for the FTP login, clear for transfer. (in the manual page but not in --help)man
-G, --get(HTTP) When used, this option makes all data specified with --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. (in the manual page but not in --help)man
-g, --globoffSwitch off the URL globbing function. (in the manual page but not in --help)man
--happy-eyeballs-timeout-ms msSet the timeout for Happy Eyeballs. (in the manual page but not in --help)man
--haproxy-clientip ip(HTTP) Set a client IP in HAProxy PROXY protocol v1 header at the beginning of the connection. (in the manual page but not in --help)man
--haproxy-protocol(HTTP) Send a HAProxy PROXY protocol v1 header at the beginning of the connection. (in the manual page but not in --help)man
--hostpubmd5 md5(SFTP SCP) Pass a string containing 32 hexadecimal digits. (in the manual page but not in --help)man
--hostpubsha256 sha256(SFTP SCP) Pass a string containing a Base64-encoded SHA256 hash of the remote host's public key. (in the manual page but not in --help)man
--hsts filename(HTTPS) Enable HSTS for the transfer. (in the manual page but not in --help)man
--http0.9(HTTP) Accept an HTTP version 0.9 response. (in the manual page but not in --help)man
-0, --http1.0(HTTP) Use HTTP version 1.0 instead of using its internally preferred HTTP version. (in the manual page but not in --help)man
--http1.1(HTTP) Use HTTP version 1.1. (in the manual page but not in --help)man
--http2(HTTP) Use HTTP/2. (in the manual page but not in --help)man
--http2-prior-knowledge(HTTP) Issue a non-TLS HTTP request using HTTP/2 directly without HTTP/1.1 Upgrade. (in the manual page but not in --help)man
--http3(HTTP) Attempt HTTP/3 to the host in the URL, but fallback to earlier HTTP versions if the HTTP/3 connection establishment fails or is slow. (in the manual page but not in --help)man
--http3-only(HTTP) Instruct curl to use HTTP/3 to the host in the URL, with no fallback to earlier HTTP versions. (in the manual page but not in --help)man
--httpsig-algo algorithm(HTTP) WARNING: this option is experimental. (in the manual page but not in --help)man
--httpsig-headers components(HTTP) WARNING: this option is experimental. (in the manual page but not in --help)man
--httpsig-key key/file(HTTP) WARNING: this option is experimental. (in the manual page but not in --help)man
--httpsig-keyid id(HTTP) WARNING: this option is experimental. (in the manual page but not in --help)man
--ignore-content-length(FTP HTTP) For HTTP, ignore the Content-Length header. (in the manual page but not in --help)man
-k, --insecure(TLS SFTP SCP) By default, every secure connection curl makes is verified to be secure before the transfer takes place. (in the manual page but not in --help)man
--interface namePerform the operation using a specified interface. (in the manual page but not in --help)man
--ip-tos stringSet Type of Service (TOS) for IPv4 or Traffic Class for IPv6. (in the manual page but not in --help)man
--ipfs-gateway URL(IPFS) Specify which gateway to use for IPFS and IPNS URLs. (in the manual page but not in --help)man
-4, --ipv4Request only IPv4 addresses when resolving hostnames, and not for example any IPv6. (in the manual page but not in --help)man
-6, --ipv6Request only IPv6 addresses when resolving hostnames, and not for example any IPv4. (in the manual page but not in --help)man
--json data(HTTP) Send the specified JSON data in a POST request to the HTTP server. (in the manual page but not in --help)man
-j, --junk-session-cookies(HTTP) When curl is told to read cookies from a given file, this option makes it discard all session cookies. (in the manual page but not in --help)man
--keepalive-cnt integerSet the maximum number of keepalive probes TCP should send but get no response before dropping the connection. (in the manual page but not in --help)man
--keepalive-time secondsSet the time a connection needs to remain idle before sending keepalive probes and the time between individual keepalive probes. (in the manual page but not in --help)man
--key key(TLS SCP SFTP) Private key filename. (in the manual page but not in --help)man
--key-type type(TLS) Private key file type. (in the manual page but not in --help)man
--knownhosts file(SCP SFTP) When doing SCP and SFTP transfers, curl automatically checks a database containing identification for all hosts it has ever been used with to verify that the host it connects to is the… (in the manual page but not in --help)man
--krb level(FTP) Deprecated option (added in 8.17.0). (in the manual page but not in --help)man
--libcurl fileAppend this option to any ordinary curl command line, and you get libcurl-using C source code written to the file that does the equivalent of what your command-line operation does. (in the manual page but not in --help)man
--limit-rate speedSpecify the maximum transfer rate you want curl to use - for both downloads and uploads. (in the manual page but not in --help)man
-l, --list-only(FTP POP3 SFTP FILE) When listing an FTP directory, force a name-only view. (in the manual page but not in --help)man
--local-port rangeSet a preferred single number or range (FROM-TO) of local port numbers to use for the connection(s). (in the manual page but not in --help)man
-L, --location(HTTP) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option makes curl redo the request to the new… (in the manual page but not in --help)man
--location-trusted(HTTP) Instruct curl to follow HTTP redirects like --location, but permit curl to send credentials and other secrets along to other hosts than the initial one. (in the manual page but not in --help)man
--login-options options(IMAP LDAP POP3 SMTP) Specify the login options to use during server authentication. (in the manual page but not in --help)man
--mail-auth address(SMTP) Specify a single address. (in the manual page but not in --help)man
--mail-from address(SMTP) Specify a single address that the given mail should get sent from. (in the manual page but not in --help)man
--mail-rcpt address(SMTP) Specify a single email address, username or mailing list name. (in the manual page but not in --help)man
--mail-rcpt-allowfails(SMTP) When sending data to multiple recipients, by default curl aborts SMTP conversation if at least one of the recipients causes RCPT TO command to return an error. (in the manual page but not in --help)man
-M, --manualManual. (in the manual page but not in --help)man
--max-filesize bytes(FTP HTTP MQTT) When set to a non-zero value, it specifies the maximum size (in bytes) of a file to download. (in the manual page but not in --help)man
--max-redirs num(HTTP) Set the maximum number of redirections to follow. (in the manual page but not in --help)man
-m, --max-time secondsSet the maximum time in seconds that you allow each transfer to take. (in the manual page but not in --help)man
--metalinkThis option was previously used to specify a Metalink resource. (in the manual page but not in --help)man
--mptcpEnable the use of Multipath TCP (MPTCP) for connections. (in the manual page but not in --help)man
--negotiate(HTTP) Enable Negotiate (SPNEGO) authentication. (in the manual page but not in --help)man
-n, --netrcMake curl scan the .netrc file in the user's home directory for login name and password. (in the manual page but not in --help)man
--netrc-file filenameSet the netrc file to use. (in the manual page but not in --help)man
--netrc-optionalSimilar to --netrc, but this option makes the .netrc usage optional and not mandatory as the --netrc option does. (in the manual page but not in --help)man
--nextUse a separate operation for the following URL and associated options. (in the manual page but not in --help)man
--no-alpn(HTTPS) Disable the ALPN TLS extension. (in the manual page but not in --help)man
-N, --no-bufferDisable the buffering of the output stream. (in the manual page but not in --help)man
--no-clobberWhen used in conjunction with the --output, --remote-header-name, --remote-name, or --remote-name-all options, curl avoids overwriting files that already exist. (in the manual page but not in --help)man
--no-keepaliveDisable the use of keepalive messages on the TCP connection. (in the manual page but not in --help)man
--no-npn(HTTPS) curl never uses NPN, this option has no effect (added in 7.86.0). (in the manual page but not in --help)man
--no-progress-meterOption to switch off the progress meter output without muting or otherwise affecting warning and informational messages like --silent does. (in the manual page but not in --help)man
--no-sessionid(TLS) Disable curl's use of SSL session-ID caching. (in the manual page but not in --help)man
--noproxy no-proxy-listComma-separated list of hosts for which not to use a proxy, if one is specified. (in the manual page but not in --help)man
--ntlm(HTTP) Use NTLM authentication. (in the manual page but not in --help)man
--ntlm-wb(HTTP) Deprecated option (added in 8.8.0). (in the manual page but not in --help)man
--oauth2-bearer token(IMAP LDAP POP3 SMTP HTTP) Specify the Bearer Token for OAUTH 2.0 server authentication. (in the manual page but not in --help)man
--out-nullDiscard all response output of a transfer silently. (in the manual page but not in --help)man
--output-dir dirSpecify the directory in which files should be stored, when --remote-name or --output are used. (in the manual page but not in --help)man
-Z, --parallelMake curl perform all transfers in parallel as compared to the regular serial manner. (in the manual page but not in --help)man
--parallel-immediateWhen doing parallel transfers, this option instructs curl to prefer opening up more connections in parallel at once rather than waiting to see if new transfers can be added as multiplexed streams on… (in the manual page but not in --help)man
--parallel-max numWhen asked to do parallel transfers, using --parallel, this option controls the maximum amount of transfers to do simultaneously. (in the manual page but not in --help)man
--parallel-max-host numWhen asked to do parallel transfers, using --parallel, this option controls the maximum amount of concurrent connections curl is allowed to do to the same protocol + hostname + port number target. (in the manual page but not in --help)man
--pass phrase(TLS SCP SFTP) Passphrase for the private key used for SSH or TLS. (in the manual page but not in --help)man
--path-as-isDo not handle sequences of /../ or /./ in the given URL path. (in the manual page but not in --help)man
--pinnedpubkey hashes(TLS) Use the specified public key file (or hashes) to verify the peer. (in the manual page but not in --help)man
--post301(HTTP) Respect RFC 7231/6.4.2 and do not convert POST requests into GET requests when following a 301 redirect. (in the manual page but not in --help)man
--post302(HTTP) Respect RFC 7231/6.4.3 and do not convert POST requests into GET requests when following a 302 redirect. (in the manual page but not in --help)man
--post303(HTTP) Violate RFC 7231/6.4.4 and do not convert POST requests into GET requests when following 303 redirect. (in the manual page but not in --help)man
-#, --progress-barMake curl display transfer progress as a simple progress bar instead of the standard, more informational, meter. (in the manual page but not in --help)man
--proto protocolsLimit what protocols to allow for transfers. (in the manual page but not in --help)man
--proto-default protocolUse protocol for any provided URL missing a scheme. (in the manual page but not in --help)man
--proto-redir protocolsLimit what protocols to allow on redirects. (in the manual page but not in --help)man
--proxy-anyauthAutomatically pick a suitable authentication method when communicating with the given HTTP proxy. (in the manual page but not in --help)man
--proxy-basicUse HTTP Basic authentication when communicating with the given proxy. (in the manual page but not in --help)man
--proxy-ca-native(TLS) Use the operating system's native CA store for certificate verification of the HTTPS proxy. (in the manual page but not in --help)man
--proxy-cacert fileUse the specified certificate file to verify the HTTPS proxy. (in the manual page but not in --help)man
--proxy-capath dirSame as --capath but used in HTTPS proxy context. (in the manual page but not in --help)man
--proxy-cert-type typeSet type of the provided client certificate when using HTTPS proxy. (in the manual page but not in --help)man
--proxy-ciphers list(TLS) Same as --ciphers but used in HTTPS proxy context. (in the manual page but not in --help)man
--proxy-crlfile fileProvide filename for a PEM formatted file with a Certificate Revocation List that specifies peer certificates that are considered revoked when communicating with an HTTPS proxy. (in the manual page but not in --help)man
--proxy-digestUse HTTP Digest authentication when communicating with the given proxy. (in the manual page but not in --help)man
--proxy-header header/@file(HTTP) Extra header to include in the request when sending HTTP to a proxy. (in the manual page but not in --help)man
--proxy-http2(HTTP) Negotiate HTTP/2 with an HTTPS proxy. (in the manual page but not in --help)man
--proxy-http3(HTTP) Negotiate HTTP/3 with an HTTPS proxy. (in the manual page but not in --help)man
--proxy-insecureSame as --insecure but used in HTTPS proxy context. (in the manual page but not in --help)man
--proxy-key keySpecify the filename for your private key when using client certificates with your HTTPS proxy. (in the manual page but not in --help)man
--proxy-key-type typeSpecify the private key file type your --proxy-key provided private key uses. (in the manual page but not in --help)man
--proxy-negotiateUse HTTP Negotiate (SPNEGO) authentication when communicating with the given proxy. (in the manual page but not in --help)man
--proxy-ntlmUse HTTP NTLM authentication when communicating with the given proxy. (in the manual page but not in --help)man
--proxy-pass phrasePassphrase for the private key for HTTPS proxy client certificate. (in the manual page but not in --help)man
--proxy-pinnedpubkey hashes(TLS) Use the specified public key file (or hashes) to verify the proxy. (in the manual page but not in --help)man
--proxy-service-name nameSet the service name for SPNEGO when doing proxy authentication. (in the manual page but not in --help)man
--proxy-ssl-allow-beastDo not work around a security flaw in the TLS1.0 protocol known as BEAST when communicating to an HTTPS proxy. (in the manual page but not in --help)man
--proxy-ssl-auto-client-certSame as --ssl-auto-client-cert but used in HTTPS proxy context. (in the manual page but not in --help)man
--proxy-tls13-ciphers list(TLS) Same as --tls13-ciphers but used in HTTPS proxy context. (in the manual page but not in --help)man
--proxy-tlsauthtype typeDeprecated option. (in the manual page but not in --help)man
--proxy-tlspassword stringDeprecated option. (in the manual page but not in --help)man
--proxy-tlsuser nameDeprecated option. (in the manual page but not in --help)man
--proxy-tlsv1Use at least TLS version 1.x when negotiating with an HTTPS proxy. (in the manual page but not in --help)man
-U, --proxy-user user:passwordSpecify the username and password to use for proxy authentication. (in the manual page but not in --help)man
-p, --proxytunnelWhen an HTTP proxy is used --proxy, this option makes curl tunnel the traffic through the proxy. (in the manual page but not in --help)man
--pubkey key(SFTP SCP) Public key filename. (in the manual page but not in --help)man
-Q, --quote command(FTP SFTP) Send an arbitrary command to the remote FTP or SFTP server. (in the manual page but not in --help)man
--random-file fileDeprecated option. (in the manual page but not in --help)man
-r, --range range(HTTP FTP SFTP FILE) Retrieve a byte range (i.e. a partial document) from an HTTP/1.1, FTP or SFTP server or a local FILE. (in the manual page but not in --help)man
-500specifies the last 500 bytes (in the manual page but not in --help)man
--rate maxSpecify the maximum transfer frequency you allow curl to use - in number of transfer starts per time unit (sometimes called request rate). (in the manual page but not in --help)man
--raw(HTTP) When used, it disables all internal HTTP decoding of content or transfer encodings and instead makes them passed on unaltered, raw. (in the manual page but not in --help)man
-e, --referer URL(HTTP) Set the referrer URL in the HTTP request. (in the manual page but not in --help)man
-J, --remote-header-name(HTTP) Tell the --remote-name option to use the server-specified Content-Disposition filename instead of extracting a filename from the URL. (in the manual page but not in --help)man
--remote-name-allChange the default action for all given URLs to be dealt with as if --remote-name were used for each one. (in the manual page but not in --help)man
-R, --remote-timeMake curl attempt to figure out the timestamp of the remote file that is getting downloaded, and if that is available make the local file get that same timestamp. (in the manual page but not in --help)man
--remove-on-errorRemove the output file if an error occurs. (in the manual page but not in --help)man
-X, --request methodChange the method to use when starting the transfer. (in the manual page but not in --help)man
--request-target path(HTTP) Use an alternative target (path) instead of using the path as provided in the URL. (in the manual page but not in --help)man
--resolve canExamples: (in the manual page but not in --help)man
--retry numIf a transient error is returned when curl tries to perform a transfer, it retries this number of times before giving up. (in the manual page but not in --help)man
--retry-all-errorsRetry on any error. (in the manual page but not in --help)man
--retry-connrefusedIn addition to the other conditions, also consider ECONNREFUSED as a transient error for --retry. (in the manual page but not in --help)man
--retry-delay secondsMake curl sleep this amount of time before each retry when a transfer has failed with a transient error (it changes the default backoff time algorithm between retries). (in the manual page but not in --help)man
--retry-max-time secondsThe retry timer is reset before the first transfer attempt. (in the manual page but not in --help)man
--sasl-authzid identity(LDAP IMAP POP3 SMTP) Use this authorization identity (authzid), during SASL PLAIN authentication, in addition to the authentication identity (authcid) as specified by --user. (in the manual page but not in --help)man
--sasl-ir(LDAP IMAP POP3 SMTP) Enable initial response in SASL authentication. (in the manual page but not in --help)man
--service-name nameSet the service name for SPNEGO. (in the manual page but not in --help)man
-S, --show-errorWhen used with --silent, it makes curl show an error message if it fails. (in the manual page but not in --help)man
--sigalgs list(TLS) Set specific signature algorithms to use during SSL session establishment according to RFC 5246, 7.4.1.4.1. (in the manual page but not in --help)man
--skip-existingIf there is a local file present when a download is requested, the operation is skipped. (in the manual page but not in --help)man
--socks5-basicUse username/password authentication when connecting to a SOCKS5 proxy. (in the manual page but not in --help)man
--socks5-gssapi(GSS/kerberos) Use GSS-API authentication when connecting to a SOCKS5 proxy. (in the manual page but not in --help)man
--socks5-gssapi-nec(GSS/kerberos) As part of the GSS-API negotiation a protection mode is negotiated. (in the manual page but not in --help)man
--socks5-gssapi-service nameSet the service name for a socks server. (in the manual page but not in --help)man
-Y, --speed-limit speedIf a transfer is slower than this set speed (in bytes per second) for a given number of seconds, it gets aborted. (in the manual page but not in --help)man
-y, --speed-time secondsIf a transfer runs slower than speed-limit bytes per second during a speed-time period, the transfer is aborted. (in the manual page but not in --help)man
--ssl(FTP IMAP POP3 SMTP LDAP) Warning: this is considered an insecure option. (in the manual page but not in --help)man
--ssl-allow-beast(TLS) Do not work around a security flaw in the TLS1.0 protocol known as BEAST. (in the manual page but not in --help)man
--ssl-auto-client-cert(TLS) (Schannel) Automatically locate and use a client certificate for authentication, when requested by the server. (in the manual page but not in --help)man
--ssl-no-revoke(TLS) (Schannel) Disable certificate revocation checks. (in the manual page but not in --help)man
--ssl-reqd(FTP IMAP POP3 SMTP LDAP) Require SSL/TLS for the connection - often referred to as STARTTLS or STLS because of the involved commands. (in the manual page but not in --help)man
--ssl-revoke-best-effort(TLS) (Schannel) Ignore certificate revocation checks when they failed due to missing/offline distribution points for the revocation check lists. (in the manual page but not in --help)man
--ssl-sessions filename(TLS) WARNING: this option is experimental. (in the manual page but not in --help)man
-2, --sslv2(SSL) This option previously asked curl to use SSLv2, but is now ignored (added in 7.77.0). (in the manual page but not in --help)man
-3, --sslv3(SSL) This option previously asked curl to use SSLv3, but is now ignored (added in 7.77.0). (in the manual page but not in --help)man
--stderr fileRedirect all writes to stderr to the specified file instead. (in the manual page but not in --help)man
--styled-outputEnable automatic use of bold font styles when writing HTTP headers to the terminal. (in the manual page but not in --help)man
--suppress-connect-headersWhen --proxytunnel is used and a CONNECT request is made, do not output proxy CONNECT response headers. (in the manual page but not in --help)man
--tcp-fastopenEnable use of TCP Fast Open (RFC 7413). (in the manual page but not in --help)man
--tcp-nodelayTurn on the TCP_NODELAY option. (in the manual page but not in --help)man
-t, --telnet-option opt=val(TELNET) Pass options to the telnet protocol. (in the manual page but not in --help)man
--tftp-blksize value(TFTP) Set the TFTP BLKSIZE option (must be 512 or larger). (in the manual page but not in --help)man
--tftp-no-options(TFTP) Do not send TFTP options requests. (in the manual page but not in --help)man
-z, --time-cond time(HTTP FTP) Request a file that has been modified later than the given time and date, or one that has been modified before that time. (in the manual page but not in --help)man
--tls-earlydata(TLS) Enable the use of TLSv1.3 early data, also known as '0RTT' where possible. (in the manual page but not in --help)man
--tls-max VERSION(TLS) Set the maximum allowed TLS version. (in the manual page but not in --help)man
--tls13-ciphers list(TLS) Set which cipher suites to use in the connection if it negotiates TLS 1.3. (in the manual page but not in --help)man
--tlsauthtype type(TLS) Deprecated option. (in the manual page but not in --help)man
--tlspassword string(TLS) Deprecated option. (in the manual page but not in --help)man
--tlsuser name(TLS) Deprecated option. (in the manual page but not in --help)man
-1, --tlsv1(TLS) Use at least TLS version 1.x when negotiating with a remote TLS server. (in the manual page but not in --help)man
--tlsv1.0(TLS) Force curl to use TLS version 1.0 or later when connecting to a remote TLS server. (in the manual page but not in --help)man
--tlsv1.1(TLS) Force curl to use TLS version 1.1 or later when connecting to a remote TLS server. (in the manual page but not in --help)man
--tlsv1.2(TLS) Force curl to use TLS version 1.2 or later when connecting to a remote TLS server. (in the manual page but not in --help)man
--tlsv1.3(TLS) Force curl to use TLS version 1.3 or later when connecting to a remote TLS server. (in the manual page but not in --help)man
--tr-encoding(HTTP) Request a compressed Transfer-Encoding response using one of the algorithms curl supports, and uncompress the data while receiving it. (in the manual page but not in --help)man
--trace fileSave a full trace dump of all incoming and outgoing data, including descriptive information, in the given output file. (in the manual page but not in --help)man
--trace-ascii fileSave a full trace dump of all incoming and outgoing data, including descriptive information, in the given output file. (in the manual page but not in --help)man
--trace-config stringSet configuration for trace output. (in the manual page but not in --help)man
--trace-idsPrepend the transfer and connection identifiers to each trace or verbose line that curl displays. (in the manual page but not in --help)man
--trace-timePrepend a time stamp to each trace or verbose line that curl displays. (in the manual page but not in --help)man
--unix-socket path(HTTP) Connect to the server through this Unix domain socket, instead of using the network. (in the manual page but not in --help)man
--upload-flags flags(IMAP) Specify additional behavior to apply to uploaded files. (in the manual page but not in --help)man
--url url/fileSpecify a URL to fetch or send data to. (in the manual page but not in --help)man
--url-query dataAdd a piece of data, usually a name + value pair, to the end of the URL query part. (in the manual page but not in --help)man
-B, --use-ascii(FTP LDAP TFTP) Enable ASCII transfer mode. (in the manual page but not in --help)man
--variable canExample: (in the manual page but not in --help)man
--vlan-priority prioritySet VLAN priority as defined in IEEE 802.1Q. (in the manual page but not in --help)man
-w, --write-out formatMake curl display information on stdout after a completed transfer. (in the manual page but not in --help)man
--xattrStore metadata in the extended file attributes. (in the manual page but not in --help)man
Exit status (64) from the manual page
0Success.
1Unsupported protocol.
2Failed to initialize.
3URL malformed.
4A feature or option that was needed to perform the desired request was not enabled or was explicitly disabled at build-time.
5Could not resolve proxy.
6Could not resolve host.
7Failed to connect to host.
8Weird server reply.
9FTP access denied.
10FTP accept failed.
11FTP weird PASS reply.
12During an active FTP session while waiting for the server to connect back to curl, the timeout expired.
13FTP weird PASV reply, curl could not parse the reply sent to the PASV request.
14FTP weird 227 format.
15FTP cannot use host.
16HTTP/2 error.
17FTP could not set binary.
18Partial file.
19FTP could not download/access the given file, the RETR (or similar) command failed.
21FTP quote error.
22HTTP page not retrieved.
23Write error.
25Failed starting the upload.
26Read error.
27Out of memory.
28Operation timeout.
30FTP PORT failed.
31FTP could not use REST.
33HTTP range error.
34HTTP post error.
35SSL connect error.
36Bad download resume.
37FILE could not read file.
38LDAP cannot bind.
39LDAP search failed.
41Function not found.
42Aborted by callback.
43Internal error.
45Interface error.
47Too many redirects.
48Unknown option specified to libcurl.
49Malformed telnet option.
52The server did not reply anything, which here is considered an error.
53SSL crypto engine not found.
54Cannot set SSL crypto engine as default.
55Failed sending network data.
56Failure in receiving network data.
58Problem with the local certificate.
59Could not use specified SSL cipher.
60Peer certificate cannot be authenticated with known CA certificates.
61Unrecognized transfer encoding.
63Maximum file size exceeded.
64Requested FTP SSL level failed.
65Sending the data requires a rewind that failed.
66Failed to initialize SSL Engine.
67The username, password, or similar was not accepted and curl failed to log in.
68File not found on TFTP server.
69Permission problem on TFTP server.
70Out of disk space on TFTP server.
71Illegal TFTP operation.
72Unknown TFTP transfer ID.
73File already exists (TFTP).
74No such user (TFTP).

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.