--- /dev/null
+#!/usr/bin/perl
+# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# SPDX-License-Identifier: curl
+#
+# Input: a cmdline docs markdown, it gets modfied *in place*
+#
+# The main purpose is to strip off the leading meta-data part, but also to
+# clean up whatever else the spell checker might have a problem with that we
+# still deem is fine.
+
+my $header = 1;
+while(1) {
+ # set this if the markdown has no meta-data header to skip
+ if($ARGV[0] eq "--no-header") {
+ shift @ARGV;
+ $header = 0;
+ }
+ else {
+ last;
+ }
+}
+
+my $f = $ARGV[0];
+
+open(F, "<$f") or die;
+
+my $ignore = $header;
+my $sepcount = 0;
+my @out;
+while(<F>) {
+ if(/^---/ && $header) {
+ if(++$sepcount == 2) {
+ $ignore = 0;
+ }
+ next;
+ }
+ next if($ignore);
+
+ # strip out all long command line options
+ $_ =~ s/--[a-z0-9-]+//g;
+
+ # strip out https URLs, we don't want them spellchecked
+ $_ =~ s!https://[a-z0-9\#_/.-]+!!gi;
+
+ push @out, $_;
+}
+close(F);
+
+open(O, ">$f") or die;
+print O @out;
+close(O);
backends
backoff
backticks
+balancers
Baratov
basename
bashrc
makefiles
malloc
mallocs
+manpage
maprintf
Marek
Mavrogiannopoulos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
+ name: checkout
+
+ - name: trim the cmdline docs markdown files
+ run: find docs/cmdline-opts -name "*.md" ! -name "_*" ! -name MANPAGE.md | xargs -n1 ./.github/scripts/cleancmd.pl
+
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: 'yes'
perl -pi -e 's/\-\-[\a-z0-9-]*//ig' docs/curl.md
perl -pi -e 's!https://[a-z0-9%/.-]*!!ig' docs/curl.md
+ - name: trim the cmdline docs markdown files
+ run: find docs/cmdline-opts -name "*.md" ! -name "_*" ! -name MANPAGE.md | xargs -n1 ./.github/scripts/cleancmd.pl
+
+ - name: trim the cmdline docs markdown _*.md files
+ run: find docs/cmdline-opts -name "_*.md" | xargs -n1 ./.github/scripts/cleancmd.pl --no-header
+
- name: setup the custom wordlist
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
This is the curl man page generator. It generates a single nroff man page
output from the set of sources files in this directory.
-There is one source file for each supported command line option. The output
-gets `page-header` prepended and `page-footer` appended. The format is
-described below.
+The `mainpage.idx` file lists all files that are rendered in that order to
+produce the output. The magic `%options` keyword inserts all command line
+options documented.
+
+The `%options` documentation is created with one source file for each
+supported command line option.
+
+The documentation file format is described below. It is meant to look similar
+to markdown which is why it uses `.md` file extensions.
## Option files
Each command line option is described in a file named `<long name>.d`, where
option name is written without any prefixing dashes. Like the file name for
-the -v, --verbose option is named `verbose.d`.
+the `-v, --verbose` option is named `verbose.d`.
+
+Each file has a set of meta-data in the top of the file, followed by a body of
+text.
-Each file has a set of meta-data and a body of text.
+The documentation files that do not document options have no meta-data part.
+
+A line that starts with `<!--` is a comment. It should also end with `-->`.
### Meta-data
+ --- (start of meta-data)
Added: (version number in which this was added)
Arg: (the argument the option takes)
c: (copyright line)
- Example: (example command line, without "curl" and can use `$URL`)
+ Example:
+ - (an example command line, without "curl" and can use `$URL`)
+ - (another example)
Experimental: yes (if so)
Help: (short text for the --help output for this option)
Long: (long form name, without dashes)
Protocols: (space separated list for which protocols this option works)
Requires: (space separated list of features this requires, no dashes)
Scope: global (if the option is global)
- See-also: (space separated list of related options, no dashes)
+ See-also:
+ - (a related option, no dashes)
+ - (another related option, no dashes)
Short: (single letter, without dash)
SPDX-License-Identifier: curl
Tags: (space separated list)
Text that is prefixed with a space is treated like an "example" and gets
output in monospace.
-Within the body, describe a lite of items like this:
+Within the body, describe a list of items like this:
## item 1
description
##
-## Header and footer
+### Headers
+
+The `#` header can be used by non-option files and it produces produces a
+`.SH` output.
+
+If the `#` header is used for a command line option file, that header is
+simply ignored in the generated output. It can still serve a purpose in the
+source file as it helps the user identify what option the file is for.
-`page-header` is the file that is output before the generated options output
-for the master man page.
+### Variables
-`page-footer` is appended after all the individual options.
+There are three different "variables" that can be used when creating the
+output. They need to be written within backticks in the source file (to escape
+getting spellchecked by CI jobs): `%DATE`, `%VERSION` and `%GLOBALS`.
## Generate
include Makefile.inc
-EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(OTHERPAGES) CMakeLists.txt
+EXTRA_DIST = $(DPAGES) MANPAGE.md gen.pl $(SUPPORT) CMakeLists.txt mainpage.idx
GEN = $(GN_$(V))
GN_0 = @echo " GENERATE" $@;
all: $(MANPAGE)
-$(MANPAGE): $(DPAGES) $(OTHERPAGES) Makefile.inc gen.pl
+$(MANPAGE): $(DPAGES) $(SUPPORT) mainpage.idx Makefile.inc gen.pl
$(GEN)(rm -f $(MANPAGE) && cd $(srcdir) && @PERL@ ./gen.pl mainpage $(DPAGES) > $(builddir)/manpage.tmp && mv $(builddir)/manpage.tmp $(MANPAGE))
###########################################################################
# Shared between Makefile.am and CMakeLists.txt
-DPAGES = \
- abstract-unix-socket.d \
- alt-svc.d \
- anyauth.d \
- append.d \
- aws-sigv4.d \
- basic.d \
- ca-native.d \
- cacert.d \
- capath.d \
- cert-status.d \
- cert-type.d \
- cert.d \
- ciphers.d \
- compressed-ssh.d \
- compressed.d \
- config.d \
- connect-timeout.d \
- connect-to.d \
- continue-at.d \
- cookie-jar.d \
- cookie.d \
- create-dirs.d \
- create-file-mode.d \
- crlf.d \
- crlfile.d \
- curves.d \
- data-ascii.d \
- data-binary.d \
- data-raw.d \
- data-urlencode.d \
- data.d \
- delegation.d \
- digest.d \
- disable-eprt.d \
- disable-epsv.d \
- disable.d \
- disallow-username-in-url.d \
- dns-interface.d \
- dns-ipv4-addr.d \
- dns-ipv6-addr.d \
- dns-servers.d \
- doh-cert-status.d \
- doh-insecure.d \
- doh-url.d \
- dump-header.d \
- egd-file.d \
- engine.d \
- etag-compare.d \
- etag-save.d \
- expect100-timeout.d \
- fail-early.d \
- fail-with-body.d \
- fail.d \
- false-start.d \
- form-escape.d \
- form-string.d \
- form.d \
- ftp-account.d \
- ftp-alternative-to-user.d \
- ftp-create-dirs.d \
- ftp-method.d \
- ftp-pasv.d \
- ftp-port.d \
- ftp-pret.d \
- ftp-skip-pasv-ip.d \
- ftp-ssl-ccc-mode.d \
- ftp-ssl-ccc.d \
- ftp-ssl-control.d \
- get.d \
- globoff.d \
- happy-eyeballs-timeout-ms.d \
- haproxy-protocol.d \
- haproxy-clientip.d \
- head.d \
- header.d \
- help.d \
- hostpubmd5.d \
- hostpubsha256.d \
- hsts.d \
- http0.9.d \
- http1.0.d \
- http1.1.d \
- http2-prior-knowledge.d \
- http2.d \
- http3.d \
- http3-only.d \
- ignore-content-length.d \
- include.d \
- insecure.d \
- interface.d \
- ipfs-gateway.d \
- ipv4.d \
- ipv6.d \
- json.d \
- junk-session-cookies.d \
- keepalive-time.d \
- key-type.d \
- key.d \
- krb.d \
- libcurl.d \
- limit-rate.d \
- list-only.d \
- local-port.d \
- location-trusted.d \
- location.d \
- login-options.d \
- mail-auth.d \
- mail-from.d \
- mail-rcpt-allowfails.d \
- mail-rcpt.d \
- manual.d \
- max-filesize.d \
- max-redirs.d \
- max-time.d \
- metalink.d \
- negotiate.d \
- netrc-file.d \
- netrc-optional.d \
- netrc.d \
- next.d \
- no-alpn.d \
- no-buffer.d \
- no-clobber.d \
- no-keepalive.d \
- no-npn.d \
- no-progress-meter.d \
- no-sessionid.d \
- noproxy.d \
- ntlm-wb.d \
- ntlm.d \
- oauth2-bearer.d \
- output-dir.d \
- output.d \
- parallel-immediate.d \
- parallel-max.d \
- parallel.d \
- pass.d \
- path-as-is.d \
- pinnedpubkey.d \
- post301.d \
- post302.d \
- post303.d \
- preproxy.d \
- progress-bar.d \
- proto-default.d \
- proto-redir.d \
- proto.d \
- proxy-anyauth.d \
- proxy-basic.d \
- proxy-ca-native.d \
- proxy-cacert.d \
- proxy-capath.d \
- proxy-cert-type.d \
- proxy-cert.d \
- proxy-ciphers.d \
- proxy-crlfile.d \
- proxy-digest.d \
- proxy-header.d \
- proxy-http2.d \
- proxy-insecure.d \
- proxy-key-type.d \
- proxy-key.d \
- proxy-negotiate.d \
- proxy-ntlm.d \
- proxy-pass.d \
- proxy-pinnedpubkey.d \
- proxy-service-name.d \
- proxy-ssl-allow-beast.d \
- proxy-ssl-auto-client-cert.d \
- proxy-tls13-ciphers.d \
- proxy-tlsauthtype.d \
- proxy-tlspassword.d \
- proxy-tlsuser.d \
- proxy-tlsv1.d \
- proxy-user.d \
- proxy.d \
- proxy1.0.d \
- proxytunnel.d \
- pubkey.d \
- quote.d \
- random-file.d \
- range.d \
- rate.d \
- raw.d \
- referer.d \
- remote-header-name.d \
- remote-name-all.d \
- remote-name.d \
- remote-time.d \
- remove-on-error.d \
- request-target.d \
- request.d \
- resolve.d \
- retry-all-errors.d \
- retry-connrefused.d \
- retry-delay.d \
- retry-max-time.d \
- retry.d \
- sasl-authzid.d \
- sasl-ir.d \
- service-name.d \
- show-error.d \
- silent.d \
- socks4.d \
- socks4a.d \
- socks5-basic.d \
- socks5-gssapi-nec.d \
- socks5-gssapi-service.d \
- socks5-gssapi.d \
- socks5-hostname.d \
- socks5.d \
- speed-limit.d \
- speed-time.d \
- ssl-allow-beast.d \
- ssl-auto-client-cert.d \
- ssl-no-revoke.d \
- ssl-reqd.d \
- ssl-revoke-best-effort.d \
- ssl.d \
- sslv2.d \
- sslv3.d \
- stderr.d \
- styled-output.d \
- suppress-connect-headers.d \
- tcp-fastopen.d \
- tcp-nodelay.d \
- telnet-option.d \
- tftp-blksize.d \
- tftp-no-options.d \
- time-cond.d \
- tls-max.d \
- tls13-ciphers.d \
- tlsauthtype.d \
- tlspassword.d \
- tlsuser.d \
- tlsv1.0.d \
- tlsv1.1.d \
- tlsv1.2.d \
- tlsv1.3.d \
- tlsv1.d \
- tr-encoding.d \
- trace-ascii.d \
- trace-config.d \
- trace-ids.d \
- trace-time.d \
- trace.d \
- unix-socket.d \
- upload-file.d \
- url.d \
- url-query.d \
- use-ascii.d \
- user-agent.d \
- user.d \
- variable.d \
- verbose.d \
- version.d \
- write-out.d \
- xattr.d
+SUPPORT = \
+ _AUTHORS.md \
+ _BUGS.md \
+ _DESCRIPTION.md \
+ _ENVIRONMENT.md \
+ _EXITCODES.md \
+ _FILES.md \
+ _GLOBBING.md \
+ _NAME.md \
+ _OPTIONS.md \
+ _OUTPUT.md \
+ _PROGRESS.md \
+ _PROTOCOLS.md \
+ _PROXYPREFIX.md \
+ _SEEALSO.md \
+ _SYNOPSIS.md \
+ _URL.md \
+ _VARIABLES.md \
+ _VERSION.md \
+ _WWW.md
-OTHERPAGES = page-footer page-header
+DPAGES = \
+ abstract-unix-socket.md \
+ alt-svc.md \
+ anyauth.md \
+ append.md \
+ aws-sigv4.md \
+ basic.md \
+ ca-native.md \
+ cacert.md \
+ capath.md \
+ cert-status.md \
+ cert-type.md \
+ cert.md \
+ ciphers.md \
+ compressed-ssh.md \
+ compressed.md \
+ config.md \
+ connect-timeout.md \
+ connect-to.md \
+ continue-at.md \
+ cookie-jar.md \
+ cookie.md \
+ create-dirs.md \
+ create-file-mode.md \
+ crlf.md \
+ crlfile.md \
+ curves.md \
+ data-ascii.md \
+ data-binary.md \
+ data-raw.md \
+ data-urlencode.md \
+ data.md \
+ delegation.md \
+ digest.md \
+ disable-eprt.md \
+ disable-epsv.md \
+ disable.md \
+ disallow-username-in-url.md \
+ dns-interface.md \
+ dns-ipv4-addr.md \
+ dns-ipv6-addr.md \
+ dns-servers.md \
+ doh-cert-status.md \
+ doh-insecure.md \
+ doh-url.md \
+ dump-header.md \
+ egd-file.md \
+ engine.md \
+ etag-compare.md \
+ etag-save.md \
+ expect100-timeout.md \
+ fail-early.md \
+ fail-with-body.md \
+ fail.md \
+ false-start.md \
+ form-escape.md \
+ form-string.md \
+ form.md \
+ ftp-account.md \
+ ftp-alternative-to-user.md \
+ ftp-create-dirs.md \
+ ftp-method.md \
+ ftp-pasv.md \
+ ftp-port.md \
+ ftp-pret.md \
+ ftp-skip-pasv-ip.md \
+ ftp-ssl-ccc-mode.md \
+ ftp-ssl-ccc.md \
+ ftp-ssl-control.md \
+ get.md \
+ globoff.md \
+ happy-eyeballs-timeout-ms.md \
+ haproxy-protocol.md \
+ haproxy-clientip.md \
+ head.md \
+ header.md \
+ help.md \
+ hostpubmd5.md \
+ hostpubsha256.md \
+ hsts.md \
+ http0.9.md \
+ http1.0.md \
+ http1.1.md \
+ http2-prior-knowledge.md \
+ http2.md \
+ http3.md \
+ http3-only.md \
+ ignore-content-length.md \
+ include.md \
+ insecure.md \
+ interface.md \
+ ipfs-gateway.md \
+ ipv4.md \
+ ipv6.md \
+ json.md \
+ junk-session-cookies.md \
+ keepalive-time.md \
+ key-type.md \
+ key.md \
+ krb.md \
+ libcurl.md \
+ limit-rate.md \
+ list-only.md \
+ local-port.md \
+ location-trusted.md \
+ location.md \
+ login-options.md \
+ mail-auth.md \
+ mail-from.md \
+ mail-rcpt-allowfails.md \
+ mail-rcpt.md \
+ manual.md \
+ max-filesize.md \
+ max-redirs.md \
+ max-time.md \
+ metalink.md \
+ negotiate.md \
+ netrc-file.md \
+ netrc-optional.md \
+ netrc.md \
+ next.md \
+ no-alpn.md \
+ no-buffer.md \
+ no-clobber.md \
+ no-keepalive.md \
+ no-npn.md \
+ no-progress-meter.md \
+ no-sessionid.md \
+ noproxy.md \
+ ntlm-wb.md \
+ ntlm.md \
+ oauth2-bearer.md \
+ output-dir.md \
+ output.md \
+ parallel-immediate.md \
+ parallel-max.md \
+ parallel.md \
+ pass.md \
+ path-as-is.md \
+ pinnedpubkey.md \
+ post301.md \
+ post302.md \
+ post303.md \
+ preproxy.md \
+ progress-bar.md \
+ proto-default.md \
+ proto-redir.md \
+ proto.md \
+ proxy-anyauth.md \
+ proxy-basic.md \
+ proxy-ca-native.md \
+ proxy-cacert.md \
+ proxy-capath.md \
+ proxy-cert-type.md \
+ proxy-cert.md \
+ proxy-ciphers.md \
+ proxy-crlfile.md \
+ proxy-digest.md \
+ proxy-header.md \
+ proxy-http2.md \
+ proxy-insecure.md \
+ proxy-key-type.md \
+ proxy-key.md \
+ proxy-negotiate.md \
+ proxy-ntlm.md \
+ proxy-pass.md \
+ proxy-pinnedpubkey.md \
+ proxy-service-name.md \
+ proxy-ssl-allow-beast.md \
+ proxy-ssl-auto-client-cert.md \
+ proxy-tls13-ciphers.md \
+ proxy-tlsauthtype.md \
+ proxy-tlspassword.md \
+ proxy-tlsuser.md \
+ proxy-tlsv1.md \
+ proxy-user.md \
+ proxy.md \
+ proxy1.0.md \
+ proxytunnel.md \
+ pubkey.md \
+ quote.md \
+ random-file.md \
+ range.md \
+ rate.md \
+ raw.md \
+ referer.md \
+ remote-header-name.md \
+ remote-name-all.md \
+ remote-name.md \
+ remote-time.md \
+ remove-on-error.md \
+ request-target.md \
+ request.md \
+ resolve.md \
+ retry-all-errors.md \
+ retry-connrefused.md \
+ retry-delay.md \
+ retry-max-time.md \
+ retry.md \
+ sasl-authzid.md \
+ sasl-ir.md \
+ service-name.md \
+ show-error.md \
+ silent.md \
+ socks4.md \
+ socks4a.md \
+ socks5-basic.md \
+ socks5-gssapi-nec.md \
+ socks5-gssapi-service.md \
+ socks5-gssapi.md \
+ socks5-hostname.md \
+ socks5.md \
+ speed-limit.md \
+ speed-time.md \
+ ssl-allow-beast.md \
+ ssl-auto-client-cert.md \
+ ssl-no-revoke.md \
+ ssl-reqd.md \
+ ssl-revoke-best-effort.md \
+ ssl.md \
+ sslv2.md \
+ sslv3.md \
+ stderr.md \
+ styled-output.md \
+ suppress-connect-headers.md \
+ tcp-fastopen.md \
+ tcp-nodelay.md \
+ telnet-option.md \
+ tftp-blksize.md \
+ tftp-no-options.md \
+ time-cond.md \
+ tls-max.md \
+ tls13-ciphers.md \
+ tlsauthtype.md \
+ tlspassword.md \
+ tlsuser.md \
+ tlsv1.0.md \
+ tlsv1.1.md \
+ tlsv1.2.md \
+ tlsv1.3.md \
+ tlsv1.md \
+ tr-encoding.md \
+ trace-ascii.md \
+ trace-config.md \
+ trace-ids.md \
+ trace-time.md \
+ trace.md \
+ unix-socket.md \
+ upload-file.md \
+ url.md \
+ url-query.md \
+ use-ascii.md \
+ user-agent.md \
+ user.md \
+ variable.md \
+ verbose.md \
+ version.md \
+ write-out.md \
+ xattr.md
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# AUTHORS
+Daniel Stenberg is the main author, but the whole list of contributors is
+found in the separate THANKS file.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# BUGS
+If you experience any problems with curl, submit an issue in the project's bug
+tracker on GitHub: https://github.com/curl/curl/issues
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# DESCRIPTION
+
+**curl** is a tool for transferring data from or to a server using URLs. It
+supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS,
+IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP,
+SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
+
+curl is powered by libcurl for all transfer-related features. See
+*libcurl(3)* for details.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# ENVIRONMENT
+The environment variables can be specified in lower case or upper case. The
+lower case version has precedence. `http_proxy` is an exception as it is only
+available in lower case.
+
+Using an environment variable to set the proxy has the same effect as using
+the --proxy option.
+
+## `http_proxy` [protocol://]<host>[:port]
+Sets the proxy server to use for HTTP.
+
+## `HTTPS_PROXY` [protocol://]<host>[:port]
+Sets the proxy server to use for HTTPS.
+
+## `[url-protocol]_PROXY` [protocol://]<host>[:port]
+Sets the proxy server to use for [url-protocol], where the protocol is a
+protocol that curl supports and as specified in a URL. FTP, FTPS, POP3, IMAP,
+SMTP, LDAP, etc.
+
+## `ALL_PROXY` [protocol://]<host>[:port]
+Sets the proxy server to use if no protocol-specific proxy is set.
+
+## `NO_PROXY` <comma-separated list of hosts/domains>
+list of host names that should not go through any proxy. If set to an asterisk
+'*' only, it matches all hosts. Each name in this list is matched as either
+a domain name which contains the hostname, or the hostname itself.
+
+This environment variable disables use of the proxy even when specified with
+the --proxy option. That is
+
+ NO_PROXY=direct.example.com curl -x http://proxy.example.com
+ http://direct.example.com
+
+accesses the target URL directly, and
+
+ NO_PROXY=direct.example.com curl -x http://proxy.example.com
+ http://somewhere.example.com
+
+accesses the target URL through the proxy.
+
+The list of host names can also be include numerical IP addresses, and IPv6
+versions should then be given without enclosing brackets.
+
+IP addresses can be specified using CIDR notation: an appended slash and
+number specifies the number of "network bits" out of the address to use in the
+comparison (added in 7.86.0). For example "192.168.0.0/16" would match all
+addresses starting with "192.168".
+
+## `APPDATA` <dir>
+On Windows, this variable is used when trying to find the home directory. If
+the primary home variable are all unset.
+
+## `COLUMNS` <terminal width>
+If set, the specified number of characters is used as the terminal width when
+the alternative progress-bar is shown. If not set, curl tries to figure it out
+using other ways.
+
+## `CURL_CA_BUNDLE` <file>
+If set, it is used as the --cacert value. This environment variable is ignored
+if Schannel is used as the TLS backend.
+
+## `CURL_HOME` <dir>
+If set, is the first variable curl checks when trying to find its home
+directory. If not set, it continues to check *XDG_CONFIG_HOME*
+
+## `CURL_SSL_BACKEND` <TLS backend>
+If curl was built with support for "MultiSSL", meaning that it has built-in
+support for more than one TLS backend, this environment variable can be set to
+the case insensitive name of the particular backend to use when curl is
+invoked. Setting a name that is not a built-in alternative makes curl stay
+with the default.
+
+SSL backend names (case-insensitive): **bearssl**, **gnutls**, **mbedtls**,
+**openssl**, **rustls**, **schannel**, **secure-transport**, **wolfssl**
+
+## `HOME` <dir>
+If set, this is used to find the home directory when that is needed. Like when
+looking for the default .curlrc. *CURL_HOME* and *XDG_CONFIG_HOME*
+have preference.
+
+## `QLOGDIR` <directory name>
+If curl was built with HTTP/3 support, setting this environment variable to a
+local directory makes curl produce **qlogs** in that directory, using file
+names named after the destination connection id (in hex). Do note that these
+files can become rather large. Works with the ngtcp2 and quiche QUIC backends.
+
+## `SHELL`
+Used on VMS when trying to detect if using a **DCL** or a **unix** shell.
+
+## `SSL_CERT_DIR` <dir>
+If set, it is used as the --capath value. This environment variable is ignored
+if Schannel is used as the TLS backend.
+
+## `SSL_CERT_FILE` <path>
+If set, it is used as the --cacert value. This environment variable is ignored
+if Schannel is used as the TLS backend.
+
+## `SSLKEYLOGFILE` <file name>
+If you set this environment variable to a file name, curl stores TLS secrets
+from its connections in that file when invoked to enable you to analyze the
+TLS traffic in real time using network analyzing tools such as Wireshark. This
+works with the following TLS backends: OpenSSL, libressl, BoringSSL, GnuTLS
+and wolfSSL.
+
+## `USERPROFILE` <dir>
+On Windows, this variable is used when trying to find the home directory. If
+the other, primary, variable are all unset. If set, curl uses the path
+**"$USERPROFILE\Application Data"**.
+
+## `XDG_CONFIG_HOME` <dir>
+If *CURL_HOME* is not set, this variable is checked when looking for a
+default .curlrc file.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# EXIT CODES
+There are a bunch of different error codes and their corresponding error
+messages that may appear under error conditions. At the time of this writing,
+the exit codes are:
+## 0
+Success. The operation completed successfully according to the instructions.
+## 1
+Unsupported protocol. This build of curl has no support for this protocol.
+## 2
+Failed to initialize.
+## 3
+URL malformed. The syntax was not correct.
+## 4
+A feature or option that was needed to perform the desired request was not
+enabled or was explicitly disabled at build-time. To make curl able to do
+this, you probably need another build of libcurl.
+## 5
+Could not resolve proxy. The given proxy host could not be resolved.
+## 6
+Could not resolve host. The given remote host could not be resolved.
+## 7
+Failed to connect to host.
+## 8
+Weird server reply. The server sent data curl could not parse.
+## 9
+FTP access denied. The server denied login or denied access to the particular
+resource or directory you wanted to reach. Most often you tried to change to a
+directory that does not exist on the server.
+## 10
+FTP accept failed. While waiting for the server to connect back when an active
+FTP session is used, an error code was sent over the control connection or
+similar.
+## 11
+FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
+## 12
+During an active FTP session while waiting for the server to connect back to
+curl, the timeout expired.
+## 13
+FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
+## 14
+FTP weird 227 format. Curl could not parse the 227-line the server sent.
+## 15
+FTP cannot use host. Could not resolve the host IP we got in the 227-line.
+## 16
+HTTP/2 error. A problem was detected in the HTTP2 framing layer. This is
+somewhat generic and can be one out of several problems, see the error message
+for details.
+## 17
+FTP could not set binary. Could not change transfer method to binary.
+## 18
+Partial file. Only a part of the file was transferred.
+## 19
+FTP could not download/access the given file, the RETR (or similar) command
+failed.
+## 21
+FTP quote error. A quote command returned error from the server.
+## 22
+HTTP page not retrieved. The requested URL was not found or returned another
+error with the HTTP error code being 400 or above. This return code only
+appears if --fail is used.
+## 23
+Write error. Curl could not write data to a local filesystem or similar.
+## 25
+Failed starting the upload. For FTP, the server typically denied the STOR
+command.
+## 26
+Read error. Various reading problems.
+## 27
+Out of memory. A memory allocation request failed.
+## 28
+Operation timeout. The specified time-out period was reached according to the
+conditions.
+## 30
+FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT
+command, try doing a transfer using PASV instead.
+## 31
+FTP could not use REST. The REST command failed. This command is used for
+resumed FTP transfers.
+## 33
+HTTP range error. The range "command" did not work.
+## 34
+HTTP post error. Internal post-request generation error.
+## 35
+SSL connect error. The SSL handshaking failed.
+## 36
+Bad download resume. Could not continue an earlier aborted download.
+## 37
+FILE could not read file. Failed to open the file. Permissions?
+## 38
+LDAP cannot bind. LDAP bind operation failed.
+## 39
+LDAP search failed.
+## 41
+Function not found. A required LDAP function was not found.
+## 42
+Aborted by callback. An application told curl to abort the operation.
+## 43
+Internal error. A function was called with a bad parameter.
+## 45
+Interface error. A specified outgoing interface could not be used.
+## 47
+Too many redirects. When following redirects, curl hit the maximum amount.
+## 48
+Unknown option specified to libcurl. This indicates that you passed a weird
+option to curl that was passed on to libcurl and rejected. Read up in the
+manual!
+## 49
+Malformed telnet option.
+## 52
+The server did not reply anything, which here is considered an error.
+## 53
+SSL crypto engine not found.
+## 54
+Cannot set SSL crypto engine as default.
+## 55
+Failed sending network data.
+## 56
+Failure in receiving network data.
+## 58
+Problem with the local certificate.
+## 59
+Could not use specified SSL cipher.
+## 60
+Peer certificate cannot be authenticated with known CA certificates.
+## 61
+Unrecognized transfer encoding.
+## 63
+Maximum file size exceeded.
+## 64
+Requested FTP SSL level failed.
+## 65
+Sending the data requires a rewind that failed.
+## 66
+Failed to initialize SSL Engine.
+## 67
+The user name, password, or similar was not accepted and curl failed to log in.
+## 68
+File not found on TFTP server.
+## 69
+Permission problem on TFTP server.
+## 70
+Out of disk space on TFTP server.
+## 71
+Illegal TFTP operation.
+## 72
+Unknown TFTP transfer ID.
+## 73
+File already exists (TFTP).
+## 74
+No such user (TFTP).
+## 77
+Problem reading the SSL CA cert (path? access rights?).
+## 78
+The resource referenced in the URL does not exist.
+## 79
+An unspecified error occurred during the SSH session.
+## 80
+Failed to shut down the SSL connection.
+## 82
+Could not load CRL file, missing or wrong format (added in 7.19.0).
+## 83
+Issuer check failed (added in 7.19.0).
+## 84
+The FTP PRET command failed.
+## 85
+Mismatch of RTSP CSeq numbers.
+## 86
+Mismatch of RTSP Session Identifiers.
+## 87
+Unable to parse FTP file list.
+## 88
+FTP chunk callback reported error.
+## 89
+No connection available, the session is queued.
+## 90
+SSL public key does not matched pinned public key.
+## 91
+Invalid SSL certificate status.
+## 92
+Stream error in HTTP/2 framing layer.
+## 93
+An API function was called from inside a callback.
+## 94
+An authentication function returned an error.
+## 95
+A problem was detected in the HTTP/3 layer. This is somewhat generic and can
+be one out of several problems, see the error message for details.
+## 96
+QUIC connection error. This error may be caused by an SSL library error. QUIC
+is the protocol used for HTTP/3 transfers.
+## 97
+Proxy handshake error.
+## 98
+A client-side certificate is required to complete the TLS handshake.
+## 99
+Poll or select returned fatal error.
+## XX
+More error codes might appear here in future releases. The existing ones are
+meant to never change.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# FILES
+*~/.curlrc*
+
+Default config file, see --config for details.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# GLOBBING
+You can specify multiple URLs or parts of URLs by writing lists within braces
+or ranges within brackets. We call this "globbing".
+
+Provide a list with three different names like this:
+
+ "http://site.{one,two,three}.com"
+
+or you can get sequences of alphanumeric series by using [] as in:
+
+ "ftp://ftp.example.com/file[1-100].txt"
+
+And with leading zeroes:
+
+ "ftp://ftp.example.com/file[001-100].txt"
+
+Or with letters through the alphabet:
+
+ "ftp://ftp.example.com/file[a-z].txt"
+
+Nested sequences are not supported, but you can use several ones next to each
+other:
+
+ "http://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html"
+
+You can specify a step counter for the ranges to get every Nth number or
+letter:
+
+ "http://example.com/file[1-100:10].txt"
+
+ "http://example.com/file[a-z:2].txt"
+
+When using [] or {} sequences when invoked from a command line prompt, you
+probably have to put the full URL within double quotes to avoid the shell from
+interfering with it. This also goes for other characters treated special, like
+for example '&', '?' and '*'.
+
+Switch off globbing with --globoff.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# NAME
+curl - transfer a URL
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# OPTIONS
+Options start with one or two dashes. Many of the options require an
+additional value next to them. If provided text does not start with a dash, it
+is presumed to be and treated as a URL.
+
+The short "single-dash" form of the options, -d for example, may be used with
+or without a space between it and its value, although a space is a recommended
+separator. The long "double-dash" form, --data for example, requires a space
+between it and its value.
+
+Short version options that do not need any additional values can be used
+immediately next to each other, like for example you can specify all the
+options *-O*, *-L* and *-v* at once as *-OLv*.
+
+In general, all boolean options are enabled with --**option** and yet again
+disabled with --**no-**option. That is, you use the same option name but
+prefix it with "no-". However, in this list we mostly only list and show the
+*--option* version of them.
+
+When --next is used, it resets the parser state and you start again with a
+clean option state, except for the options that are "global". Global options
+retain their values and meaning even after --next.
+
+The following options are global: `%GLOBALS`.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# OUTPUT
+If not told otherwise, curl writes the received data to stdout. It can be
+instructed to instead save that data into a local file, using the --output or
+--remote-name options. If curl is given multiple URLs to transfer on the
+command line, it similarly needs multiple options for where to save them.
+
+curl does not parse or otherwise "understand" the content it gets or writes as
+output. It does no encoding or decoding, unless explicitly asked to with
+dedicated command line options.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# "PROGRESS METER"
+
+curl normally displays a progress meter during operations, indicating the
+amount of transferred data, transfer speeds and estimated time left, etc. The
+progress meter displays the transfer rate in bytes per second. The suffixes
+(k, M, G, T, P) are 1024 based. For example 1k is 1024 bytes. 1M is 1048576
+bytes.
+
+curl displays this data to the terminal by default, so if you invoke curl to
+do an operation and it is about to write data to the terminal, it *disables*
+the progress meter as otherwise it would mess up the output mixing progress
+meter and response data.
+
+If you want a progress meter for HTTP POST or PUT requests, you need to
+redirect the response output to a file, using shell redirect (>), --output or
+similar.
+
+This does not apply to FTP upload as that operation does not spit out any
+response data to the terminal.
+
+If you prefer a progress "bar" instead of the regular meter, --progress-bar is
+your friend. You can also disable the progress meter completely with the
+--silent option.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# PROTOCOLS
+curl supports numerous protocols, or put in URL terms: schemes. Your
+particular build may not support them all.
+## DICT
+Lets you lookup words using online dictionaries.
+## FILE
+Read or write local files. curl does not support accessing file:// URL
+remotely, but when running on Microsoft Windows using the native UNC approach
+works.
+## FTP(S)
+curl supports the File Transfer Protocol with a lot of tweaks and levers. With
+or without using TLS.
+## GOPHER(S)
+Retrieve files.
+## HTTP(S)
+curl supports HTTP with numerous options and variations. It can speak HTTP
+version 0.9, 1.0, 1.1, 2 and 3 depending on build options and the correct
+command line options.
+## IMAP(S)
+Using the mail reading protocol, curl can "download" emails for you. With or
+without using TLS.
+## LDAP(S)
+curl can do directory lookups for you, with or without TLS.
+## MQTT
+curl supports MQTT version 3. Downloading over MQTT equals "subscribe" to a
+topic while uploading/posting equals "publish" on a topic. MQTT over TLS is
+not supported (yet).
+## POP3(S)
+Downloading from a pop3 server means getting a mail. With or without using
+TLS.
+## RTMP(S)
+The **Realtime Messaging Protocol** is primarily used to serve streaming media
+and curl can download it.
+## RTSP
+curl supports RTSP 1.0 downloads.
+## SCP
+curl supports SSH version 2 scp transfers.
+## SFTP
+curl supports SFTP (draft 5) done over SSH version 2.
+## SMB(S)
+curl supports SMB version 1 for upload and download.
+## SMTP(S)
+Uploading contents to an SMTP server means sending an email. With or without
+TLS.
+## TELNET
+Telling curl to fetch a telnet URL starts an interactive session where it
+sends what it reads on stdin and outputs what the server sends it.
+## TFTP
+curl can do TFTP downloads and uploads.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# PROXY PROTOCOL PREFIXES
+The proxy string may be specified with a protocol:// prefix to specify
+alternative proxy protocols. (Added in 7.21.7)
+
+If no protocol is specified in the proxy string or if the string does not
+match a supported one, the proxy is treated as an HTTP proxy.
+
+The supported proxy protocol prefixes are as follows:
+## http://
+Makes it use it as an HTTP proxy. The default if no scheme prefix is used.
+## https://
+Makes it treated as an **HTTPS** proxy.
+## socks4://
+Makes it the equivalent of --socks4
+## socks4a://
+Makes it the equivalent of --socks4a
+## socks5://
+Makes it the equivalent of --socks5
+## socks5h://
+Makes it the equivalent of --socks5-hostname
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# SEE ALSO
+
+**ftp (1)**, **wget (1)**
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# SYNOPSIS
+
+**curl [options / URLs]**
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# URL
+The URL syntax is protocol-dependent. You find a detailed description in
+RFC 3986.
+
+If you provide a URL without a leading **protocol://** scheme, curl guesses
+what protocol you want. It then defaults to HTTP but assumes others based on
+often-used host name prefixes. For example, for host names starting with
+"ftp." curl assumes you want FTP.
+
+You can specify any amount of URLs on the command line. They are fetched in a
+sequential manner in the specified order unless you use --parallel. You can
+specify command line options and URLs mixed and in any order on the command
+line.
+
+curl attempts to reuse connections when doing multiple transfers, so that
+getting many files from the same server do not use multiple connects and setup
+handshakes. This improves speed. Connection reuse can only be done for URLs
+specified for a single command line invocation and cannot be performed between
+separate curl runs.
+
+Provide an IPv6 zone id in the URL with an escaped percentage sign. Like in
+
+ "http://[fe80::3%25eth0]/"
+
+Everything provided on the command line that is not a command line option or
+its argument, curl assumes is a URL and treats it as such.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# VARIABLES
+curl supports command line variables (added in 8.3.0). Set variables with
+--variable name=content or --variable name@file (where "file" can be stdin if
+set to a single dash (-)).
+
+Variable contents can expanded in option parameters using "{{name}}" (without
+the quotes) if the option name is prefixed with "--expand-". This gets the
+contents of the variable "name" inserted, or a blank if the name does not
+exist as a variable. Insert "{{" verbatim in the string by prefixing it with a
+backslash, like "\{{".
+
+You an access and expand environment variables by first importing them. You
+can select to either require the environment variable to be set or you can
+provide a default value in case it is not already set. Plain --variable %name
+imports the variable called 'name' but exits with an error if that environment
+variable is not already set. To provide a default value if it is not set, use
+--variable %name=content or --variable %name@content.
+
+Example. Get the USER environment variable into the URL, fail if USER is not
+set:
+
+ --variable '%USER'
+ --expand-url = "https://example.com/api/{{USER}}/method"
+
+When expanding variables, curl supports a set of functions that can make the
+variable contents more convenient to use. It can trim leading and trailing
+white space with *trim*, it can output the contents as a JSON quoted string
+with *json*, URL encode the string with *url* or base64 encode it with
+*b64*. You apply function to a variable expansion, add them colon separated to
+the right side of the variable. Variable content holding null bytes that are
+not encoded when expanded cause error.
+
+Example: get the contents of a file called $HOME/.secret into a variable
+called "fix". Make sure that the content is trimmed and percent-encoded sent
+as POST data:
+
+ --variable %HOME
+ --expand-variable fix@{{HOME}}/.secret
+ --expand-data "{{fix:trim:url}}"
+ https://example.com/
+
+Command line variables and expansions were added in in 8.3.0.
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# VERSION
+
+This man page describes curl %VERSION. If you use a later version, chances are
+this man page does not fully document it. If you use an earlier version, this
+document tries to include version information about which specific version
+that introduced changes.
+
+You can always learn which the latest curl version is by running
+
+ curl https://curl.se/info
+
+The online version of this man page is always showing the latest incarnation:
+https://curl.se/docs/manpage.html
--- /dev/null
+<!-- Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. -->
+<!-- SPDX-License-Identifier: curl -->
+# WWW
+https://curl.se
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: abstract-unix-socket
Added: 7.53.0
Protocols: HTTP
Category: connection
-See-also: unix-socket
-Example: --abstract-unix-socket socketpath $URL
Multi: single
+See-also:
+ - unix-socket
+Example:
+ - --abstract-unix-socket socketpath $URL
---
+
+# `--abstract-unix-socket`
+
Connect through an abstract Unix domain socket, instead of using the network.
Note: netstat shows the path of an abstract socket prefixed with '@', however
the <path> argument should not have this leading character.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: alt-svc
Help: Enable alt-svc with this cache file
Added: 7.64.1
Category: http
-See-also: resolve connect-to
-Example: --alt-svc svc.txt $URL
Multi: append
+See-also:
+ - resolve
+ - connect-to
+Example:
+ - --alt-svc svc.txt $URL
---
+
+# `--alt-svc`
+
This option enables the alt-svc parser in curl. If the file name points to an
existing alt-svc cache file, that gets used. After a completed transfer, the
cache is saved to the file name again if it has been modified.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: anyauth
Help: Pick any authentication method
Protocols: HTTP
-See-also: proxy-anyauth basic digest
Category: http proxy auth
-Example: --anyauth --user me:pwd $URL
Added: 7.10.6
Multi: mutex
+See-also:
+ - proxy-anyauth
+ - basic
+ - digest
+Example:
+ - --anyauth --user me:pwd $URL
---
+
+# `--anyauth`
+
Tells curl to figure out authentication method by itself, and use the most
secure one the remote site claims to support. This is done by first doing a
request and checking the response-headers, thus possibly inducing an extra
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: a
Help: Append to target file when uploading
Protocols: FTP SFTP
Category: ftp sftp
-See-also: range continue-at
-Example: --upload-file local --append ftp://example.com/
Added: 4.8
Multi: boolean
+See-also:
+ - range
+ - continue-at
+Example:
+ - --upload-file local --append ftp://example.com/
---
+
+# `--append`
+
When used in an upload, this option makes curl append to the target file
instead of overwriting it. If the remote file does not exist, it is
created. Note that this flag is ignored by some SFTP servers (including
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: aws-sigv4
Help: Use AWS V4 signature authentication
Category: auth http
Added: 7.75.0
-See-also: basic user
-Example: --aws-sigv4 "aws:amz:us-east-2:es" --user "key:secret" $URL
Multi: single
+See-also:
+ - basic
+ - user
+Example:
+ - --aws-sigv4 "aws:amz:us-east-2:es" --user "key:secret" $URL
---
+
+# `--aws-sigv4`
+
Use AWS V4 signature authentication in the transfer.
The provider argument is a string that is used by the algorithm when creating
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: basic
Help: Use HTTP Basic Authentication
-See-also: proxy-basic
Protocols: HTTP
Category: auth
-Example: -u name:password --basic $URL
Added: 7.10.6
Multi: mutex
+See-also:
+ - proxy-basic
+Example:
+ - -u name:password --basic $URL
---
+
+# `--basic`
+
Tells curl to use HTTP Basic authentication with the remote host. This is the
default and this option is usually pointless, unless you use it to override a
previously set option that sets a different authentication method (such as
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ca-native
Help: Use CA certificates from the native OS
Protocols: TLS
Category: tls
-See-also: cacert capath insecure
-Example: --ca-native $URL
Added: 8.2.0
Multi: boolean
+See-also:
+ - cacert
+ - capath
+ - insecure
+Example:
+ - --ca-native $URL
---
+
+# `--ca-native`
+
Tells curl to use the CA store from the native operating system to verify the
peer. By default, curl otherwise uses a CA store provided in a single file or
directory, but when using this option it interfaces the operating system's
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: cacert
Help: CA certificate to verify peer against
Protocols: TLS
Category: tls
-See-also: capath insecure
-Example: --cacert CA-file.txt $URL
Added: 7.5
Multi: single
+See-also:
+ - capath
+ - insecure
+Example:
+ - --cacert CA-file.txt $URL
---
+
+# `--cacert`
+
Tells curl to use the specified certificate file to verify the peer. The file
may contain multiple CA certificates. The certificate(s) must be in PEM
format. Normally curl is built to use a default file for this, so this option
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: capath
Help: CA directory to verify peer against
Protocols: TLS
Category: tls
-See-also: cacert insecure
-Example: --capath /local/directory $URL
Added: 7.9.8
Multi: single
+See-also:
+ - cacert
+ - insecure
+Example:
+ - --capath /local/directory $URL
---
+
+# `--capath`
+
Tells curl to use the specified certificate directory to verify the
peer. Multiple paths can be provided by separating them with ":" (e.g.
"path1:path2:path3"). The certificates must be in PEM format, and if curl is
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: cert-status
Added: 7.41.0
Help: Verify the status of the server cert via OCSP-staple
Category: tls
-See-also: pinnedpubkey
-Example: --cert-status $URL
Multi: boolean
+See-also:
+ - pinnedpubkey
+Example:
+ - --cert-status $URL
---
+
+# `--cert-status`
+
Tells curl to verify the status of the server certificate by using the
Certificate Status Request (aka. OCSP stapling) TLS extension.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: cert-type
Protocols: TLS
Arg: <type>
Help: Certificate type (DER/PEM/ENG/P12)
-See-also: cert key key-type
Category: tls
-Example: --cert-type PEM --cert file $URL
Added: 7.9.3
Multi: single
+See-also:
+ - cert
+ - key
+ - key-type
+Example:
+ - --cert-type PEM --cert file $URL
---
+
+# `--cert-type`
+
Tells curl what type the provided client certificate is using. PEM, DER, ENG
and P12 are recognized types.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: E
Arg: <certificate[:password]>
Help: Client certificate file and password
Protocols: TLS
-See-also: cert-type key key-type
Category: tls
-Example: --cert certfile --key keyfile $URL
Added: 5.0
Multi: single
+See-also:
+ - cert-type
+ - key
+ - key-type
+Example:
+ - --cert certfile --key keyfile $URL
---
+
+# `--cert`
+
Tells curl to use the specified client certificate file when getting a file
with HTTPS, FTPS or another SSL-based protocol. The certificate must be in
PKCS#12 format if using Secure Transport, or PEM format if using any other
private key and the client certificate concatenated. See --cert and --key to
specify them independently.
-In the <certificate> portion of the argument, you must escape the character ":"
-as "\\:" so that it is not recognized as the password delimiter. Similarly, you
-must escape the character "\\" as "\\\\" so that it is not recognized as an
-escape character.
+In the <certificate> portion of the argument, you must escape the character
+":" as "\:" so that it is not recognized as the password delimiter. Similarly,
+you must escape the double quote character as \" so that it is not recognized
+as an escape character.
If curl is built against OpenSSL library, and the engine pkcs11 is available,
then a PKCS#11 URI (RFC 7512) can be used to specify a certificate located in
private key. If you want to use a file from the current directory, please
precede it with "./" prefix, in order to avoid confusion with a nickname.
-(Schannel only) Client certificates must be specified by a path
-expression to a certificate store. (Loading *PFX* is not supported; you can
-import it to a store first). You can use
-"<store location>\\<store name>\\<thumbprint>" to refer to a certificate
-in the system certificates store, for example,
-*"CurrentUser\\MY\\934a7ac6f8a5d579285a74fa61e19f23ddfe8d7a"*. Thumbprint is
+(Schannel only) Client certificates must be specified by a path expression to
+a certificate store. (Loading *PFX* is not supported; you can import it to a
+store first). You can use "<store location>\<store name>\<thumbprint>" to
+refer to a certificate in the system certificates store, for example,
+*"CurrentUser\MY\934a7ac6f8a5d579285a74fa61e19f23ddfe8d7a"*. Thumbprint is
usually a SHA-1 hex string which you can see in certificate details. Following
-store locations are supported: *CurrentUser*, *LocalMachine*, *CurrentService*,
-*Services*, *CurrentUserGroupPolicy*, *LocalMachineGroupPolicy* and
-*LocalMachineEnterprise*.
+store locations are supported: *CurrentUser*, *LocalMachine*,
+*CurrentService*, *Services*, *CurrentUserGroupPolicy*,
+*LocalMachineGroupPolicy* and *LocalMachineEnterprise*.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ciphers
Help: SSL ciphers to use
Protocols: TLS
Category: tls
-See-also: tlsv1.3 tls13-ciphers proxy-ciphers
-Example: --ciphers ECDHE-ECDSA-AES256-CCM8 $URL
Added: 7.9
Multi: single
+See-also:
+ - tlsv1.3
+ - tls13-ciphers
+ - proxy-ciphers
+Example:
+ - --ciphers ECDHE-ECDSA-AES256-CCM8 $URL
---
+
+# `--ciphers`
+
Specifies which ciphers to use in the connection. The list of ciphers must
specify valid ciphers. Read up on SSL cipher list details on this URL:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: compressed-ssh
Protocols: SCP SFTP
Added: 7.56.0
Category: scp ssh
-See-also: compressed
-Example: --compressed-ssh sftp://example.com/
Multi: boolean
+See-also:
+ - compressed
+Example:
+ - --compressed-ssh sftp://example.com/
---
+
+# `--compressed-ssh`
+
Enables built-in SSH compression.
This is a request, not an order; the server may or may not do it.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: compressed
Help: Request compressed response
Protocols: HTTP
Category: http
-Example: --compressed $URL
-See-also: compressed-ssh
Added: 7.10
Multi: boolean
+See-also:
+ - compressed-ssh
+Example:
+ - --compressed $URL
---
+
+# `--compressed`
+
Request a compressed response using one of the algorithms curl supports, and
automatically decompress the content.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: config
Help: Read config from a file
Short: K
Category: curl
-Example: --config file.txt $URL
Added: 4.10
-See-also: disable
Multi: append
+See-also:
+ - disable
+Example:
+ - --config file.txt $URL
---
+
+# `--config`
+
Specify a text file to read curl arguments from. The command line arguments
found in the text file are used as if they were provided on the command
line.
between the option and its parameter.
If the parameter contains whitespace or starts with a colon (:) or equals sign
-(=), it must be specified enclosed within double quotes (\&"). Within double
-quotes the following escape sequences are available: \\\\, \\", \\t, \\n, \\r
-and \\v. A backslash preceding any other letter is ignored.
+(=), it must be specified enclosed within double quotes ("). Within double
+quotes the following escape sequences are available: \\, \", \t, \n, \r and
+\v. A backslash preceding any other letter is ignored.
If the first non-blank column of a config line is a '#' character, that line
is treated as a comment.
it using the --url option, and not by simply writing the URL on its own
line. So, it could look similar to this:
-url = "https://curl.se/docs/"
+ url = "https://curl.se/docs/"
- # --- Example file ---
- # this is a comment
- url = "example.com"
- output = "curlhere.html"
- user-agent = "superagent/1.0"
+ # --- Example file ---
+ # this is a comment
+ url = "example.com"
+ output = "curlhere.html"
+ user-agent = "superagent/1.0"
- # and fetch another URL too
- url = "example.com/docs/manpage.html"
- -O
- referer = "http://nowhereatall.example.com/"
- # --- End of example file ---
+ # and fetch another URL too
+ url = "example.com/docs/manpage.html"
+ -O
+ referer = "http://nowhereatall.example.com/"
+ # --- End of example file ---
When curl is invoked, it (unless --disable is used) checks for a default
config file and uses it if found, even when --config is used. The default
3) **"$HOME/.curlrc"**
-4) Windows: **"%USERPROFILE%\\.curlrc"**
+4) Windows: **"%USERPROFILE%\.curlrc"**
-5) Windows: **"%APPDATA%\\.curlrc"**
+5) Windows: **"%APPDATA%\.curlrc"**
-6) Windows: **"%USERPROFILE%\\Application Data\\.curlrc"**
+6) Windows: **"%USERPROFILE%\Application Data\.curlrc"**
7) Non-Windows: use getpwuid to find the home directory
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: connect-timeout
Arg: <fractional seconds>
Help: Maximum time allowed for connection
-See-also: max-time
Category: connection
-Example: --connect-timeout 20 $URL
-Example: --connect-timeout 3.14 $URL
Added: 7.7
Multi: single
+See-also:
+ - max-time
+Example:
+ - --connect-timeout 20 $URL
+ - --connect-timeout 3.14 $URL
---
-Maximum time in seconds that you allow curl's connection to take. This only
+
+# `--connect-timeout`
+
+Maximum time in seconds that you allow curl's connection to take. This only
limits the connection phase, so if curl connects within the given period it
continues - if not it exits.
+++ /dev/null
-c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-SPDX-License-Identifier: curl
-Long: connect-to
-Arg: <HOST1:PORT1:HOST2:PORT2>
-Help: Connect to host
-Added: 7.49.0
-See-also: resolve header
-Category: connection
-Example: --connect-to example.com:443:example.net:8443 $URL
-Multi: append
----
-For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead.
-This option is suitable to direct requests at a specific server, e.g. at a
-specific cluster node in a cluster of servers. This option is only used to
-establish the network connection. It does NOT affect the hostname/port that is
-used for TLS/SSL (e.g. SNI, certificate verification) or for the application
-protocols. "HOST1" and "PORT1" may be the empty string, meaning "any
-host/port". "HOST2" and "PORT2" may also be the empty string, meaning "use the
-request's original host/port".
-
-A "host" specified to this option is compared as a string, so it needs to
-match the name used in request URL. It can be either numerical such as
-"127.0.0.1" or the full host name such as "example.org".
--- /dev/null
+---
+c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+SPDX-License-Identifier: curl
+Long: connect-to
+Arg: <HOST1:PORT1:HOST2:PORT2>
+Help: Connect to host
+Added: 7.49.0
+Category: connection
+Multi: append
+See-also:
+ - resolve
+ - header
+Example:
+ - --connect-to example.com:443:example.net:8443 $URL
+---
+
+# `--connect-to`
+
+For a request to the given `HOST1:PORT1` pair, connect to `HOST2:PORT2`
+instead. This option is suitable to direct requests at a specific server,
+e.g. at a specific cluster node in a cluster of servers. This option is only
+used to establish the network connection. It does NOT affect the hostname/port
+that is used for TLS/SSL (e.g. SNI, certificate verification) or for the
+application protocols. `HOST1` and `PORT1` may be the empty string, meaning
+"any host/port". `HOST2` and `PORT2` may also be the empty string, meaning
+"use the request's original host/port".
+
+A hostname specified to this option is compared as a string, so it needs to
+match the name used in request URL. It can be either numerical such as
+`127.0.0.1` or the full host name such as `example.org`.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: C
Long: continue-at
Arg: <offset>
Help: Resumed transfer offset
-See-also: range
Category: connection
-Example: -C - $URL
-Example: -C 400 $URL
Added: 4.8
Multi: single
+See-also:
+ - range
+Example:
+ - -C - $URL
+ - -C 400 $URL
---
+
+# `--continue-at`
+
Continue/Resume a previous file transfer at the given offset. The given offset
is the exact number of bytes that are skipped, counting from the beginning
of the source file before it is transferred to the destination. If used with
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: c
Protocols: HTTP
Help: Write cookies to <filename> after operation
Category: http
-Example: -c store-here.txt $URL
-Example: -c store-here.txt -b read-these $URL
Added: 7.9
-See-also: cookie
Multi: single
+See-also:
+ - cookie
+Example:
+ - -c store-here.txt $URL
+ - -c store-here.txt -b read-these $URL
---
+
+# `--cookie-jar`
+
Specify to which file you want curl to write all cookies after a completed
operation. Curl writes all cookies from its in-memory cookie storage to the
given file at the end of operations. If no cookies are known, no data is
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: b
Protocols: HTTP
Help: Send cookies from string/file
Category: http
-Example: -b "" $URL
-Example: -b cookiefile $URL
-Example: -b cookiefile -c cookiefile $URL
-See-also: cookie-jar junk-session-cookies
Added: 4.9
Multi: append
+See-also:
+ - cookie-jar
+ - junk-session-cookies
+Example:
+ - -b "" $URL
+ - -b cookiefile $URL
+ - -b cookiefile -c cookiefile $URL
---
+
+# `--cookie`
+
Pass the data to the HTTP server in the Cookie header. It is supposedly the
data previously received from the server in a "Set-Cookie:" line. The data
should be in the format "NAME1=VALUE1; NAME2=VALUE2". This makes curl use the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: create-dirs
Help: Create necessary local directory hierarchy
Category: curl
-Example: --create-dirs --output local/dir/file $URL
Added: 7.10.3
-See-also: ftp-create-dirs output-dir
Multi: boolean
+See-also:
+ - ftp-create-dirs
+ - output-dir
+Example:
+ - --create-dirs --output local/dir/file $URL
---
+
+# `--create-dirs`
+
When used in conjunction with the --output option, curl creates the necessary
local directory hierarchy as needed. This option creates the directories
mentioned with the --output option combined with the path possibly set with
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: create-file-mode
Help: File mode for created files
Protocols: SFTP SCP FILE
Category: sftp scp file upload
-See-also: ftp-create-dirs
Added: 7.75.0
-Example: --create-file-mode 0777 -T localfile sftp://example.com/new
Multi: single
+See-also:
+ - ftp-create-dirs
+Example:
+ - --create-file-mode 0777 -T localfile sftp://example.com/new
---
+
+# `--create-file-mode`
+
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 default 0644.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: crlf
Help: Convert LF to CRLF in upload
Protocols: FTP SMTP
Category: ftp smtp
-Example: --crlf -T file ftp://example.com/
Added: 5.7
-See-also: use-ascii
Multi: boolean
+See-also:
+ - use-ascii
+Example:
+ - --crlf -T file ftp://example.com/
---
+
+# `--crlf`
+
Convert line feeds to carriage return plus line feeds in upload. Useful for
**MVS (OS/390)**.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: crlfile
Help: Use this CRL list
Added: 7.19.7
Category: tls
-Example: --crlfile rejects.txt $URL
-See-also: cacert capath
Multi: single
+See-also:
+ - cacert
+ - capath
+Example:
+ - --crlfile rejects.txt $URL
---
+
+# `--crlfile`
+
Provide a file using PEM format with a Certificate Revocation List that may
specify peer certificates that are to be considered revoked.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: curves
Protocols: TLS
Added: 7.73.0
Category: tls
-Example: --curves X25519 $URL
-See-also: ciphers
Multi: single
+See-also:
+ - ciphers
+Example:
+ - --curves X25519 $URL
---
+
+# `--curves`
+
Tells curl to request specific curves to use during SSL session establishment
-according to RFC 8422, 5.1. Multiple algorithms can be provided by separating
-them with ":" (e.g. "X25519:P-521"). The parameter is available identically
-in the "openssl s_client/s_server" utilities.
+according to RFC 8422, 5.1. Multiple algorithms can be provided by separating
+them with `:` (e.g. `X25519:P-521`). The parameter is available identically in
+the OpenSSL `s_client` and `s_server` utilities.
--curves allows a OpenSSL powered curl to make SSL-connections with exactly
the (EC) curve requested by the client, avoiding nontransparent client/server
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: data-ascii
Help: HTTP POST ASCII data
Protocols: HTTP
Category: http post upload
-Example: --data-ascii @file $URL
Added: 7.2
-See-also: data-binary data-raw data-urlencode
Multi: append
+See-also:
+ - data-binary
+ - data-raw
+ - data-urlencode
+Example:
+ - --data-ascii @file $URL
---
+
+# `--data-ascii`
+
This is just an alias for --data.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: data-binary
Help: HTTP POST binary data
Protocols: HTTP
Category: http post upload
-Example: --data-binary @filename $URL
Added: 7.2
-See-also: data-ascii
Multi: append
+See-also:
+ - data-ascii
+Example:
+ - --data-binary @filename $URL
---
+
+# `--data-binary`
+
This posts data exactly as specified with no extra processing whatsoever.
If you start the data with the letter @, the rest should be a filename. Data
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: data-raw
Protocols: HTTP
Help: HTTP POST data, '@' allowed
Added: 7.43.0
-See-also: data
Category: http post upload
-Example: --data-raw "hello" $URL
-Example: --data-raw "@at@at@" $URL
Multi: append
+See-also:
+ - data
+Example:
+ - --data-raw "hello" $URL
+ - --data-raw "@at@at@" $URL
---
+
+# `--data-raw`
+
This posts data similarly to --data but without the special
interpretation of the @ character.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: data-urlencode
Arg: <data>
Help: HTTP POST data URL encoded
Protocols: HTTP
-See-also: data data-raw
Added: 7.18.0
Category: http post upload
-Example: --data-urlencode name=val $URL
-Example: --data-urlencode =encodethis $URL
-Example: --data-urlencode name@file $URL
-Example: --data-urlencode @fileonly $URL
Multi: append
+See-also:
+ - data
+ - data-raw
+Example:
+ - --data-urlencode name=val $URL
+ - --data-urlencode =encodethis $URL
+ - --data-urlencode name@file $URL
+ - --data-urlencode @fileonly $URL
---
+
+# `--data-urlencode`
+
This posts data, similar to the other --data options with the exception
that this performs URL-encoding.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: data
Arg: <data>
Help: HTTP POST data
Protocols: HTTP MQTT
-See-also: data-binary data-urlencode data-raw
Mutexed: form head upload-file
Category: important http post upload
-Example: -d "name=curl" $URL
-Example: -d "name=curl" -d "tool=cmdline" $URL
-Example: -d @filename $URL
Added: 4.0
Multi: append
+See-also:
+ - data-binary
+ - data-urlencode
+ - data-raw
+Example:
+ - -d "name=curl" $URL
+ - -d "name=curl" -d "tool=cmdline" $URL
+ - -d @filename $URL
---
+
+# `--data`
+
Sends the specified data in a POST request to the HTTP server, in the same way
that a browser does when a user has filled in an HTML form and presses the
submit button. This makes curl pass the data to the server using the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: delegation
Help: GSS-API delegation permission
Protocols: GSS/kerberos
Category: auth
-Example: --delegation "none" $URL
Added: 7.22.0
-See-also: insecure ssl
Multi: single
+See-also:
+ - insecure
+ - ssl
+Example:
+ - --delegation "none" $URL
---
+
+# `--delegation`
+
Set LEVEL to tell the server what it is allowed to delegate when it
comes to user credentials.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: digest
Help: Use HTTP Digest Authentication
Protocols: HTTP
Mutexed: basic ntlm negotiate
-See-also: user proxy-digest anyauth
Category: proxy auth http
-Example: -u name:password --digest $URL
Added: 7.10.6
Multi: boolean
+See-also:
+ - user
+ - proxy-digest
+ - anyauth
+Example:
+ - -u name:password --digest $URL
---
+
+# `--digest`
+
Enables HTTP Digest authentication. This is an authentication scheme that
prevents the password from being sent over the wire in clear text. Use this in
combination with the normal --user option to set user name and password.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: disable-eprt
Help: Inhibit using EPRT or LPRT
Protocols: FTP
Category: ftp
-Example: --disable-eprt ftp://example.com/
Added: 7.10.5
-See-also: disable-epsv ftp-port
Multi: boolean
+See-also:
+ - disable-epsv
+ - ftp-port
+Example:
+ - --disable-eprt ftp://example.com/
---
+
+# `--disable-eprt`
+
Tell curl to disable the use of the EPRT and LPRT commands when doing active
FTP transfers. Curl normally first attempts to use EPRT before using PORT, but
with this option, it uses PORT right away. EPRT is an extension to the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: disable-epsv
Help: Inhibit using EPSV
Protocols: FTP
Category: ftp
-Example: --disable-epsv ftp://example.com/
Added: 7.9.2
-See-also: disable-eprt ftp-port
Multi: boolean
+See-also:
+ - disable-eprt
+ - ftp-port
+Example:
+ - --disable-epsv ftp://example.com/
---
+
+# `--disable-epsv`
+
Tell curl to disable the use of the EPSV command when doing passive FTP
transfers. Curl normally first attempts to use EPSV before PASV, but with this
option, it does not try EPSV.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: disable
Short: q
Help: Disable .curlrc
Category: curl
-Example: -q $URL
Added: 5.0
-See-also: config
Multi: boolean
+See-also:
+ - config
+Example:
+ - -q $URL
---
+
+# `--disable`
+
If used as the **first** parameter on the command line, the *curlrc* config
file is not read or used. See the --config for details on the default config
file search path.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: disallow-username-in-url
Help: Disallow username in URL
Added: 7.61.0
-See-also: proto
Category: curl
-Example: --disallow-username-in-url $URL
Multi: boolean
+See-also:
+ - proto
+Example:
+ - --disallow-username-in-url $URL
---
+
+# `--disallow-username-in-url`
+
This tells curl to exit if passed a URL containing a username. This is probably
most useful when the URL is being provided at runtime or similar.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: dns-interface
Arg: <interface>
Help: Interface to use for DNS requests
Protocols: DNS
-See-also: dns-ipv4-addr dns-ipv6-addr
Added: 7.33.0
Requires: c-ares
Category: dns
-Example: --dns-interface eth0 $URL
Multi: single
+See-also:
+ - dns-ipv4-addr
+ - dns-ipv6-addr
+Example:
+ - --dns-interface eth0 $URL
---
+
+# `--dns-interface`
+
Tell curl to send outgoing DNS requests through <interface>. This option is a
counterpart to --interface (which does not affect DNS). The supplied string
must be an interface name (not an address).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: dns-ipv4-addr
Arg: <address>
Help: IPv4 address to use for DNS requests
Protocols: DNS
-See-also: dns-interface dns-ipv6-addr
Added: 7.33.0
Requires: c-ares
Category: dns
-Example: --dns-ipv4-addr 10.1.2.3 $URL
Multi: single
+See-also:
+ - dns-interface
+ - dns-ipv6-addr
+Example:
+ - --dns-ipv4-addr 10.1.2.3 $URL
---
+
+# `--dns-ipv4-addr`
+
Tell curl to bind to a specific IP address when making IPv4 DNS requests, so
that the DNS requests originate from this address. The argument should be a
single IPv4 address.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: dns-ipv6-addr
Arg: <address>
Help: IPv6 address to use for DNS requests
Protocols: DNS
-See-also: dns-interface dns-ipv4-addr
Added: 7.33.0
Requires: c-ares
Category: dns
-Example: --dns-ipv6-addr 2a04:4e42::561 $URL
Multi: single
+See-also:
+ - dns-interface
+ - dns-ipv4-addr
+Example:
+ - --dns-ipv6-addr 2a04:4e42::561 $URL
---
+
+# `--dns-ipv6-addr`
+
Tell curl to bind to a specific IP address when making IPv6 DNS requests, so
that the DNS requests originate from this address. The argument should be a
single IPv6 address.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: dns-servers
Requires: c-ares
Added: 7.33.0
Category: dns
-Example: --dns-servers 192.168.0.1,192.168.0.2 $URL
-See-also: dns-interface dns-ipv4-addr
Multi: single
+See-also:
+ - dns-interface
+ - dns-ipv4-addr
+Example:
+ - --dns-servers 192.168.0.1,192.168.0.2 $URL
---
+
+# `--dns-servers`
+
Set the list of DNS servers to be used instead of the system default.
The list of IP addresses should be separated with commas. Port numbers
may also optionally be given as *:<port-number>* after each IP
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: doh-cert-status
Help: Verify the status of the DoH server cert via OCSP-staple
Added: 7.76.0
Category: dns tls
-Example: --doh-cert-status --doh-url https://doh.example $URL
-See-also: doh-insecure
Multi: boolean
+See-also:
+ - doh-insecure
+Example:
+ - --doh-cert-status --doh-url https://doh.example $URL
---
+
+# `--doh-cert-status`
+
Same as --cert-status but used for DoH (DNS-over-HTTPS).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: doh-insecure
Help: Allow insecure DoH server connections
Added: 7.76.0
Category: dns tls
-Example: --doh-insecure --doh-url https://doh.example $URL
-See-also: doh-url
Multi: boolean
+See-also:
+ - doh-url
+Example:
+ - --doh-insecure --doh-url https://doh.example $URL
---
+
+# `--doh-insecure`
+
Same as --insecure but used for DoH (DNS-over-HTTPS).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: doh-url
Help: Resolve host names over DoH
Added: 7.62.0
Category: dns
-Example: --doh-url https://doh.example $URL
-See-also: doh-insecure
Multi: single
+See-also:
+ - doh-insecure
+Example:
+ - --doh-url https://doh.example $URL
---
+
+# `--doh-url`
+
Specifies which DNS-over-HTTPS (DoH) server to use to resolve hostnames,
instead of using the default name resolver mechanism. The URL must be HTTPS.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: dump-header
Arg: <filename>
Help: Write the received headers to <filename>
Protocols: HTTP FTP
-See-also: output
Category: http ftp
-Example: --dump-header store.txt $URL
Added: 5.7
Multi: single
+See-also:
+ - output
+Example:
+ - --dump-header store.txt $URL
---
+
+# `--dump-header`
+
Write the received protocol headers to the specified file. If no headers are
received, the use of this option creates an empty file.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: egd-file
Arg: <file>
Help: EGD socket path for random data
Protocols: TLS
-See-also: random-file
Category: tls
-Example: --egd-file /random/here $URL
Added: 7.7
Multi: single
+See-also:
+ - random-file
+Example:
+ - --egd-file /random/here $URL
---
+
+# `--egd-file`
+
Deprecated option (added in 7.84.0). Prior to that it only had an effect on
curl if built to use old versions of OpenSSL.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: engine
Help: Crypto engine to use
Protocols: TLS
Category: tls
-Example: --engine flavor $URL
Added: 7.9.3
-See-also: ciphers curves
Multi: single
+See-also:
+ - ciphers
+ - curves
+Example:
+ - --engine flavor $URL
---
+
+# `--engine`
+
Select the OpenSSL crypto engine to use for cipher operations. Use --engine
list to print a list of build-time supported engines. Note that not all (and
possibly none) of the engines may be available at runtime.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: etag-compare
Protocols: HTTP
Added: 7.68.0
Category: http
-Example: --etag-compare etag.txt $URL
-See-also: etag-save time-cond
Multi: single
+See-also:
+ - etag-save
+ - time-cond
+Example:
+ - --etag-compare etag.txt $URL
---
+
+# `--etag-compare`
+
This option makes 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.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: etag-save
Protocols: HTTP
Added: 7.68.0
Category: http
-Example: --etag-save storetag.txt $URL
-See-also: etag-compare
Multi: single
+See-also:
+ - etag-compare
+Example:
+ - --etag-save storetag.txt $URL
---
+
+# `--etag-save`
+
This option saves an HTTP ETag to the specified file. An ETag is a
caching related header, usually returned in a response.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: expect100-timeout
Help: How long to wait for 100-continue
Protocols: HTTP
Added: 7.47.0
-See-also: connect-timeout
Category: http
-Example: --expect100-timeout 2.5 -T file $URL
Multi: single
+See-also:
+ - connect-timeout
+Example:
+ - --expect100-timeout 2.5 -T file $URL
---
+
+# `--expect100-timeout`
+
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. By
default curl waits one second. This option accepts decimal values! When
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: fail-early
Help: Fail on first transfer error, do not continue
Added: 7.52.0
Category: curl
-Example: --fail-early $URL https://two.example
-See-also: fail fail-with-body
Multi: boolean
Scope: global
+See-also:
+ - fail
+ - fail-with-body
+Example:
+ - --fail-early $URL https://two.example
---
+
+# `--fail-early`
+
Fail and exit on the first detected transfer error.
When curl is used to do multiple transfers on the command line, it attempts to
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: fail-with-body
Help: Fail on HTTP errors but save the body
Category: http output
Added: 7.76.0
-See-also: fail fail-early
Mutexed: fail
-Example: --fail-with-body $URL
Multi: boolean
+See-also:
+ - fail
+ - fail-early
+Example:
+ - --fail-with-body $URL
---
+
+# `--fail-with-body`
+
Return an error on server errors where the HTTP response code is 400 or
greater). In normal cases when an HTTP server fails to deliver a document, it
returns an HTML document stating so (which often also describes why and
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: fail
Short: f
Protocols: HTTP
Help: Fail fast with no output on HTTP errors
-See-also: fail-with-body fail-early
Category: important http
-Example: --fail $URL
Mutexed: fail-with-body
Added: 4.0
Multi: boolean
+See-also:
+ - fail-with-body
+ - fail-early
+Example:
+ - --fail $URL
---
+
+# `--fail`
+
Fail fast with no output at all on server errors. This is useful to enable
scripts and users to better deal with failed attempts. In normal cases when an
HTTP server fails to deliver a document, it returns an HTML document stating
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: false-start
Protocols: TLS
Added: 7.42.0
Category: tls
-Example: --false-start $URL
-See-also: tcp-fastopen
Multi: boolean
+See-also:
+ - tcp-fastopen
+Example:
+ - --false-start $URL
---
+
+# `--false-start`
+
Tells curl to use false start during the TLS handshake. False start is a mode
where a TLS client starts sending application data before verifying the
server's Finished message, thus saving a round trip when performing a full
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: form-escape
Help: Escape multipart form field/file names using backslash
Protocols: HTTP
-See-also: form
Added: 7.81.0
Category: http upload
-Example: --form-escape -F 'field\\name=curl' -F 'file=@load"this' $URL
Multi: single
+See-also:
+ - form
+Example:
+ - --form-escape -F 'field\name=curl' -F 'file=@load"this' $URL
---
+
+# `--form-escape`
+
Tells curl to pass on names of multipart form fields and files using
backslash-escaping instead of percent-encoding.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: form-string
Help: Specify multipart MIME data
Protocols: HTTP SMTP IMAP
Arg: <name=string>
-See-also: form
Category: http upload
-Example: --form-string "data" $URL
Added: 7.13.2
Multi: append
+See-also:
+ - form
+Example:
+ - --form-string "data" $URL
---
+
+# `--form-string`
+
Similar to --form except that the value string for the named parameter is used
literally. Leading '@' and '<' characters, and the ';type=' string in
the value have no special meaning. Use this in preference to --form if
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: form
Protocols: HTTP SMTP IMAP
Mutexed: data head upload-file
Category: http upload
-Example: --form "name=curl" --form "file=@loadthis" $URL
Added: 5.0
-See-also: data form-string form-escape
Multi: append
+See-also:
+ - data
+ - form-string
+ - form-escape
+Example:
+ - --form "name=curl" --form "file=@loadthis" $URL
---
+
+# `--form`
+
For HTTP protocol family, this lets curl emulate a filled-in form in which a
user has pressed the submit button. This causes curl to POST data using the
Content-Type multipart/form-data according to RFC 2388.
Example: send an image to an HTTP server, where 'profile' is the name of the
form-field to which the file **portrait.jpg** is the input:
- curl -F profile=@portrait.jpg https://example.com/upload.cgi
+ curl -F profile=@portrait.jpg https://example.com/upload.cgi
Example: send your name and shoe size in two text fields to the server:
- curl -F name=John -F shoesize=11 https://example.com/
+ curl -F name=John -F shoesize=11 https://example.com/
Example: send your essay in a text field to the server. Send it as a plain
text field, but get the contents for it from a local file:
- curl -F "story=<hugefile.txt" https://example.com/
+ curl -F "story=<hugefile.txt" https://example.com/
You can also tell curl what Content-Type to use by using 'type=', in a manner
similar to:
- curl -F "web=@index.html;type=text/html" example.com
+ curl -F "web=@index.html;type=text/html" example.com
or
- curl -F "name=daniel;type=text/foo" example.com
+ curl -F "name=daniel;type=text/foo" example.com
You can also explicitly change the name field of a file upload part by setting
filename=, like this:
- curl -F "file=@localfile;filename=nameinpost" example.com
+ curl -F "file=@localfile;filename=nameinpost" example.com
If filename/path contains ',' or ';', it must be quoted by double-quotes like:
- curl -F "file=@\\"local,file\\";filename=\\"name;in;post\\"" example.com
+ curl -F "file=@\"local,file\";filename=\"name;in;post\"" example.com
or
- curl -F 'file=@"local,file";filename="name;in;post"' example.com
+ curl -F 'file=@"local,file";filename="name;in;post"' example.com
Note that if a filename/path is quoted by double-quotes, any double-quote
or backslash within the filename must be escaped by backslash.
Quoting must also be applied to non-file data if it contains semicolons,
leading/trailing spaces or leading double quotes:
- curl -F 'colors="red; green; blue";type=text/x-myapp' example.com
+ curl -F 'colors="red; green; blue";type=text/x-myapp' example.com
You can add custom headers to the field by setting headers=, like
- curl -F "submit=OK;headers=\\"X-submit-type: OK\\"" example.com
+ curl -F "submit=OK;headers=\"X-submit-type: OK\"" example.com
or
- curl -F "submit=OK;headers=@headerfile" example.com
+ curl -F "submit=OK;headers=@headerfile" example.com
The headers= keyword may appear more that once and above notes about quoting
apply. When headers are read from a file, Empty lines and lines starting
carriage-returns and trailing spaces are stripped.
Here is an example of a header file contents:
- # This file contain two headers.
- X-header-1: this is a header
+ # This file contain two headers.
+ X-header-1: this is a header
- # The following header is folded.
- X-header-2: this is
- another header
+ # The following header is folded.
+ X-header-2: this is
+ another header
To support sending multipart mail messages, the syntax is extended as follows:
inline part in two alternative formats: plain text and HTML. It attaches a
text file:
- curl -F '=(;type=multipart/alternative' \\
- -F '=plain text message' \\
- -F '= <body>HTML message</body>;type=text/html' \\
- -F '=)' -F '=@textfile.txt' ... smtp://example.com
+ curl -F '=(;type=multipart/alternative' \
+ -F '=plain text message' \
+ -F '= <body>HTML message</body>;type=text/html' \
+ -F '=)' -F '=@textfile.txt' ... smtp://example.com
Data can be encoded for transfer using encoder=. Available encodings are
*binary* and *8bit* that do nothing else than adding the corresponding
Example: send multipart mail with a quoted-printable text message and a
base64 attached file:
- curl -F '=text message;encoder=quoted-printable' \\
- -F '=@localfile;encoder=base64' ... smtp://example.com
+ curl -F '=text message;encoder=quoted-printable' \
+ -F '=@localfile;encoder=base64' ... smtp://example.com
See further examples and details in the MANUAL.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-account
Protocols: FTP
Added: 7.13.0
Category: ftp auth
-Example: --ftp-account "mr.robot" ftp://example.com/
-See-also: user
Multi: single
+See-also:
+ - user
+Example:
+ - --ftp-account "mr.robot" ftp://example.com/
---
+
+# `--ftp-account`
+
When an FTP server asks for "account data" after user name and password has
been provided, this data is sent off using the ACCT command.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-alternative-to-user
Protocols: FTP
Added: 7.15.5
Category: ftp
-Example: --ftp-alternative-to-user "U53r" ftp://example.com
-See-also: ftp-account user
Multi: single
+See-also:
+ - ftp-account
+ - user
+Example:
+ - --ftp-alternative-to-user "U53r" ftp://example.com
---
+
+# `--ftp-alternative-to-user`
+
If authenticating with the USER and PASS commands fails, send this command.
When connecting to Tumbleweed's Secure Transport server over FTPS using a
client certificate, using "SITE AUTH" tells the server to retrieve the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-create-dirs
Protocols: FTP SFTP
Help: Create the remote dirs if not present
-See-also: create-dirs
Category: ftp sftp curl
-Example: --ftp-create-dirs -T file ftp://example.com/remote/path/file
Added: 7.10.7
Multi: boolean
+See-also:
+ - create-dirs
+Example:
+ - --ftp-create-dirs -T file ftp://example.com/remote/path/file
---
+
+# `--ftp-create-dirs`
+
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. Using this option, curl
instead attempts to create missing directories.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-method
Protocols: FTP
Added: 7.15.1
Category: ftp
-Example: --ftp-method multicwd ftp://example.com/dir1/dir2/file
-Example: --ftp-method nocwd ftp://example.com/dir1/dir2/file
-Example: --ftp-method singlecwd ftp://example.com/dir1/dir2/file
-See-also: list-only
Multi: single
+See-also:
+ - list-only
+Example:
+ - --ftp-method multicwd ftp://example.com/dir1/dir2/file
+ - --ftp-method nocwd ftp://example.com/dir1/dir2/file
+ - --ftp-method singlecwd ftp://example.com/dir1/dir2/file
---
+
+# `--ftp-method`
+
Control what method curl should use to reach a file on an FTP(S)
server. The method argument should be one of the following alternatives:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-pasv
Help: Use PASV/EPSV instead of PORT
Protocols: FTP
Added: 7.11.0
-See-also: disable-epsv
Category: ftp
-Example: --ftp-pasv ftp://example.com/
Multi: boolean
+See-also:
+ - disable-epsv
+Example:
+ - --ftp-pasv ftp://example.com/
---
+
+# `--ftp-pasv`
+
Use passive mode for the data connection. Passive is the internal default
behavior, but using this option can be used to override a previous --ftp-port
option.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-port
Help: Use PORT instead of PASV
Short: P
Protocols: FTP
-See-also: ftp-pasv disable-eprt
Category: ftp
-Example: -P - ftp:/example.com
-Example: -P eth0 ftp:/example.com
-Example: -P 192.168.0.2 ftp:/example.com
Added: 4.0
Multi: single
+See-also:
+ - ftp-pasv
+ - disable-eprt
+Example:
+ - -P - ftp:/example.com
+ - -P eth0 ftp:/example.com
+ - -P 192.168.0.2 ftp:/example.com
---
+
+# `--ftp-port`
+
Reverses the default initiator/listener roles when connecting with FTP. This
option makes curl use active mode. curl then tells the server to connect back
to the client's specified address and port, while passive mode asks the server
Disable the use of PORT with --ftp-pasv. Disable the attempt to use the EPRT
command instead of PORT by using --disable-eprt. EPRT is really PORT++.
-You can also append ":[start]-[end]\&" to the right of the address, to tell
+You can also append ":[start]-[end]" to the right of the address, to tell
curl what TCP port range to use. That means you specify a port range, from a
lower to a higher number. A single number works as well, but do note that it
increases the risk of failure since the port may not be available.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-pret
Protocols: FTP
Added: 7.20.0
Category: ftp
-Example: --ftp-pret ftp://example.com/
-See-also: ftp-port ftp-pasv
Multi: boolean
+See-also:
+ - ftp-port
+ - ftp-pasv
+Example:
+ - --ftp-pret ftp://example.com/
---
+
+# `--ftp-pret`
+
Tell curl to send a PRET command before PASV (and EPSV). Certain FTP servers,
mainly drftpd, require this non-standard command for directory listings as
well as up and downloads in PASV mode.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-skip-pasv-ip
Help: Skip the IP address for PASV
Protocols: FTP
Added: 7.14.2
-See-also: ftp-pasv
Category: ftp
-Example: --ftp-skip-pasv-ip ftp://example.com/
Multi: boolean
+See-also:
+ - ftp-pasv
+Example:
+ - --ftp-skip-pasv-ip ftp://example.com/
---
+
+# `--ftp-skip-pasv-ip`
+
Tell curl to not use the IP address the server suggests in its response to
curl's PASV command when curl connects the data connection. Instead curl
reuses the same IP address it already uses for the control connection.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-ssl-ccc-mode
Help: Set CCC mode
Protocols: FTP
Added: 7.16.2
-See-also: ftp-ssl-ccc
Category: ftp tls
-Example: --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/
Multi: boolean
+See-also:
+ - ftp-ssl-ccc
+Example:
+ - --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/
---
+
+# `--ftp-ssl-ccc-mode`
+
Sets the CCC mode. The passive mode does not initiate the shutdown, but
instead waits for the server to do it, and does not reply to the shutdown from
the server. The active mode initiates the shutdown and waits for a reply from
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-ssl-ccc
Help: Send CCC after authenticating
Protocols: FTP
-See-also: ssl ftp-ssl-ccc-mode
Added: 7.16.1
Category: ftp tls
-Example: --ftp-ssl-ccc ftps://example.com/
Multi: boolean
+See-also:
+ - ssl
+ - ftp-ssl-ccc-mode
+Example:
+ - --ftp-ssl-ccc ftps://example.com/
---
+
+# `--ftp-ssl-ccc`
+
Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after
authenticating. The rest of the control channel communication is be
unencrypted. This allows NAT routers to follow the FTP transaction. The
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ftp-ssl-control
Protocols: FTP
Added: 7.16.0
Category: ftp tls
-Example: --ftp-ssl-control ftp://example.com
-See-also: ssl
Multi: boolean
+See-also:
+ - ssl
+Example:
+ - --ftp-ssl-control ftp://example.com
---
-Require SSL/TLS for the FTP login, clear for transfer. Allows secure
-authentication, but non-encrypted data transfers for efficiency. Fails the
+
+# `--ftp-ssl-control`
+
+Require SSL/TLS for the FTP login, clear for transfer. Allows secure
+authentication, but non-encrypted data transfers for efficiency. Fails the
transfer if the server does not support SSL/TLS.
my @desc = @_;
my $exam = 0;
for my $d (@desc) {
- if($d =~ /\(Added in ([0-9.]+)\)/i) {
- my $ver = $1;
- if(too_old($ver)) {
- $d =~ s/ *\(Added in $ver\)//gi;
- }
- }
- if($d !~ /^.\\"/) {
- # **bold**
- $d =~ s/\*\*(.*?)\*\*/\\fB$1\\fP/g;
- # *italics*
- $d =~ s/\*(.*?)\*/\\fI$1\\fP/g;
- }
- if(!$exam && ($d =~ /^ /)) {
- # start of example
- $exam = 1;
- print ".nf\n"; # no-fill
- }
- elsif($exam && ($d !~ /^ /)) {
- # end of example
- $exam = 0;
- print ".fi\n"; # fill-in
- }
- # skip lines starting with space (examples)
- if($d =~ /^[^ ]/ && $d =~ /--/) {
- # scan for options in longest-names first order
- for my $k (sort {length($b) <=> length($a)} keys %optlong) {
- # --tlsv1 is complicated since --tlsv1.2 etc are also
- # acceptable options!
- if(($k eq "tlsv1") && ($d =~ /--tlsv1\.[0-9]\\f/)) {
- next;
- }
- my $l = manpageify($k);
- $d =~ s/\-\-$k([^a-z0-9-])/$l$1/g;
- }
- }
- # quote minuses in the output
- $d =~ s/([^\\])-/$1\\-/g;
- # replace single quotes
- $d =~ s/\'/\\(aq/g;
- # handle double quotes first on the line
- $d =~ s/^(\s*)\"/$1\\(dq/;
print $d;
}
- if($exam) {
- print ".fi\n"; # fill-in
- }
}
sub seealso {
}
}
+sub render {
+ my ($fh, $f, $line) = @_;
+ my @desc;
+ my $tablemode = 0;
+ my $header = 0;
+ # if $top is TRUE, it means a top-level page and not a command line option
+ my $top = ($line == 1);
+ my $quote;
+ $start = 0;
+
+ while(<$fh>) {
+ my $d = $_;
+ $line++;
+ if($d =~ /^\.(SH|BR|IP|B)/) {
+ print STDERR "$f:$line:1:ERROR: nroff instruction in input: \".$1\"\n";
+ return 4;
+ }
+ if(/^ *<!--/) {
+ # skip comments
+ next;
+ }
+ if((!$start) && ($_ =~ /^[\r\n]*\z/)) {
+ # skip leading blank lines
+ next;
+ }
+ $start = 1;
+ if(/^# (.*)/) {
+ $header = 1;
+ if($top != 1) {
+ # ignored for command line options
+ $blankline++;
+ next;
+ }
+ push @desc, ".SH $1\n";
+ next;
+ }
+ elsif(/^###/) {
+ print STDERR "$f:$line:1:ERROR: ### header is not supported\n";
+ exit 3;
+ }
+ elsif(/^## (.*)/) {
+ my $word = $1;
+ # if there are enclosing quotes, remove them first
+ $word =~ s/[\"\'](.*)[\"\']\z/$1/;
+
+ # remove backticks from headers
+ $words =~ s/\`//g;
+
+ # if there is a space, it needs quotes
+ if($word =~ / /) {
+ $word = "\"$word\"";
+ }
+ if($top == 1) {
+ push @desc, ".IP $word\n";
+ }
+ else {
+ if(!$tablemode) {
+ push @desc, ".RS\n";
+ $tablemode = 1;
+ }
+ push @desc, ".IP \\fB$word\\fP\n";
+ }
+ $header = 1;
+ next;
+ }
+ elsif(/^##/) {
+ if($top == 1) {
+ print STDERR "$f:$line:1:ERROR: ## empty header top-level mode\n";
+ exit 3;
+ }
+ if($tablemode) {
+ # end of table
+ push @desc, ".RE\n.IP\n";
+ $tablmode = 0;
+ }
+ $header = 1;
+ next;
+ }
+ elsif(/^\.(IP|RS|RE)/) {
+ my ($cmd) = ($1);
+ print STDERR "$f:$line:1:ERROR: $cmd detected, use ##-style\n";
+ return 3;
+ }
+ elsif(/^[ \t]*\n/) {
+ # count and ignore blank lines
+ $blankline++;
+ next;
+ }
+ elsif($d =~ /^ (.*)/) {
+ my $word = $1;
+ if(!$quote) {
+ push @desc, ".nf\n";
+ }
+ $quote = 1;
+ $d = "$word\n";
+ }
+ elsif($quote && ($d !~ /^ (.*)/)) {
+ # end of quote
+ push @desc, ".fi\n";
+ $quote = 0;
+ }
+
+ $d =~ s/`%DATE`/$date/g;
+ $d =~ s/`%VERSION`/$version/g;
+ $d =~ s/`%GLOBALS`/$globals/g;
+
+ # convert single backslahes to doubles
+ $d =~ s/\\/\\\\/g;
+
+ # convert backticks to double quotes
+ $d =~ s/\`/\"/g;
+
+ if(!$quote && $d =~ /--/) {
+ # scan for options in longest-names first order
+ for my $k (sort {length($b) <=> length($a)} keys %optlong) {
+ # --tlsv1 is complicated since --tlsv1.2 etc are also
+ # acceptable options!
+ if(($k eq "tlsv1") && ($d =~ /--tlsv1\.[0-9]\\f/)) {
+ next;
+ }
+ my $l = manpageify($k);
+ $d =~ s/\-\-$k([^a-z0-9-])/$l$1/g;
+ }
+ }
+
+ if($d =~ /\(Added in ([0-9.]+)\)/i) {
+ my $ver = $1;
+ if(too_old($ver)) {
+ $d =~ s/ *\(Added in $ver\)//gi;
+ }
+ }
+
+ if(!$quote && ($d =~ /^(.*) /)) {
+ printf STDERR "$f:$line:%d:ERROR: 2 spaces detected\n",
+ length($1);
+ return 3;
+ }
+ # quote minuses in the output
+ $d =~ s/([^\\])-/$1\\-/g;
+ # replace single quotes
+ $d =~ s/\'/\\(aq/g;
+ # handle double quotes or periods first on the line
+ $d =~ s/^([\.\"])/\\&$1/;
+ # **bold**
+ $d =~ s/\*\*(\S.*?)\*\*/\\fB$1\\fP/g;
+ # *italics*
+ $d =~ s/\*(\S.*?)\*/\\fI$1\\fP/g;
+
+ # trim trailing spaces
+ $d =~ s/[ \t]+\z//;
+ push @desc, "\n" if($blankline && !$header);
+ $blankline = 0;
+ push @desc, $d;
+ $header = 0;
+
+ }
+ if($tablemode) {
+ # end of table
+ push @desc, ".RE\n.IP\n";
+ }
+ return @desc;
+}
+
sub single {
my ($f, $standalone)=@_;
- open(F, "<:crlf", "$f") ||
+ my $fh;
+ open($fh, "<:crlf", "$f") ||
return 1;
my $short;
my $long;
my $mutexed;
my $requires;
my $category;
- my $seealso;
+ my @seealso;
my $copyright;
my $spdx;
my @examples; # there can be more than one
my $multi;
my $scope;
my $experimental;
- while(<F>) {
+ my $start;
+ my $list; # identifies the list, 1 example, 2 see-also
+ while(<$fh>) {
$line++;
+ if(/^ *<!--/) {
+ next;
+ }
+ if(!$start) {
+ if(/^---/) {
+ $start = 1;
+ }
+ next;
+ }
if(/^Short: *(.)/i) {
$short=$1;
}
elsif(/^Protocols: *(.*)/i) {
$protocols=$1;
}
- elsif(/^See-also: *(.*)/i) {
+ elsif(/^See-also: +(.+)/i) {
if($seealso) {
print STDERR "ERROR: duplicated See-also in $f\n";
return 1;
}
- $seealso=$1;
+ push @seealso, $1;
+ }
+ elsif(/^See-also:/i) {
+ $list=2;
+ }
+ elsif(/^ *- (.*)/i && ($list == 2)) {
+ push @seealso, $1;
}
elsif(/^Requires: *(.*)/i) {
$requires=$1;
elsif(/^Category: *(.*)/i) {
$category=$1;
}
- elsif(/^Example: *(.*)/i) {
+ elsif(/^Example: +(.+)/i) {
+ push @examples, $1;
+ }
+ elsif(/^Example:/i) {
+ # '1' is the example list
+ $list = 1;
+ }
+ elsif(/^ *- (.*)/i && ($list == 1)) {
push @examples, $1;
}
elsif(/^Multi: *(.*)/i) {
;
}
elsif(/^---/) {
+ $start++;
if(!$long) {
print STDERR "ERROR: no 'Long:' in $f\n";
return 1;
print STDERR "$f:$line:1:ERROR: no 'Added:' version present\n";
return 2;
}
- if(!$seealso) {
+ if(!$seealso[0]) {
print STDERR "$f:$line:1:ERROR: no 'See-also:' field present\n";
return 2;
}
}
else {
chomp;
- print STDERR "WARN: unrecognized line in $f, ignoring:\n:'$_';"
+ print STDERR "$f:$line:1:WARN: unrecognized line in $f, ignoring:\n:'$_';"
}
}
- my @desc;
- my $tablemode = 0;
- while(<F>) {
- $line++;
- $dline++;
- if(($dline == 1) && ($_ =~ /^[\r\n]*\z/)) {
- print STDERR "$f:$line:1:ERROR: unnecessary leading blank line\n";
- return 3;
- }
- if(/^## (.*)/) {
- if(!$tablemode) {
- push @desc, ".RS\n";
- $tablemode = 1;
- }
- push @desc, ".IP \"\\fB$1\\fP\"\n";
- next;
- }
- elsif(/^##/) {
- if($tablemode) {
- # end of table
- push @desc, ".RE\n.IP\n";
- $tablmode = 0;
- }
- next;
- }
- elsif(/^\.(IP|RS|RE)/) {
- my ($cmd) = ($1);
- print STDERR "$f:$line:1:ERROR: $cmd detected, use ##-style\n";
- return 3;
- }
- push @desc, $_;
+
+ if($start < 2) {
+ print STDERR "$f:1:1:ERROR: no proper meta-data header\n";
+ return 2;
}
- close(F);
+
+ my @desc = render($fh, $f, $line);
+ close($fh);
if($tablemode) {
# end of table
push @desc, ".RE\n.IP\n";
printdesc(@extra);
my @foot;
- if($seealso) {
- my @m=split(/ /, $seealso);
- my $mstr;
- my $and = 0;
- my $num = scalar(@m);
- if($num > 2) {
- # use commas up to this point
- $and = $num - 1;
+
+ my $mstr;
+ my $and = 0;
+ my $num = scalar(@seealso);
+ if($num > 2) {
+ # use commas up to this point
+ $and = $num - 1;
+ }
+ my $i = 0;
+ for my $k (@seealso) {
+ if(!$helplong{$k}) {
+ print STDERR "$f:$line:1:WARN: see-also a non-existing option: $k\n";
}
- my $i = 0;
- for my $k (@m) {
- if(!$helplong{$k}) {
- print STDERR "$f:$line:1:WARN: see-also a non-existing option: $k\n";
- }
- my $l = manpageify($k);
- my $sep = " and";
- if($and && ($i < $and)) {
- $sep = ",";
- }
- $mstr .= sprintf "%s$l", $mstr?"$sep ":"";
- $i++;
+ my $l = manpageify($k);
+ my $sep = " and";
+ if($and && ($i < $and)) {
+ $sep = ",";
}
- push @foot, seealso($standalone, $mstr);
+ $mstr .= sprintf "%s$l", $mstr?"$sep ":"";
+ $i++;
}
+ push @foot, seealso($standalone, $mstr);
if($requires) {
my $l = manpageify($long);
print "\nExample$s:\n.nf\n";
foreach my $e (@examples) {
$e =~ s!\$URL!https://example.com!g;
- $e =~ s/-/\\-/g;
- $e =~ s/\'/\\(aq/g;
+ #$e =~ s/-/\\-/g;
+ #$e =~ s/\'/\\(aq/g;
+ # convert single backslahes to doubles
+ $e =~ s/\\/\\\\/g;
print " curl $e\n";
}
print ".fi\n";
my $arg;
my $protocols;
my $category;
+ my $start = 0;
while(<F>) {
+ if(!$start) {
+ if(/^---/) {
+ $start = 1;
+ }
+ next;
+ }
if(/^Short: (.)/i) {
$short=$1;
}
sub header {
my ($f)=@_;
- open(F, "<:crlf", "$f");
- my @d;
- while(<F>) {
- s/%DATE/$date/g;
- s/%VERSION/$version/g;
- s/%GLOBALS/$globals/g;
- push @d, $_;
- }
- close(F);
+ my $fh;
+ open($fh, "<:crlf", "$f");
+ my @d = render($fh, $f, 1);
+ close($fh);
printdesc(@d);
}
open(F, "<:crlf", "$f") ||
next;
my $long;
+ my $start = 0;
while(<F>) {
+ if(/^---/) {
+ if(!$start) {
+ $start = 1;
+ next;
+ }
+ else {
+ last;
+ }
+ }
if(/^Long: *(.*)/i) {
$long=$1;
}
push @globalopts, $long;
last;
}
- elsif(/^---/) {
- last;
- }
}
close(F);
}
sub mainpage {
my (@files) = @_;
my $ret;
- # show the page header
- header("page-header");
+ my $fh;
+ open($fh, "<:crlf", "mainpage.idx") ||
+ return 1;
- # output docs for all options
- foreach my $f (sort sortnames @files) {
- $ret += single($f, 0);
- }
+ print <<HEADER
+.\\" **************************************************************************
+.\\" * _ _ ____ _
+.\\" * Project ___| | | | _ \\| |
+.\\" * / __| | | | |_) | |
+.\\" * | (__| |_| | _ <| |___
+.\\" * \\___|\\___/|_| \\_\\_____|
+.\\" *
+.\\" * Copyright (C) Daniel Stenberg, <daniel\@haxx.se>, et al.
+.\\" *
+.\\" * This software is licensed as described in the file COPYING, which
+.\\" * you should have received as part of this distribution. The terms
+.\\" * are also available at https://curl.se/docs/copyright.html.
+.\\" *
+.\\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+.\\" * copies of the Software, and permit persons to whom the Software is
+.\\" * furnished to do so, under the terms of the COPYING file.
+.\\" *
+.\\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+.\\" * KIND, either express or implied.
+.\\" *
+.\\" * SPDX-License-Identifier: curl
+.\\" *
+.\\" **************************************************************************
+.\\"
+.\\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
+.\\"
+.TH curl 1 "$date" "curl $version" "curl Manual"
+HEADER
+ ;
- if(!$ret) {
- header("page-footer");
+ while(<$fh>) {
+ my $f = $_;
+ chomp $f;
+ if($f =~ /^#/) {
+ # stardard comment
+ next;
+ }
+ if(/^%options/) {
+ # output docs for all options
+ foreach my $f (sort sortnames @files) {
+ $ret += single($f, 0);
+ }
+ }
+ else {
+ # render the file
+ header($f);
+ }
}
+ close($fh);
exit $ret if($ret);
}
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: get
Help: Put the post data in the URL and use GET
Protocols: HTTP
Category: http upload
-Example: --get $URL
-Example: --get -d "tool=curl" -d "age=old" $URL
-Example: --get -I -d "tool=curl" $URL
Added: 7.8.1
-See-also: data request
Multi: boolean
+See-also:
+ - data
+ - request
+Example:
+ - --get $URL
+ - --get -d "tool=curl" -d "age=old" $URL
+ - --get -I -d "tool=curl" $URL
---
+
+# `--get`
+
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. The data is appended to the URL
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: globoff
Short: g
Help: Disable URL sequences and ranges using {} and []
Category: curl
-Example: -g "https://example.com/{[]}}}}"
Added: 7.6
-See-also: config disable
Multi: boolean
+See-also:
+ - config
+ - disable
+Example:
+ - -g "https://example.com/{[]}}}}"
---
+
+# `--globoff`
+
This option switches off the "URL globbing parser". When you set this option,
you can specify URLs that contain the letters {}[] without having curl itself
interpret them. Note that these letters are not normal legal URL contents but
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: happy-eyeballs-timeout-ms
Help: Time for IPv6 before trying IPv4
Added: 7.59.0
Category: connection
-Example: --happy-eyeballs-timeout-ms 500 $URL
-See-also: max-time connect-timeout
Multi: single
+See-also:
+ - max-time
+ - connect-timeout
+Example:
+ - --happy-eyeballs-timeout-ms 500 $URL
---
+
+# `--happy-eyeballs-timeout-ms`
+
Happy Eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6
addresses for dual-stack hosts, giving IPv6 a head-start of the specified
number of milliseconds. If the IPv6 address cannot be connected to within that
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: haproxy-clientip
Protocols: HTTP
Added: 8.2.0
Category: http proxy
-Example: --haproxy-clientip $IP
-See-also: proxy
Multi: single
+See-also:
+ - proxy
+Example:
+ - --haproxy-clientip $IP
---
+
+# `--haproxy-clientip`
+
Sets a client IP in HAProxy PROXY protocol v1 header at the beginning of the
connection.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: haproxy-protocol
Protocols: HTTP
Added: 7.60.0
Category: http proxy
-Example: --haproxy-protocol $URL
-See-also: proxy
Multi: boolean
+See-also:
+ - proxy
+Example:
+ - --haproxy-protocol $URL
---
+
+# `--haproxy-protocol`
+
Send a HAProxy PROXY protocol v1 header at the beginning of the
connection. This is used by some load balancers and reverse proxies to
indicate the client's true IP address and port.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: head
Help: Show document info only
Protocols: HTTP FTP FILE
Category: http ftp file
-Example: -I $URL
Added: 4.0
-See-also: get verbose trace-ascii
Multi: boolean
+See-also:
+ - get
+ - verbose
+ - trace-ascii
+Example:
+ - -I $URL
---
+
+# `--head`
+
Fetch the headers only! HTTP-servers feature the command HEAD which this uses
to get nothing but the header of a document. When used on an FTP or FILE file,
curl displays the file size and last modification time only.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: header
Help: Pass custom header(s) to server
Protocols: HTTP IMAP SMTP
Category: http imap smtp
-See-also: user-agent referer
-Example: -H "X-First-Name: Joe" $URL
-Example: -H "User-Agent: yes-please/2000" $URL
-Example: -H "Host:" $URL
-Example: -H @headers.txt $URL
Added: 5.0
Multi: append
+See-also:
+ - user-agent
+ - referer
+Example:
+ - -H "X-First-Name: Joe" $URL
+ - -H "User-Agent: yes-please/2000" $URL
+ - -H "Host:" $URL
+ - -H @headers.txt $URL
---
+
+# `--header`
+
Extra header to include in information sent. When used within an HTTP request,
it is added to the regular request headers.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: help
Short: h
Help: Get help for commands
Category: important curl
-Example: --help all
Added: 4.0
-See-also: verbose
Multi: custom
+See-also:
+ - verbose
+Example:
+ - --help all
---
+
+# `--help`
+
Usage help. This lists all curl command line options within the given
**category**.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: hostpubmd5
Protocols: SFTP SCP
Added: 7.17.1
Category: sftp scp
-Example: --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/
-See-also: hostpubsha256
Multi: single
+See-also:
+ - hostpubsha256
+Example:
+ - --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/
---
-Pass a string containing 32 hexadecimal digits. The string should
-be the 128 bit MD5 checksum of the remote host's public key, curl refuses
-the connection with the host unless the md5sums match.
+
+# `--hostpubmd5`
+
+Pass a string containing 32 hexadecimal digits. The string should be the 128
+bit **MD5** checksum of the remote host's public key, curl refuses the
+connection with the host unless the checksums match.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: hostpubsha256
Protocols: SFTP SCP
Added: 7.80.0
Category: sftp scp
-Example: --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/
-See-also: hostpubmd5
Multi: single
+See-also:
+ - hostpubmd5
+Example:
+ - --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/
---
+
+# `--hostpubsha256`
+
Pass a string containing a Base64-encoded SHA256 hash of the remote host's
public key. Curl refuses the connection with the host unless the hashes match.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: hsts
Help: Enable HSTS with this cache file
Added: 7.74.0
Category: http
-Example: --hsts cache.txt $URL
-See-also: proto
Multi: append
+See-also:
+ - proto
+Example:
+ - --hsts cache.txt $URL
---
+
+# `--hsts`
+
This option enables HSTS for the transfer. If the file name points to an
existing HSTS cache file, that is used. After a completed transfer, the
cache is saved to the file name again if it has been modified.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: http0.9
Protocols: HTTP
Help: Allow HTTP 0.9 responses
Category: http
-Example: --http0.9 $URL
Added: 7.64.0
-See-also: http1.1 http2 http3
Multi: boolean
+See-also:
+ - http1.1
+ - http2
+ - http3
+Example:
+ - --http0.9 $URL
---
+
+# `--http0.9`
+
Tells curl to be fine with HTTP version 0.9 response.
HTTP/0.9 is a response without headers and therefore you can also connect with
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: 0
Mutexed: http1.1 http2 http2-prior-knowledge http3
Help: Use HTTP 1.0
Category: http
-Example: --http1.0 $URL
-See-also: http0.9 http1.1
Multi: mutex
+See-also:
+ - http0.9
+ - http1.1
+Example:
+ - --http1.0 $URL
---
+
+# `--http1.0`
+
Tells curl to use HTTP version 1.0 instead of using its internally preferred
HTTP version.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: http1.1
Mutexed: http1.0 http2 http2-prior-knowledge http3
Help: Use HTTP 1.1
Category: http
-Example: --http1.1 $URL
-See-also: http1.0 http0.9
Multi: mutex
+See-also:
+ - http1.0
+ - http0.9
+Example:
+ - --http1.1 $URL
---
+
+# `--http1.1`
+
Tells curl to use HTTP version 1.1.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: http2-prior-knowledge
Requires: HTTP/2
Help: Use HTTP 2 without HTTP/1.1 Upgrade
Category: http
-Example: --http2-prior-knowledge $URL
-See-also: http2 http3
Multi: boolean
+See-also:
+ - http2
+ - http3
+Example:
+ - --http2-prior-knowledge $URL
---
+
+# `--http2-prior-knowledge`
+
Tells curl to issue its non-TLS HTTP requests using HTTP/2 without HTTP/1.1
Upgrade. It requires prior knowledge that the server supports HTTP/2 straight
away. HTTPS requests still do HTTP/2 the standard way with negotiated protocol
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: http2
Mutexed: http1.1 http1.0 http2-prior-knowledge http3
Requires: HTTP/2
Help: Use HTTP/2
-See-also: http1.1 http3 no-alpn
Category: http
-Example: --http2 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http3
+ - no-alpn
+Example:
+ - --http2 $URL
---
+
+# `--http2`
+
Tells curl to use HTTP version 2.
For HTTPS, this means curl negotiates HTTP/2 in the TLS handshake. curl does
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: http3-only
Mutexed: http1.1 http1.0 http2 http2-prior-knowledge http3
Requires: HTTP/3
Help: Use HTTP v3 only
-See-also: http1.1 http2 http3
Category: http
-Example: --http3-only $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+ - http3
+Example:
+ - --http3-only $URL
---
+
+# `--http3-only`
+
Instructs curl to use HTTP/3 to the host in the URL, with no fallback to
earlier HTTP versions. HTTP/3 can only be used for HTTPS and not for HTTP
URLs. For HTTP, this option triggers an error.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: http3
Mutexed: http1.1 http1.0 http2 http2-prior-knowledge http3-only
Requires: HTTP/3
Help: Use HTTP v3
-See-also: http1.1 http2
Category: http
-Example: --http3 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+Example:
+ - --http3 $URL
---
+
+# `--http3`
+
Tells curl to try HTTP/3 to the host in the URL, but fallback to earlier
HTTP versions if the HTTP/3 connection establishment fails. HTTP/3 is only
available for HTTPS and not for HTTP URLs.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ignore-content-length
Help: Ignore the size of the remote resource
Protocols: FTP HTTP
Category: http ftp
-Example: --ignore-content-length $URL
Added: 7.14.1
-See-also: ftp-skip-pasv-ip
Multi: boolean
+See-also:
+ - ftp-skip-pasv-ip
+Example:
+ - --ignore-content-length $URL
---
+
+# `--ignore-content-length`
+
For HTTP, Ignore the Content-Length header. This is particularly useful for
servers running Apache 1.x, which reports incorrect Content-Length for
files larger than 2 gigabytes.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: include
Short: i
Help: Include protocol response headers in the output
-See-also: verbose
Protocols: HTTP FTP
Category: important verbose
-Example: -i $URL
Added: 4.8
Multi: boolean
+See-also:
+ - verbose
+Example:
+ - -i $URL
---
+
+# `--include`
+
Include response headers in the output. HTTP response headers can include
things like server name, cookies, date of the document, HTTP version and
more... With non-HTTP protocols, the "headers" are other server communication.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: insecure
Short: k
Help: Allow insecure server connections
Protocols: TLS SFTP SCP
-See-also: proxy-insecure cacert capath
Category: tls sftp scp
-Example: --insecure $URL
Added: 7.10
Multi: boolean
+See-also:
+ - proxy-insecure
+ - cacert
+ - capath
+Example:
+ - --insecure $URL
---
+
+# `--insecure`
+
By default, every secure connection curl makes is verified to be secure before
the transfer takes place. This option makes curl skip the verification step
and proceed without checking.
the right name which matches the host name used in the URL and that the
certificate has been signed by a CA certificate present in the cert store.
See this online resource for further details:
- https://curl.se/docs/sslcerts.html
+**https://curl.se/docs/sslcerts.html**
For SFTP and SCP, this option makes curl skip the *known_hosts* verification.
*known_hosts* is a file normally stored in the user's home directory in the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: interface
Arg: <name>
Help: Use network INTERFACE (or address)
-See-also: dns-interface
Category: connection
-Example: --interface eth0 $URL
Added: 7.3
Multi: single
+See-also:
+ - dns-interface
+Example:
+ - --interface eth0 $URL
---
+
+# `--interface`
+
Perform an operation using a specified interface. You can enter interface
name, IP address or host name. An example could look like:
- curl --interface eth0:1 https://www.example.com/
+ curl --interface eth0:1 https://www.example.com/
On Linux it can be used to specify a **VRF**, but the binary needs to either
have **CAP_NET_RAW** or to be run as root. More information about Linux
-c: Copyright (C) 2023, Mark Gaiser, <markg85@gmail.com>
+---
+c: Copyright (C) Mark Gaiser, <markg85@gmail.com>
SPDX-License-Identifier: curl
Long: ipfs-gateway
Arg: <URL>
Help: Gateway for IPFS
Protocols: IPFS
Added: 8.4.0
-See-also: help manual
Category: ipfs
-Example: --ipfs-gateway $URL ipfs://
Multi: single
+See-also:
+ - help
+ - manual
+Example:
+ - --ipfs-gateway $URL ipfs://
---
+
+# `--ipfs-gateway`
+
Specify which gateway to use for IPFS and IPNS URLs. Not specifying this will
instead make curl check if the IPFS_GATEWAY environment variable is set, or if
-a ~/.ipfs/gateway file holding the gateway URL exists.
+a `~/.ipfs/gateway` file holding the gateway URL exists.
If you run a local IPFS node, this gateway is by default available under
-http://localhost:8080. A full example URL would look like:
+`http://localhost:8080`. A full example URL would look like:
- curl --ipfs-gateway http://localhost:8080 ipfs://bafybeigagd5nmnn2iys2f3doro7ydrevyr2mzarwidgadawmamiteydbzi
+ curl --ipfs-gateway http://localhost:8080 ipfs://bafybeigagd5nmnn2iys2f3doro7ydrevyr2mzarwidgadawmamiteydbzi
There are many public IPFS gateways. See for example:
-
- https://ipfs.github.io/public-gateway-checker/
+https://ipfs.github.io/public-gateway-checker/
WARNING: If you opt to go for a remote gateway you should be aware that you
completely trust the gateway. This is fine in local gateways as you host it
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: 4
Added: 7.10.8
Mutexed: ipv6
Requires:
-See-also: http1.1 http2
Help: Resolve names to IPv4 addresses
Category: connection dns
-Example: --ipv4 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+Example:
+ - --ipv4 $URL
---
+
+# `--ipv4`
+
This option tells curl to use IPv4 addresses only when resolving host names,
and not for example try IPv6.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: 6
Added: 7.10.8
Mutexed: ipv4
Requires:
-See-also: http1.1 http2
Help: Resolve names to IPv6 addresses
Category: connection dns
-Example: --ipv6 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+Example:
+ - --ipv6 $URL
---
+
+# `--ipv6`
+
This option tells curl to use IPv6 addresses only when resolving host names,
and not for example try IPv4.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: json
Arg: <data>
Help: HTTP POST JSON
Protocols: HTTP
-See-also: data-binary data-raw
Mutexed: form head upload-file
Category: http post upload
-Example: --json '{ "drink": "coffe" }' $URL
-Example: --json '{ "drink":' --json ' "coffe" }' $URL
-Example: --json @prepared $URL
-Example: --json @- $URL < json.txt
Added: 7.82.0
Multi: append
+See-also:
+ - data-binary
+ - data-raw
+Example:
+ - --json '{ "drink": "coffe" }' $URL
+ - --json '{ "drink":' --json ' "coffe" }' $URL
+ - --json @prepared $URL
+ - --json @- $URL < json.txt
---
+
+# `--json`
+
Sends the specified JSON data in a POST request to the HTTP server. --json
works as a shortcut for passing on these three options:
- --data [arg]
- --header "Content-Type: application/json"
- --header "Accept: application/json"
+ --data [arg]
+ --header "Content-Type: application/json"
+ --header "Accept: application/json"
There is **no verification** that the passed in data is actual JSON or that
the syntax is correct.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: junk-session-cookies
Short: j
Help: Ignore session cookies read from file
Protocols: HTTP
-See-also: cookie cookie-jar
Category: http
-Example: --junk-session-cookies -b cookies.txt $URL
Added: 7.9.7
Multi: boolean
+See-also:
+ - cookie
+ - cookie-jar
+Example:
+ - --junk-session-cookies -b cookies.txt $URL
---
+
+# `--junk-session-cookies`
+
When curl is told to read cookies from a given file, this option makes it
discard all "session cookies". This has the same effect as if a new session is
started. Typical browsers discard session cookies when they are closed down.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: keepalive-time
Help: Interval time for keepalive probes
Added: 7.18.0
Category: connection
-Example: --keepalive-time 20 $URL
-See-also: no-keepalive max-time
Multi: single
+See-also:
+ - no-keepalive
+ - max-time
+Example:
+ - --keepalive-time 20 $URL
---
+
+# `--keepalive-time`
+
This option sets the time a connection needs to remain idle before sending
keepalive probes and the time between individual keepalive probes. It is
-currently effective on operating systems offering the TCP_KEEPIDLE and
-TCP_KEEPINTVL socket options (meaning Linux, recent AIX, HP-UX and more).
-Keepalives are used by the TCP stack to detect broken networks on idle
+currently effective on operating systems offering the `TCP_KEEPIDLE` and
+`TCP_KEEPINTVL` socket options (meaning Linux, recent AIX, HP-UX and more).
+Keepalive is used by the TCP stack to detect broken networks on idle
connections. The number of missed keepalive probes before declaring the
connection down is OS dependent and is commonly 9 or 10. This option has no
effect if --no-keepalive is used.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: key-type
Help: Private key file type (DER/PEM/ENG)
Protocols: TLS
Category: tls
-Example: --key-type DER --key here $URL
Added: 7.9.3
-See-also: key
Multi: single
+See-also:
+ - key
+Example:
+ - --key-type DER --key here $URL
---
+
+# `--key-type`
+
Private key file type. Specify which type your --key provided private key
is. DER, PEM, and ENG are supported. If not specified, PEM is assumed.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: key
Protocols: TLS SSH
Help: Private key file name
Category: tls ssh
-Example: --cert certificate --key here $URL
Added: 7.9.3
-See-also: key-type cert
Multi: single
+See-also:
+ - key-type
+ - cert
+Example:
+ - --cert certificate --key here $URL
---
+
+# `--key`
+
Private key file name. Allows you to provide your private key in this separate
file. For SSH, if not specified, curl tries the following candidates in order:
-'~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'.
+`~/.ssh/id_rsa`, `~/.ssh/id_dsa`, `./id_rsa`, `./id_dsa`.
If curl is built against OpenSSL library, and the engine pkcs11 is available,
then a PKCS#11 URI (RFC 7512) can be used to specify a private key located in
-a PKCS#11 device. A string beginning with "pkcs11:" is interpreted as a
+a PKCS#11 device. A string beginning with `pkcs11:` is interpreted as a
PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine option is set as
-"pkcs11" if none was provided and the --key-type option is set as "ENG" if
+`pkcs11` if none was provided and the --key-type option is set as `ENG` if
none was provided.
If curl is built against Secure Transport or Schannel then this option is
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: krb
Protocols: FTP
Requires: Kerberos
Category: ftp
-Example: --krb clear ftp://example.com/
Added: 7.3
-See-also: delegation ssl
Multi: single
+See-also:
+ - delegation
+ - ssl
+Example:
+ - --krb clear ftp://example.com/
---
+
+# `--krb`
+
Enable Kerberos authentication and use. The level must be entered and should
be one of 'clear', 'safe', 'confidential', or 'private'. Should you use a
level that is not one of these, 'private' is used.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: libcurl
Help: Dump libcurl equivalent code of this command line
Added: 7.16.1
Category: curl
-Example: --libcurl client.c $URL
-See-also: verbose
Multi: single
Scope: global
+See-also:
+ - verbose
+Example:
+ - --libcurl client.c $URL
---
+
+# `--libcurl`
+
Append 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!
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: limit-rate
Arg: <speed>
Help: Limit transfer speed to RATE
Category: connection
-Example: --limit-rate 100K $URL
-Example: --limit-rate 1000 $URL
-Example: --limit-rate 10M $URL
Added: 7.10
-See-also: rate speed-limit speed-time
Multi: single
+See-also:
+ - rate
+ - speed-limit
+ - speed-time
+Example:
+ - --limit-rate 100K $URL
+ - --limit-rate 1000 $URL
+ - --limit-rate 10M $URL
---
+
+# `--limit-rate`
+
Specify the maximum transfer rate you want curl to use - for both downloads
and uploads. This feature is useful if you have a limited pipe and you would like
your transfer not to use your entire bandwidth. To make it slower than it
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: list-only
Help: List only mode
Added: 4.0
Category: ftp pop3 sftp
-Example: --list-only ftp://example.com/dir/
-See-also: quote request
Multi: boolean
+See-also:
+ - quote
+ - request
+Example:
+ - --list-only ftp://example.com/dir/
---
+
+# `--list-only`
+
(FTP)
When listing an FTP directory, this switch forces a name-only view. This is
especially useful if the user wants to machine-parse the contents of an FTP
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: local-port
Help: Force use of RANGE for local port numbers
Added: 7.15.2
Category: connection
-Example: --local-port 1000-3000 $URL
-See-also: globoff
Multi: single
+See-also:
+ - globoff
+Example:
+ - --local-port 1000-3000 $URL
---
+
+# `--local-port`
+
Set a preferred single number or range (FROM-TO) of local port numbers to use
-for the connection(s). Note that port numbers by nature are a scarce resource
+for the connection(s). Note that port numbers by nature are a scarce resource
so setting this range to something too narrow might cause unnecessary
connection setup failures.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: location-trusted
Help: Like --location, and send auth to other hosts
Protocols: HTTP
-See-also: user
Category: http auth
-Example: --location-trusted -u user:password $URL
Added: 7.10.4
Multi: boolean
+See-also:
+ - user
+Example:
+ - --location-trusted -u user:password $URL
---
+
+# `--location-trusted`
+
Like --location, but allows sending the name + password to all hosts that the
site may redirect to. This may or may not introduce a security breach if the
site redirects you to a site to which you send your authentication info
-(which is plaintext in the case of HTTP Basic authentication).
+(which is clear-text in the case of HTTP Basic authentication).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: location
Help: Follow redirects
Protocols: HTTP
Category: http
-Example: -L $URL
Added: 4.9
-See-also: resolve alt-svc
Multi: boolean
+See-also:
+ - resolve
+ - alt-svc
+Example:
+ - -L $URL
---
+
+# `--location`
+
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 on the new place. If used together with
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: login-options
Help: Server login options
Added: 7.34.0
Category: imap pop3 smtp auth
-Example: --login-options 'AUTH=*' imap://example.com
-See-also: user
Multi: single
+See-also:
+ - user
+Example:
+ - --login-options 'AUTH=*' imap://example.com
---
+
+# `--login-options`
+
Specify the login options to use during server authentication.
You can use login options to specify protocol specific options that may be
used during authentication. At present only IMAP, POP3 and SMTP support login
options. For more information about login options please see RFC 2384,
RFC 5092 and the IETF draft
-https://datatracker.ietf.org/doc/html/draft-earhart-url-smtp-00.
+https://datatracker.ietf.org/doc/html/draft-earhart-url-smtp-00
-Since 8.2.0, IMAP supports the login option "AUTH=+LOGIN". With this option,
-curl uses the plain (not SASL) LOGIN IMAP command even if the server
+Since 8.2.0, IMAP supports the login option `AUTH=+LOGIN`. With this option,
+curl uses the plain (not SASL) `LOGIN IMAP` command even if the server
advertises SASL authentication. Care should be taken in using this option, as
it sends your password over the network in plain text. This does not work if
-the IMAP server disables the plain LOGIN (e.g. to prevent password snooping).
+the IMAP server disables the plain `LOGIN` (e.g. to prevent password
+snooping).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: mail-auth
Protocols: SMTP
Help: Originator address of the original email
Added: 7.25.0
-See-also: mail-rcpt mail-from
Category: smtp
-Example: --mail-auth user@example.come -T mail smtp://example.com/
Multi: single
+See-also:
+ - mail-rcpt
+ - mail-from
+Example:
+ - --mail-auth user@example.come -T mail smtp://example.com/
---
+
+# `--mail-auth`
+
Specify a single address. This is used to specify the authentication address
(identity) of a submitted message that is being relayed to another server.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: mail-from
Help: Mail from this address
Protocols: SMTP
Added: 7.20.0
-See-also: mail-rcpt mail-auth
Category: smtp
-Example: --mail-from user@example.com -T mail smtp://example.com/
Multi: single
+See-also:
+ - mail-rcpt
+ - mail-auth
+Example:
+ - --mail-from user@example.com -T mail smtp://example.com/
---
+
+# `--mail-from`
+
Specify a single address that the given mail should get sent from.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: mail-rcpt-allowfails
Protocols: SMTP
Added: 7.69.0
Category: smtp
-Example: --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com
-See-also: mail-rcpt
Multi: boolean
+See-also:
+ - mail-rcpt
+Example:
+ - --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com
---
+
+# `--mail-rcpt-allowfails`
+
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.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: mail-rcpt
Protocols: SMTP
Added: 7.20.0
Category: smtp
-Example: --mail-rcpt user@example.net smtp://example.com
-See-also: mail-rcpt-allowfails
Multi: append
+See-also:
+ - mail-rcpt-allowfails
+Example:
+ - --mail-rcpt user@example.net smtp://example.com
---
+
+# `--mail-rcpt`
+
Specify a single email address, user name or mailing list name. Repeat this
option several times to send to multiple recipients.
--- /dev/null
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+# SPDX-License-Identifier: curl
+#
+###########################################################################
+_NAME.md
+_SYNOPSIS.md
+_DESCRIPTION.md
+_URL.md
+_GLOBBING.md
+_VARIABLES.md
+_OUTPUT.md
+_PROTOCOLS.md
+_PROGRESS.md
+_VERSION.md
+_OPTIONS.md
+%options
+_FILES.md
+_ENVIRONMENT.md
+_PROXYPREFIX.md
+_EXITCODES.md
+_BUGS.md
+_AUTHORS.md
+_WWW.md
+_SEEALSO.md
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: manual
Short: M
Help: Display the full manual
Category: curl
-Example: --manual
Added: 5.2
-See-also: verbose libcurl trace
Multi: custom
+See-also:
+ - verbose
+ - libcurl
+ - trace
+Example:
+ - --manual
---
+
+# `--manual`
+
Manual. Display the huge help text.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: max-filesize
Arg: <bytes>
Help: Maximum file size to download
Protocols: FTP HTTP MQTT
-See-also: limit-rate
Category: connection
-Example: --max-filesize 100K $URL
Added: 7.10.8
Multi: single
+See-also:
+ - limit-rate
+Example:
+ - --max-filesize 100K $URL
---
+
+# `--max-filesize`
+
Specify the maximum size (in bytes) of a file to download. If the file
requested is larger than this value, the transfer does not start and curl
returns with exit code 63.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: max-redirs
Help: Maximum number of redirects allowed
Protocols: HTTP
Category: http
-Example: --max-redirs 3 --location $URL
Added: 7.5
-See-also: location
Multi: single
+See-also:
+ - location
+Example:
+ - --max-redirs 3 --location $URL
---
+
+# `--max-redirs`
+
Set maximum number of redirections to follow. When --location is used, to
prevent curl from following too many redirects, by default, the limit is
set to 50 redirects. Set this option to -1 to make it unlimited.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: max-time
Short: m
Arg: <fractional seconds>
Help: Maximum time allowed for transfer
-See-also: connect-timeout retry-max-time
Category: connection
-Example: --max-time 10 $URL
-Example: --max-time 2.92 $URL
Added: 4.0
Multi: single
+See-also:
+ - connect-timeout
+ - retry-max-time
+Example:
+ - --max-time 10 $URL
+ - --max-time 2.92 $URL
---
-Maximum time in seconds that you allow each transfer to take. This is useful
+
+# `--max-time`
+
+Maximum time in seconds that you allow each transfer to take. This is useful
for preventing your batch jobs from hanging for hours due to slow networks or
links going down. This option accepts decimal values (added in 7.32.0).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: metalink
Help: Process given URLs as metalink XML file
Added: 7.27.0
Category: misc
-Example: --metalink file $URL
-See-also: parallel
Multi: single
+See-also:
+ - parallel
+Example:
+ - --metalink file $URL
---
+
+# `--metalink`
+
This option was previously used to specify a Metalink resource. Metalink
support is disabled in curl for security reasons (added in 7.78.0).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: negotiate
Help: Use HTTP Negotiate (SPNEGO) authentication
Protocols: HTTP
-See-also: basic ntlm anyauth proxy-negotiate
Category: auth http
-Example: --negotiate -u : $URL
Added: 7.10.6
Multi: mutex
+See-also:
+ - basic
+ - ntlm
+ - anyauth
+ - proxy-negotiate
+Example:
+ - --negotiate -u : $URL
---
+
+# `--negotiate`
+
Enables Negotiate (SPNEGO) authentication.
This option requires a library built with GSS-API or SSPI support. Use
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: netrc-file
Added: 7.21.5
Mutexed: netrc
Category: curl
-Example: --netrc-file netrc $URL
-See-also: netrc user config
Multi: single
+See-also:
+ - netrc
+ - user
+ - config
+Example:
+ - --netrc-file netrc $URL
---
+
+# `--netrc-file`
+
This option is similar to --netrc, except that you provide the path (absolute
or relative) to the netrc file that curl should use. You can only specify one
netrc file per invocation.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: netrc-optional
Help: Use either .netrc or URL
Mutexed: netrc
-See-also: netrc-file
Category: curl
-Example: --netrc-optional $URL
Added: 7.9.8
Multi: boolean
+See-also:
+ - netrc-file
+Example:
+ - --netrc-optional $URL
---
+
+# `--netrc-optional`
+
Similar to --netrc, but this option makes the .netrc usage **optional**
and not mandatory as the --netrc option does.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: netrc
Short: n
Help: Must read .netrc for user name and password
Category: curl
-Example: --netrc $URL
Added: 4.6
-See-also: netrc-file config user
Mutexed: netrc-file netrc-optional
Multi: boolean
+See-also:
+ - netrc-file
+ - config
+ - user
+Example:
+ - --netrc $URL
---
+
+# `--netrc`
+
Makes curl scan the *.netrc* file in the user's home directory for login name
and password. This is typically used for FTP on Unix. If used with HTTP, curl
enables user authentication. See *netrc(5)* and *ftp(1)* for details on the
the machine host.domain.com with user name 'myself' and password 'secret'
could look similar to:
- machine host.domain.com
- login myself
- password secret
+ machine host.domain.com
+ login myself
+ password secret
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: :
Magic: divider
Help: Make next URL use its separate set of options
Category: curl
-Example: $URL --next -d postthis www2.example.com
-Example: -I $URL --next https://example.net/
-See-also: parallel config
Multi: append
+See-also:
+ - parallel
+ - config
+Example:
+ - $URL --next -d postthis www2.example.com
+ - -I $URL --next https://example.net/
---
+
+# `--next`
+
Tells curl to use a separate operation for the following URL and associated
options. This allows you to send several URL requests, each with their own
specific options, for example, such as different user names or custom requests
For example, you can do both a GET and a POST in a single command line:
- curl www1.example.com --next -d postthis www2.example.com
+ curl www1.example.com --next -d postthis www2.example.com
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-alpn
Tags: HTTP/2
Protocols: HTTPS
Added: 7.36.0
-See-also: no-npn http2
Requires: TLS
Help: Disable the ALPN TLS extension
Category: tls http
-Example: --no-alpn $URL
Multi: boolean
+See-also:
+ - no-npn
+ - http2
+Example:
+ - --no-alpn $URL
---
+
+# `--no-alpn`
+
Disable the ALPN TLS extension. ALPN is enabled by default if libcurl was built
with an SSL library that supports ALPN. ALPN is used by a libcurl that supports
HTTP/2 to negotiate HTTP/2 support with the server during https sessions.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-buffer
Short: N
Help: Disable buffering of the output stream
Category: curl
-Example: --no-buffer $URL
Added: 6.5
-See-also: progress-bar
Multi: boolean
+See-also:
+ - progress-bar
+Example:
+ - --no-buffer $URL
---
+
+# `--no-buffer`
+
Disables the buffering of the output stream. In normal work situations, curl
uses a standard buffered output stream that has the effect that it outputs the
data in chunks, not necessarily exactly when the data arrives. Using this
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-clobber
Help: Do not overwrite files that already exist
Category: curl output
Added: 7.83.0
-See-also: output remote-name
-Example: --no-clobber --output local/dir/file $URL
Multi: boolean
+See-also:
+ - output
+ - remote-name
+Example:
+ - --no-clobber --output local/dir/file $URL
---
+
+# `--no-clobber`
+
When used in conjunction with the --output, --remote-header-name,
--remote-name, or --remote-name-all options, curl avoids overwriting files
that already exist. Instead, a dot and a number gets appended to the name of
the file that would be created, up to filename.100 after which it does not
create any file.
-Note that this is the negated option name documented. You can thus use
+Note that this is the negated option name documented. You can thus use
--clobber to enforce the clobbering, even if --remote-header-name is
specified.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-keepalive
Help: Disable TCP keepalive on the connection
Category: connection
-Example: --no-keepalive $URL
Added: 7.18.0
-See-also: keepalive-time
Multi: boolean
+See-also:
+ - keepalive-time
+Example:
+ - --no-keepalive $URL
---
+
+# `--no-keepalive`
+
Disables the use of keepalive messages on the TCP connection. curl otherwise
enables them by default.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-npn
Protocols: HTTPS
Added: 7.36.0
Mutexed:
-See-also: no-alpn http2
Requires: TLS
Help: Disable the NPN TLS extension
Category: tls http
-Example: --no-npn $URL
Multi: boolean
+See-also:
+ - no-alpn
+ - http2
+Example:
+ - --no-npn $URL
---
+
+# `--no-npn`
+
curl never uses NPN, this option has no effect (added in 7.86.0).
Disable the NPN TLS extension. NPN is enabled by default if libcurl was built
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-progress-meter
Help: Do not show the progress meter
-See-also: verbose silent
Added: 7.67.0
Category: verbose
-Example: --no-progress-meter -o store $URL
Multi: boolean
+See-also:
+ - verbose
+ - silent
+Example:
+ - --no-progress-meter -o store $URL
---
+
+# `--no-progress-meter`
+
Option to switch off the progress meter output without muting or otherwise
affecting warning and informational messages like --silent does.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: no-sessionid
Protocols: TLS
Added: 7.16.0
Category: tls
-Example: --no-sessionid $URL
-See-also: insecure
Multi: boolean
+See-also:
+ - insecure
+Example:
+ - --no-sessionid $URL
---
+
+# `--no-sessionid`
+
Disable curl's use of SSL session-ID caching. By default all transfers are
done using the cache. Note that while nothing should ever get hurt by
attempting to reuse SSL session-IDs, there seem to be broken SSL
+++ /dev/null
-c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-SPDX-License-Identifier: curl
-Long: noproxy
-Arg: <no-proxy-list>
-Help: List of hosts which do not use proxy
-Added: 7.19.4
-Category: proxy
-Example: --noproxy "www.example" $URL
-See-also: proxy
-Multi: single
----
-Comma-separated list of hosts for which not to use a proxy, if one is
-specified. The only wildcard is a single * character, which matches all hosts,
-and effectively disables the proxy. Each name in this list is matched as
-either a domain which contains the hostname, or the hostname itself. For
-example, local.com would match local.com, local.com:80, and www.local.com, but
-not www.notlocal.com.
-
-This option overrides the environment variables that disable the proxy
-('no_proxy' and 'NO_PROXY') (added in 7.53.0). If there is an environment
-variable disabling a proxy, you can set the no proxy list to "" to override
-it.
-
-IP addresses specified to this option can be provided using CIDR notation
-(added in 7.86.0): an appended slash and number specifies the number of
-"network bits" out of the address to use in the comparison. For example
-"192.168.0.0/16" would match all addresses starting with "192.168".
--- /dev/null
+---
+c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+SPDX-License-Identifier: curl
+Long: noproxy
+Arg: <no-proxy-list>
+Help: List of hosts which do not use proxy
+Added: 7.19.4
+Category: proxy
+Multi: single
+See-also:
+ - proxy
+Example:
+ - --noproxy "www.example" $URL
+---
+
+# `--noproxy`
+
+Comma-separated list of hosts for which not to use a proxy, if one is
+specified. The only wildcard is a single `*` character, which matches all
+hosts, and effectively disables the proxy. Each name in this list is matched
+as either a domain which contains the hostname, or the hostname itself. For
+example, `local.com` would match `local.com`, `local.com:80`, and
+`www.local.com`, but not `www.notlocal.com`.
+
+This option overrides the environment variables that disable the proxy
+(`no_proxy` and `NO_PROXY`) (added in 7.53.0). If there is an environment
+variable disabling a proxy, you can set the no proxy list to "" to override
+it.
+
+IP addresses specified to this option can be provided using CIDR notation
+(added in 7.86.0): an appended slash and number specifies the number of
+network bits out of the address to use in the comparison. For example
+`192.168.0.0/16` would match all addresses starting with `192.168`.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ntlm-wb
Help: Use HTTP NTLM authentication with winbind
Protocols: HTTP
-See-also: ntlm proxy-ntlm
Category: auth http
-Example: --ntlm-wb -u user:password $URL
Added: 7.22.0
Multi: mutex
+See-also:
+ - ntlm
+ - proxy-ntlm
+Example:
+ - --ntlm-wb -u user:password $URL
---
+
+# `--ntlm-wb`
+
Enables NTLM much in the style --ntlm does, but hand over the authentication
-to the separate binary ntlmauth application that is executed when needed.
+to the separate binary `ntlmauth` application that is executed when needed.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ntlm
Help: Use HTTP NTLM authentication
Mutexed: basic negotiate digest anyauth
-See-also: proxy-ntlm
Protocols: HTTP
Requires: TLS
Category: auth http
-Example: --ntlm -u user:password $URL
Added: 7.10.6
Multi: mutex
+See-also:
+ - proxy-ntlm
+Example:
+ - --ntlm -u user:password $URL
---
+
+# `--ntlm`
+
Enables NTLM authentication. The NTLM authentication method was designed by
Microsoft and is used by IIS web servers. It is a proprietary protocol,
reverse-engineered by clever people and implemented in curl based on their
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: oauth2-bearer
Arg: <token>
Protocols: IMAP LDAP POP3 SMTP HTTP
Category: auth
-Example: --oauth2-bearer "mF_9.B5f-4.1JqM" $URL
Added: 7.33.0
-See-also: basic ntlm digest
Multi: single
+See-also:
+ - basic
+ - ntlm
+ - digest
+Example:
+ - --oauth2-bearer "mF_9.B5f-4.1JqM" $URL
---
+
+# `--oauth2-bearer`
+
Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token
is used in conjunction with the user name which can be specified as part of
the --url or --user options.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: output-dir
Arg: <dir>
Help: Directory to save files in
Added: 7.73.0
-See-also: remote-name remote-header-name
Category: curl
-Example: --output-dir "tmp" -O $URL
Multi: single
+See-also:
+ - remote-name
+ - remote-header-name
+Example:
+ - --output-dir "tmp" -O $URL
---
+
+# `--output-dir`
+
This option specifies the directory in which files should be stored, when
--remote-name or --output are used.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: output
Arg: <file>
Short: o
Help: Write to file instead of stdout
-See-also: remote-name remote-name-all remote-header-name
Category: important curl
-Example: -o file $URL
-Example: "http://{one,two}.example.com" -o "file_#1.txt"
-Example: "http://{site,host}.host[1-5].example" -o "#1_#2"
-Example: -o file $URL -o file2 https://example.net
Added: 4.0
Multi: append
+See-also:
+ - remote-name
+ - remote-name-all
+ - remote-header-name
+Example:
+ - -o file $URL
+ - "http://{one,two}.example.com" -o "file_#1.txt"
+ - "http://{site,host}.host[1-5].example" -o "#1_#2"
+ - -o file $URL -o file2 https://example.net
---
+
+# `--output`
+
Write output to <file> instead of stdout. If you are using {} or [] to fetch
multiple documents, you should quote the URL and you can use '#' followed by a
number in the <file> specifier. That variable is replaced with the current
string for the URL being fetched. Like in:
- curl "http://{one,two}.example.com" -o "file_#1.txt"
+ curl "http://{one,two}.example.com" -o "file_#1.txt"
or use several variables like:
- curl "http://{site,host}.host[1-5].example" -o "#1_#2"
+ curl "http://{site,host}.host[1-5].example" -o "#1_#2"
You may use this option as many times as the number of URLs you have. For
example, if you specify two URLs on the same command line, you can use it like
this:
- curl -o aa example.com -o bb example.net
+ curl -o aa example.com -o bb example.net
and the order of the -o options and the URLs does not matter, just that the
first -o is for the first URL and so on, so the above command line can also be
written as
- curl example.com example.net -o aa -o bb
+ curl example.com example.net -o aa -o bb
See also the --create-dirs option to create the local directories
dynamically. Specifying the output as '-' (a single dash) passes the output to
To suppress response bodies, you can redirect output to /dev/null:
- curl example.com -o /dev/null
+ curl example.com -o /dev/null
Or for Windows:
- curl example.com -o nul
+ curl example.com -o nul
+++ /dev/null
-.SH FILES
-.I ~/.curlrc
-.RS
-Default config file, see --config for details.
-.SH ENVIRONMENT
-The environment variables can be specified in lower case or upper case. The
-lower case version has precedence. http_proxy is an exception as it is only
-available in lower case.
-
-Using an environment variable to set the proxy has the same effect as using
-the --proxy option.
-
-.IP "http_proxy [protocol://]<host>[:port]"
-Sets the proxy server to use for HTTP.
-.IP "HTTPS_PROXY [protocol://]<host>[:port]"
-Sets the proxy server to use for HTTPS.
-.IP "[url-protocol]_PROXY [protocol://]<host>[:port]"
-Sets the proxy server to use for [url-protocol], where the protocol is a
-protocol that curl supports and as specified in a URL. FTP, FTPS, POP3, IMAP,
-SMTP, LDAP, etc.
-.IP "ALL_PROXY [protocol://]<host>[:port]"
-Sets the proxy server to use if no protocol-specific proxy is set.
-.IP "NO_PROXY <comma-separated list of hosts/domains>"
-list of host names that should not go through any proxy. If set to an asterisk
-'*' only, it matches all hosts. Each name in this list is matched as either
-a domain name which contains the hostname, or the hostname itself.
-
-This environment variable disables use of the proxy even when specified with
-the --proxy option. That is
-.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
-.B http://direct.example.com
-accesses the target URL directly, and
-.B NO_PROXY=direct.example.com curl -x http://proxy.example.com
-.B http://somewhere.example.com
-accesses the target URL through the proxy.
-
-The list of host names can also be include numerical IP addresses, and IPv6
-versions should then be given without enclosing brackets.
-
-IP addresses can be specified using CIDR notation: an appended slash and
-number specifies the number of "network bits" out of the address to use in the
-comparison (added in 7.86.0). For example "192.168.0.0/16" would match all
-addresses starting with "192.168".
-.IP "APPDATA <dir>"
-On Windows, this variable is used when trying to find the home directory. If
-the primary home variable are all unset.
-.IP "COLUMNS <terminal width>"
-If set, the specified number of characters is used as the terminal width when
-the alternative progress-bar is shown. If not set, curl tries to figure it out
-using other ways.
-.IP "CURL_CA_BUNDLE <file>"
-If set, it is used as the --cacert value. This environment variable is ignored
-if Schannel is used as the TLS backend.
-.IP "CURL_HOME <dir>"
-If set, is the first variable curl checks when trying to find its home
-directory. If not set, it continues to check *XDG_CONFIG_HOME*
-.IP "CURL_SSL_BACKEND <TLS backend>"
-If curl was built with support for "MultiSSL", meaning that it has built-in
-support for more than one TLS backend, this environment variable can be set to
-the case insensitive name of the particular backend to use when curl is
-invoked. Setting a name that is not a built-in alternative makes curl stay
-with the default.
-
-SSL backend names (case-insensitive): **bearssl**, **gnutls**, **mbedtls**,
-**openssl**, **rustls**, **schannel**, **secure-transport**, **wolfssl**
-.IP "HOME <dir>"
-If set, this is used to find the home directory when that is needed. Like when
-looking for the default .curlrc. *CURL_HOME* and *XDG_CONFIG_HOME*
-have preference.
-.IP "QLOGDIR <directory name>"
-If curl was built with HTTP/3 support, setting this environment variable to a
-local directory makes curl produce **qlogs** in that directory, using file
-names named after the destination connection id (in hex). Do note that these
-files can become rather large. Works with the ngtcp2 and quiche QUIC backends.
-.IP SHELL
-Used on VMS when trying to detect if using a **DCL** or a **unix** shell.
-.IP "SSL_CERT_DIR <dir>"
-If set, it is used as the --capath value. This environment variable is ignored
-if Schannel is used as the TLS backend.
-.IP "SSL_CERT_FILE <path>"
-If set, it is used as the --cacert value. This environment variable is ignored
-if Schannel is used as the TLS backend.
-.IP "SSLKEYLOGFILE <file name>"
-If you set this environment variable to a file name, curl stores TLS secrets
-from its connections in that file when invoked to enable you to analyze the
-TLS traffic in real time using network analyzing tools such as Wireshark. This
-works with the following TLS backends: OpenSSL, libressl, BoringSSL, GnuTLS
-and wolfSSL.
-.IP "USERPROFILE <dir>"
-On Windows, this variable is used when trying to find the home directory. If
-the other, primary, variable are all unset. If set, curl uses the path
-**"$USERPROFILE\\Application Data"**.
-.IP "XDG_CONFIG_HOME <dir>"
-If *CURL_HOME* is not set, this variable is checked when looking for a
-default .curlrc file.
-.SH "PROXY PROTOCOL PREFIXES"
-The proxy string may be specified with a protocol:// prefix to specify
-alternative proxy protocols. (Added in 7.21.7)
-
-If no protocol is specified in the proxy string or if the string does not
-match a supported one, the proxy is treated as an HTTP proxy.
-
-The supported proxy protocol prefixes are as follows:
-.IP "http://"
-Makes it use it as an HTTP proxy. The default if no scheme prefix is used.
-.IP "https://"
-Makes it treated as an **HTTPS** proxy.
-.IP "socks4://"
-Makes it the equivalent of --socks4
-.IP "socks4a://"
-Makes it the equivalent of --socks4a
-.IP "socks5://"
-Makes it the equivalent of --socks5
-.IP "socks5h://"
-Makes it the equivalent of --socks5-hostname
-.SH EXIT CODES
-There are a bunch of different error codes and their corresponding error
-messages that may appear under error conditions. At the time of this writing,
-the exit codes are:
-.IP 0
-Success. The operation completed successfully according to the instructions.
-.IP 1
-Unsupported protocol. This build of curl has no support for this protocol.
-.IP 2
-Failed to initialize.
-.IP 3
-URL malformed. The syntax was not correct.
-.IP 4
-A feature or option that was needed to perform the desired request was not
-enabled or was explicitly disabled at build-time. To make curl able to do
-this, you probably need another build of libcurl.
-.IP 5
-Could not resolve proxy. The given proxy host could not be resolved.
-.IP 6
-Could not resolve host. The given remote host could not be resolved.
-.IP 7
-Failed to connect to host.
-.IP 8
-Weird server reply. The server sent data curl could not parse.
-.IP 9
-FTP access denied. The server denied login or denied access to the particular
-resource or directory you wanted to reach. Most often you tried to change to a
-directory that does not exist on the server.
-.IP 10
-FTP accept failed. While waiting for the server to connect back when an active
-FTP session is used, an error code was sent over the control connection or
-similar.
-.IP 11
-FTP weird PASS reply. Curl could not parse the reply sent to the PASS request.
-.IP 12
-During an active FTP session while waiting for the server to connect back to
-curl, the timeout expired.
-.IP 13
-FTP weird PASV reply, Curl could not parse the reply sent to the PASV request.
-.IP 14
-FTP weird 227 format. Curl could not parse the 227-line the server sent.
-.IP 15
-FTP cannot use host. Could not resolve the host IP we got in the 227-line.
-.IP 16
-HTTP/2 error. A problem was detected in the HTTP2 framing layer. This is
-somewhat generic and can be one out of several problems, see the error message
-for details.
-.IP 17
-FTP could not set binary. Could not change transfer method to binary.
-.IP 18
-Partial file. Only a part of the file was transferred.
-.IP 19
-FTP could not download/access the given file, the RETR (or similar) command
-failed.
-.IP 21
-FTP quote error. A quote command returned error from the server.
-.IP 22
-HTTP page not retrieved. The requested URL was not found or returned another
-error with the HTTP error code being 400 or above. This return code only
-appears if --fail is used.
-.IP 23
-Write error. Curl could not write data to a local filesystem or similar.
-.IP 25
-Failed starting the upload. For FTP, the server typically denied the STOR
-command.
-.IP 26
-Read error. Various reading problems.
-.IP 27
-Out of memory. A memory allocation request failed.
-.IP 28
-Operation timeout. The specified time-out period was reached according to the
-conditions.
-.IP 30
-FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT
-command, try doing a transfer using PASV instead!
-.IP 31
-FTP could not use REST. The REST command failed. This command is used for
-resumed FTP transfers.
-.IP 33
-HTTP range error. The range "command" did not work.
-.IP 34
-HTTP post error. Internal post-request generation error.
-.IP 35
-SSL connect error. The SSL handshaking failed.
-.IP 36
-Bad download resume. Could not continue an earlier aborted download.
-.IP 37
-FILE could not read file. Failed to open the file. Permissions?
-.IP 38
-LDAP cannot bind. LDAP bind operation failed.
-.IP 39
-LDAP search failed.
-.IP 41
-Function not found. A required LDAP function was not found.
-.IP 42
-Aborted by callback. An application told curl to abort the operation.
-.IP 43
-Internal error. A function was called with a bad parameter.
-.IP 45
-Interface error. A specified outgoing interface could not be used.
-.IP 47
-Too many redirects. When following redirects, curl hit the maximum amount.
-.IP 48
-Unknown option specified to libcurl. This indicates that you passed a weird
-option to curl that was passed on to libcurl and rejected. Read up in the
-manual!
-.IP 49
-Malformed telnet option.
-.IP 52
-The server did not reply anything, which here is considered an error.
-.IP 53
-SSL crypto engine not found.
-.IP 54
-Cannot set SSL crypto engine as default.
-.IP 55
-Failed sending network data.
-.IP 56
-Failure in receiving network data.
-.IP 58
-Problem with the local certificate.
-.IP 59
-Could not use specified SSL cipher.
-.IP 60
-Peer certificate cannot be authenticated with known CA certificates.
-.IP 61
-Unrecognized transfer encoding.
-.IP 63
-Maximum file size exceeded.
-.IP 64
-Requested FTP SSL level failed.
-.IP 65
-Sending the data requires a rewind that failed.
-.IP 66
-Failed to initialize SSL Engine.
-.IP 67
-The user name, password, or similar was not accepted and curl failed to log in.
-.IP 68
-File not found on TFTP server.
-.IP 69
-Permission problem on TFTP server.
-.IP 70
-Out of disk space on TFTP server.
-.IP 71
-Illegal TFTP operation.
-.IP 72
-Unknown TFTP transfer ID.
-.IP 73
-File already exists (TFTP).
-.IP 74
-No such user (TFTP).
-.IP 77
-Problem reading the SSL CA cert (path? access rights?).
-.IP 78
-The resource referenced in the URL does not exist.
-.IP 79
-An unspecified error occurred during the SSH session.
-.IP 80
-Failed to shut down the SSL connection.
-.IP 82
-Could not load CRL file, missing or wrong format (added in 7.19.0).
-.IP 83
-Issuer check failed (added in 7.19.0).
-.IP 84
-The FTP PRET command failed.
-.IP 85
-Mismatch of RTSP CSeq numbers.
-.IP 86
-Mismatch of RTSP Session Identifiers.
-.IP 87
-Unable to parse FTP file list.
-.IP 88
-FTP chunk callback reported error.
-.IP 89
-No connection available, the session is queued.
-.IP 90
-SSL public key does not matched pinned public key.
-.IP 91
-Invalid SSL certificate status.
-.IP 92
-Stream error in HTTP/2 framing layer.
-.IP 93
-An API function was called from inside a callback.
-.IP 94
-An authentication function returned an error.
-.IP 95
-A problem was detected in the HTTP/3 layer. This is somewhat generic and can
-be one out of several problems, see the error message for details.
-.IP 96
-QUIC connection error. This error may be caused by an SSL library error. QUIC
-is the protocol used for HTTP/3 transfers.
-.IP 97
-Proxy handshake error.
-.IP 98
-A client-side certificate is required to complete the TLS handshake.
-.IP 99
-Poll or select returned fatal error.
-.IP XX
-More error codes might appear here in future releases. The existing ones are
-meant to never change.
-.SH BUGS
-If you experience any problems with curl, submit an issue in the project's bug
-tracker on GitHub: https://github.com/curl/curl/issues
-.SH AUTHORS / CONTRIBUTORS
-Daniel Stenberg is the main author, but the whole list of contributors is
-found in the separate THANKS file.
-.SH WWW
-https://curl.se
-.SH "SEE ALSO"
-.BR ftp (1),
-.BR wget (1)
+++ /dev/null
-.\" **************************************************************************
-.\" * _ _ ____ _
-.\" * Project ___| | | | _ \| |
-.\" * / __| | | | |_) | |
-.\" * | (__| |_| | _ <| |___
-.\" * \___|\___/|_| \_\_____|
-.\" *
-.\" * Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-.\" *
-.\" * This software is licensed as described in the file COPYING, which
-.\" * you should have received as part of this distribution. The terms
-.\" * are also available at https://curl.se/docs/copyright.html.
-.\" *
-.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
-.\" * copies of the Software, and permit persons to whom the Software is
-.\" * furnished to do so, under the terms of the COPYING file.
-.\" *
-.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
-.\" * KIND, either express or implied.
-.\" *
-.\" * SPDX-License-Identifier: curl
-.\" *
-.\" **************************************************************************
-.\"
-.\" DO NOT EDIT. Generated by the curl project gen.pl man page generator.
-.\"
-.TH curl 1 "%DATE" "curl %VERSION" "curl Manual"
-.SH NAME
-curl \- transfer a URL
-.SH SYNOPSIS
-.B curl [options / URLs]
-.SH DESCRIPTION
-**curl** is a tool for transferring data from or to a server using URLs. It
-supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS,
-IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP,
-SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.
-
-curl is powered by libcurl for all transfer-related features. See
-*libcurl(3)* for details.
-.SH URL
-The URL syntax is protocol-dependent. You find a detailed description in
-RFC 3986.
-
-If you provide a URL without a leading **protocol://** scheme, curl guesses
-what protocol you want. It then defaults to HTTP but assumes others based on
-often-used host name prefixes. For example, for host names starting with
-"ftp." curl assumes you want FTP.
-
-You can specify any amount of URLs on the command line. They are fetched in a
-sequential manner in the specified order unless you use --parallel. You can
-specify command line options and URLs mixed and in any order on the command
-line.
-
-curl attempts to reuse connections when doing multiple transfers, so that
-getting many files from the same server do not use multiple connects and setup
-handshakes. This improves speed. Connection reuse can only be done for URLs
-specified for a single command line invocation and cannot be performed between
-separate curl runs.
-
-Provide an IPv6 zone id in the URL with an escaped percentage sign. Like in
-
- "http://[fe80::3%25eth0]/"
-
-Everything provided on the command line that is not a command line option or
-its argument, curl assumes is a URL and treats it as such.
-.SH GLOBBING
-You can specify multiple URLs or parts of URLs by writing lists within braces
-or ranges within brackets. We call this "globbing".
-
-Provide a list with three different names like this:
-
- "http://site.{one,two,three}.com"
-
-or you can get sequences of alphanumeric series by using [] as in:
-
- "ftp://ftp.example.com/file[1-100].txt"
-
- "ftp://ftp.example.com/file[001-100].txt" (with leading zeros)
-
- "ftp://ftp.example.com/file[a-z].txt"
-
-Nested sequences are not supported, but you can use several ones next to each
-other:
-
- "http://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html"
-
-You can specify a step counter for the ranges to get every Nth number or
-letter:
-
- "http://example.com/file[1-100:10].txt"
-
- "http://example.com/file[a-z:2].txt"
-
-When using [] or {} sequences when invoked from a command line prompt, you
-probably have to put the full URL within double quotes to avoid the shell from
-interfering with it. This also goes for other characters treated special, like
-for example '&', '?' and '*'.
-
-Switch off globbing with --globoff.
-.SH VARIABLES
-curl supports command line variables (added in 8.3.0). Set variables with
---variable name=content or --variable name@file (where "file" can be stdin if
-set to a single dash (-)).
-
-Variable contents can expanded in option parameters using "{{name}}" (without
-the quotes) if the option name is prefixed with "--expand-". This gets the
-contents of the variable "name" inserted, or a blank if the name does not
-exist as a variable. Insert "{{" verbatim in the string by prefixing it with a
-backslash, like "\\{{".
-
-You an access and expand environment variables by first importing them. You
-can select to either require the environment variable to be set or you can
-provide a default value in case it is not already set. Plain --variable %name
-imports the variable called 'name' but exits with an error if that environment
-variable is not already set. To provide a default value if it is not set, use
---variable %name=content or --variable %name@content.
-
-Example. Get the USER environment variable into the URL, fail if USER is not
-set:
-
- --variable '%USER'
- --expand-url = "https://example.com/api/{{USER}}/method"
-
-When expanding variables, curl supports a set of functions that can make the
-variable contents more convenient to use. It can trim leading and trailing
-white space with *trim*, it can output the contents as a JSON quoted string
-with *json*, URL encode the string with *url* or base64 encode it with
-*b64*. You apply function to a variable expansion, add them colon separated to
-the right side of the variable. Variable content holding null bytes that are
-not encoded when expanded cause error.
-
-Example: get the contents of a file called $HOME/.secret into a variable
-called "fix". Make sure that the content is trimmed and percent-encoded sent
-as POST data:
-
- --variable %HOME
- --expand-variable fix@{{HOME}}/.secret
- --expand-data "{{fix:trim:url}}"
- https://example.com/
-
-Command line variables and expansions were added in in 8.3.0.
-.SH OUTPUT
-If not told otherwise, curl writes the received data to stdout. It can be
-instructed to instead save that data into a local file, using the --output or
---remote-name options. If curl is given multiple URLs to transfer on the
-command line, it similarly needs multiple options for where to save them.
-
-curl does not parse or otherwise "understand" the content it gets or writes as
-output. It does no encoding or decoding, unless explicitly asked to with
-dedicated command line options.
-.SH PROTOCOLS
-curl supports numerous protocols, or put in URL terms: schemes. Your
-particular build may not support them all.
-.IP DICT
-Lets you lookup words using online dictionaries.
-.IP FILE
-Read or write local files. curl does not support accessing file:// URL
-remotely, but when running on Microsoft Windows using the native UNC approach
-works.
-.IP FTP(S)
-curl supports the File Transfer Protocol with a lot of tweaks and levers. With
-or without using TLS.
-.IP GOPHER(S)
-Retrieve files.
-.IP HTTP(S)
-curl supports HTTP with numerous options and variations. It can speak HTTP
-version 0.9, 1.0, 1.1, 2 and 3 depending on build options and the correct
-command line options.
-.IP IMAP(S)
-Using the mail reading protocol, curl can "download" emails for you. With or
-without using TLS.
-.IP LDAP(S)
-curl can do directory lookups for you, with or without TLS.
-.IP MQTT
-curl supports MQTT version 3. Downloading over MQTT equals "subscribe" to a
-topic while uploading/posting equals "publish" on a topic. MQTT over TLS is
-not supported (yet).
-.IP POP3(S)
-Downloading from a pop3 server means getting a mail. With or without using
-TLS.
-.IP RTMP(S)
-The **Realtime Messaging Protocol** is primarily used to serve streaming media
-and curl can download it.
-.IP RTSP
-curl supports RTSP 1.0 downloads.
-.IP SCP
-curl supports SSH version 2 scp transfers.
-.IP SFTP
-curl supports SFTP (draft 5) done over SSH version 2.
-.IP SMB(S)
-curl supports SMB version 1 for upload and download.
-.IP SMTP(S)
-Uploading contents to an SMTP server means sending an email. With or without
-TLS.
-.IP TELNET
-Telling curl to fetch a telnet URL starts an interactive session where it
-sends what it reads on stdin and outputs what the server sends it.
-.IP TFTP
-curl can do TFTP downloads and uploads.
-.SH "PROGRESS METER"
-curl normally displays a progress meter during operations, indicating the
-amount of transferred data, transfer speeds and estimated time left, etc. The
-progress meter displays the transfer rate in bytes per second. The suffixes
-(k, M, G, T, P) are 1024 based. For example 1k is 1024 bytes. 1M is 1048576
-bytes.
-
-curl displays this data to the terminal by default, so if you invoke curl to
-do an operation and it is about to write data to the terminal, it
-*disables* the progress meter as otherwise it would mess up the output
-mixing progress meter and response data.
-
-If you want a progress meter for HTTP POST or PUT requests, you need to
-redirect the response output to a file, using shell redirect (>), --output or
-similar.
-
-This does not apply to FTP upload as that operation does not spit out any
-response data to the terminal.
-
-If you prefer a progress "bar" instead of the regular meter, --progress-bar is
-your friend. You can also disable the progress meter completely with the
---silent option.
-.SH VERSION
-This man page describes curl %VERSION. If you use a later version, chances are
-this man page does not fully document it. If you use an earlier version, this
-document tries to include version information about which specific version
-that introduced changes.
-
-You can always learn which the latest curl version is by running
-
- curl https://curl.se/info
-
-The online version of this man page is always showing the latest incarnation:
-https://curl.se/docs/manpage.html
-.SH OPTIONS
-Options start with one or two dashes. Many of the options require an
-additional value next to them. If provided text does not start with a dash, it
-is presumed to be and treated as a URL.
-
-The short "single-dash" form of the options, -d for example, may be used with
-or without a space between it and its value, although a space is a recommended
-separator. The long "double-dash" form, --data for example, requires a space
-between it and its value.
-
-Short version options that do not need any additional values can be used
-immediately next to each other, like for example you can specify all the
-options *-O*, *-L* and *-v* at once as *-OLv*.
-
-In general, all boolean options are enabled with --**option** and yet again
-disabled with --**no-**option. That is, you use the same option name but
-prefix it with "no-". However, in this list we mostly only list and show the
-*--option* version of them.
-
-When --next is used, it resets the parser state and you start again with a
-clean option state, except for the options that are "global". Global options
-retain their values and meaning even after --next.
-
-The following options are global:
-%GLOBALS.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: parallel-immediate
Help: Do not wait for multiplexing (with --parallel)
Added: 7.68.0
-See-also: parallel parallel-max
Category: connection curl
-Example: --parallel-immediate -Z $URL -o file1 $URL -o file2
Multi: boolean
Scope: global
+See-also:
+ - parallel
+ - parallel-max
+Example:
+ - --parallel-immediate -Z $URL -o file1 $URL -o file2
---
+
+# `--parallel-immediate`
+
When doing parallel transfers, this option instructs curl that it should
rather prefer opening up more connections in parallel at once rather than
waiting to see if new transfers can be added as multiplexed streams on another
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: parallel-max
Arg: <num>
Help: Maximum concurrency for parallel transfers
Added: 7.66.0
-See-also: parallel
Category: connection curl
-Example: --parallel-max 100 -Z $URL ftp://example.com/
Multi: single
+See-also:
+ - parallel
+Example:
+ - --parallel-max 100 -Z $URL ftp://example.com/
---
+
+# `--parallel-max`
+
When asked to do parallel transfers, using --parallel, this option controls
the maximum amount of transfers to do simultaneously.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: Z
Help: Perform transfers in parallel
Added: 7.66.0
Category: connection curl
-Example: --parallel $URL -o file1 $URL -o file2
-See-also: next verbose
Multi: boolean
Scope: global
+See-also:
+ - next
+ - verbose
+Example:
+ - --parallel $URL -o file1 $URL -o file2
---
+
+# `--parallel`
+
Makes curl perform its transfers in parallel as compared to the regular serial
manner.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: pass
Help: Pass phrase for the private key
Protocols: SSH TLS
Category: ssh tls auth
-Example: --pass secret --key file $URL
Added: 7.9.3
-See-also: key user
Multi: single
+See-also:
+ - key
+ - user
+Example:
+ - --pass secret --key file $URL
---
+
+# `--pass`
+
Passphrase for the private key.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: path-as-is
Help: Do not squash .. sequences in URL path
Added: 7.42.0
Category: curl
-Example: --path-as-is https://example.com/../../etc/passwd
-See-also: request-target
Multi: boolean
+See-also:
+ - request-target
+Example:
+ - --path-as-is https://example.com/../../etc/passwd
---
+
+# `--path-as-is`
+
Tell curl to not handle sequences of /../ or /./ in the given URL
path. Normally curl squashes or merges them according to standards but with
this option set you tell it not to do that.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: pinnedpubkey
Help: FILE/HASHES Public key to verify peer against
Protocols: TLS
Category: tls
-Example: --pinnedpubkey keyfile $URL
-Example: --pinnedpubkey 'sha256//ce118b51897f4452dc' $URL
Added: 7.39.0
-See-also: hostpubsha256
Multi: single
+See-also:
+ - hostpubsha256
+Example:
+ - --pinnedpubkey keyfile $URL
+ - --pinnedpubkey 'sha256//ce118b51897f4452dc' $URL
---
+
+# `--pinnedpubkey`
+
Tells curl to use the specified public key file (or hashes) to verify the
peer. This can be a path to a file which contains a single public key in PEM
or DER format, or any number of base64 encoded sha256 hashes preceded by
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: post301
Help: Do not switch to GET after following a 301
Protocols: HTTP
-See-also: post302 post303 location
Added: 7.17.1
Category: http post
-Example: --post301 --location -d "data" $URL
Multi: boolean
+See-also:
+ - post302
+ - post303
+ - location
+Example:
+ - --post301 --location -d "data" $URL
---
+
+# `--post301`
+
Tells curl to respect RFC 7231/6.4.2 and not convert POST requests into GET
requests when following a 301 redirection. The non-RFC behavior is ubiquitous
in web browsers, so curl does the conversion by default to maintain
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: post302
Help: Do not switch to GET after following a 302
Protocols: HTTP
-See-also: post301 post303 location
Added: 7.19.1
Category: http post
-Example: --post302 --location -d "data" $URL
Multi: boolean
+See-also:
+ - post301
+ - post303
+ - location
+Example:
+ - --post302 --location -d "data" $URL
---
+
+# `--post302`
+
Tells curl to respect RFC 7231/6.4.3 and not convert POST requests into GET
requests when following a 302 redirection. The non-RFC behavior is ubiquitous
in web browsers, so curl does the conversion by default to maintain
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: post303
Help: Do not switch to GET after following a 303
Protocols: HTTP
-See-also: post302 post301 location
Added: 7.26.0
Category: http post
-Example: --post303 --location -d "data" $URL
Multi: boolean
+See-also:
+ - post302
+ - post301
+ - location
+Example:
+ - --post303 --location -d "data" $URL
---
+
+# `--post303`
+
Tells curl to violate RFC 7231/6.4.4 and not convert POST requests into GET
requests when following 303 redirections. A server may require a POST to
remain a POST after a 303 redirection. This option is meaningful only when
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: preproxy
Help: Use this proxy first
Added: 7.52.0
Category: proxy
-Example: --preproxy socks5://proxy.example -x http://http.example $URL
-See-also: proxy socks5
Multi: single
+See-also:
+ - proxy
+ - socks5
+Example:
+ - --preproxy socks5://proxy.example -x http://http.example $URL
---
+
+# `--preproxy`
+
Use the specified SOCKS proxy before connecting to an HTTP or HTTPS --proxy. In
such a case curl first connects to the SOCKS proxy and then connects (through
SOCKS) to the HTTP or HTTPS proxy. Hence pre proxy.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: #
Long: progress-bar
Help: Display transfer progress as a bar
Category: verbose
-Example: -# -O $URL
Added: 5.10
-See-also: styled-output
Multi: boolean
Scope: global
+See-also:
+ - styled-output
+Example:
+ - -# -O $URL
---
+
+# `--progress-bar`
+
Make curl display transfer progress as a simple progress bar instead of the
standard, more informational, meter.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proto-default
Arg: <protocol>
Added: 7.45.0
Category: connection curl
-Example: --proto-default https ftp.example.com
-See-also: proto proto-redir
Multi: single
+See-also:
+ - proto
+ - proto-redir
+Example:
+ - --proto-default https ftp.example.com
---
+
+# `--proto-default`
+
Tells curl to use *protocol* for any URL missing a scheme name.
An unknown or unsupported protocol causes error
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proto-redir
Help: Enable/disable PROTOCOLS on redirect
Added: 7.20.2
Category: connection curl
-Example: --proto-redir =http,https $URL
-See-also: proto
Multi: single
+See-also:
+ - proto
+Example:
+ - --proto-redir =http,https $URL
---
+
+# `--proto-redir`
+
Tells curl to limit what protocols it may use on redirect. Protocols denied by
--proto are not overridden by this option. See --proto for how protocols are
represented.
Example, allow only HTTP and HTTPS on redirect:
- curl --proto-redir -all,http,https http://example.com
+ curl --proto-redir -all,http,https http://example.com
By default curl only allows HTTP, HTTPS, FTP and FTPS on redirects (added in
7.65.2). Specifying *all* or *+all* enables all protocols on redirects, which
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proto
Arg: <protocols>
Help: Enable/disable PROTOCOLS
-See-also: proto-redir proto-default
Added: 7.20.2
Category: connection curl
-Example: --proto =http,https,sftp $URL
Multi: single
+See-also:
+ - proto-redir
+ - proto-default
+Example:
+ - --proto =http,https,sftp $URL
---
+
+# `--proto`
+
Tells curl to limit what protocols it may use for transfers. Protocols are
evaluated left to right, are comma separated, and are each a protocol name or
'all', optionally prefixed by zero or more modifiers. Available modifiers are:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-anyauth
Help: Pick any proxy authentication method
Added: 7.13.2
-See-also: proxy proxy-basic proxy-digest
Category: proxy auth
-Example: --proxy-anyauth --proxy-user user:passwd -x proxy $URL
Multi: mutex
+See-also:
+ - proxy
+ - proxy-basic
+ - proxy-digest
+Example:
+ - --proxy-anyauth --proxy-user user:passwd -x proxy $URL
---
+
+# `--proxy-anyauth`
+
Tells curl to pick a suitable authentication method when communicating with
the given HTTP proxy. This might cause an extra request/response round-trip.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-basic
Help: Use Basic authentication on the proxy
-See-also: proxy proxy-anyauth proxy-digest
Category: proxy auth
-Example: --proxy-basic --proxy-user user:passwd -x proxy $URL
Added: 7.12.0
Multi: mutex
+See-also:
+ - proxy
+ - proxy-anyauth
+ - proxy-digest
+Example:
+ - --proxy-basic --proxy-user user:passwd -x proxy $URL
---
+
+# `--proxy-basic`
+
Tells curl to use HTTP Basic authentication when communicating with the given
proxy. Use --basic for enabling HTTP Basic with a remote host. Basic is the
default authentication method curl uses with proxies.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-ca-native
Help: Use CA certificates from the native OS for proxy
Protocols: TLS
Category: tls
-See-also: cacert capath insecure
-Example: --ca-native $URL
Added: 8.2.0
Multi: boolean
+See-also:
+ - cacert
+ - capath
+ - insecure
+Example:
+ - --ca-native $URL
---
+
+# `--proxy-ca-native`
+
Tells curl to use the CA store from the native operating system to verify the
HTTPS proxy. By default, curl uses a CA store provided in a single file or
directory, but when using this option it interfaces the operating system's own
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-cacert
Help: CA certificate to verify peer against for proxy
Arg: <file>
Added: 7.52.0
-See-also: proxy-capath cacert capath proxy
Category: proxy tls
-Example: --proxy-cacert CA-file.txt -x https://proxy $URL
Multi: single
+See-also:
+ - proxy-capath
+ - cacert
+ - capath
+ - proxy
+Example:
+ - --proxy-cacert CA-file.txt -x https://proxy $URL
---
+
+# `--proxy-cacert`
+
Same as --cacert but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-capath
Help: CA directory to verify peer against for proxy
Arg: <dir>
Added: 7.52.0
-See-also: proxy-cacert proxy capath
Category: proxy tls
-Example: --proxy-capath /local/directory -x https://proxy $URL
Multi: single
+See-also:
+ - proxy-cacert
+ - proxy
+ - capath
+Example:
+ - --proxy-capath /local/directory -x https://proxy $URL
---
+
+# `--proxy-capath`
+
Same as --capath but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-cert-type
Added: 7.52.0
Help: Client certificate type for HTTPS proxy
Category: proxy tls
-Example: --proxy-cert-type PEM --proxy-cert file -x https://proxy $URL
-See-also: proxy-cert
Multi: single
+See-also:
+ - proxy-cert
+Example:
+ - --proxy-cert-type PEM --proxy-cert file -x https://proxy $URL
---
+
+# `--proxy-cert-type`
+
Same as --cert-type but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-cert
Help: Set client certificate for proxy
Added: 7.52.0
Category: proxy tls
-Example: --proxy-cert file -x https://proxy $URL
-See-also: proxy-cert-type
Multi: single
+See-also:
+ - proxy-cert-type
+Example:
+ - --proxy-cert file -x https://proxy $URL
---
+
+# `--proxy-cert`
+
Same as --cert but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-ciphers
Help: SSL ciphers to use for proxy
Added: 7.52.0
Category: proxy tls
-Example: --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy $URL
-See-also: ciphers curves proxy
Multi: single
+See-also:
+ - ciphers
+ - curves
+ - proxy
+Example:
+ - --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy $URL
---
+
+# `--proxy-ciphers`
+
Same as --ciphers but used in HTTPS proxy context.
Specifies which ciphers to use in the connection to the HTTPS proxy. The list
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-crlfile
Help: Set a CRL list for proxy
Added: 7.52.0
Category: proxy tls
-Example: --proxy-crlfile rejects.txt -x https://proxy $URL
-See-also: crlfile proxy
Multi: single
+See-also:
+ - crlfile
+ - proxy
+Example:
+ - --proxy-crlfile rejects.txt -x https://proxy $URL
---
+
+# `--proxy-crlfile`
+
Same as --crlfile but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-digest
Help: Use Digest authentication on the proxy
-See-also: proxy proxy-anyauth proxy-basic
Category: proxy tls
-Example: --proxy-digest --proxy-user user:passwd -x proxy $URL
Added: 7.12.0
Multi: mutex
+See-also:
+ - proxy
+ - proxy-anyauth
+ - proxy-basic
+Example:
+ - --proxy-digest --proxy-user user:passwd -x proxy $URL
---
+
+# `--proxy-digest`
+
Tells curl to use HTTP Digest authentication when communicating with the given
proxy. Use --digest for enabling HTTP Digest with a remote host.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-header
Protocols: HTTP
Added: 7.37.0
Category: proxy
-Example: --proxy-header "X-First-Name: Joe" -x http://proxy $URL
-Example: --proxy-header "User-Agent: surprise" -x http://proxy $URL
-Example: --proxy-header "Host:" -x http://proxy $URL
-See-also: proxy
Multi: append
+See-also:
+ - proxy
+Example:
+ - --proxy-header "X-First-Name: Joe" -x http://proxy $URL
+ - --proxy-header "User-Agent: surprise" -x http://proxy $URL
+ - --proxy-header "Host:" -x http://proxy $URL
---
+
+# `--proxy-header`
+
Extra header to include in the request when sending HTTP to a proxy. You may
specify any number of extra headers. This is the equivalent option to --header
but is for proxy communication only like in CONNECT requests when you want a
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-http2
Added: 8.1.0
Mutexed:
Requires: HTTP/2
-See-also: proxy
Help: Use HTTP/2 with HTTPS proxy
Category: http proxy
-Example: --proxy-http2 -x proxy $URL
Multi: boolean
+See-also:
+ - proxy
+Example:
+ - --proxy-http2 -x proxy $URL
---
+
+# `--proxy-http2`
+
Tells curl to try negotiate HTTP version 2 with an HTTPS proxy. The proxy might
still only offer HTTP/1 and then curl sticks to using that version.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-insecure
Help: Do HTTPS proxy connections without verifying the proxy
Added: 7.52.0
Category: proxy tls
-Example: --proxy-insecure -x https://proxy $URL
-See-also: proxy insecure
Multi: boolean
+See-also:
+ - proxy
+ - insecure
+Example:
+ - --proxy-insecure -x https://proxy $URL
---
+
+# `--proxy-insecure`
+
Same as --insecure but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-key-type
Help: Private key file type for proxy
Added: 7.52.0
Category: proxy tls
-Example: --proxy-key-type DER --proxy-key here -x https://proxy $URL
-See-also: proxy-key proxy
Multi: single
+See-also:
+ - proxy-key
+ - proxy
+Example:
+ - --proxy-key-type DER --proxy-key here -x https://proxy $URL
---
+
+# `--proxy-key-type`
+
Same as --key-type but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-key
Help: Private key for HTTPS proxy
Arg: <key>
Category: proxy tls
-Example: --proxy-key here -x https://proxy $URL
Added: 7.52.0
-See-also: proxy-key-type proxy
Multi: single
+See-also:
+ - proxy-key-type
+ - proxy
+Example:
+ - --proxy-key here -x https://proxy $URL
---
+
+# `--proxy-key`
+
Same as --key but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-negotiate
Help: Use HTTP Negotiate (SPNEGO) authentication on the proxy
Added: 7.17.1
-See-also: proxy-anyauth proxy-basic
Category: proxy auth
-Example: --proxy-negotiate --proxy-user user:passwd -x proxy $URL
Multi: mutex
+See-also:
+ - proxy-anyauth
+ - proxy-basic
+Example:
+ - --proxy-negotiate --proxy-user user:passwd -x proxy $URL
---
+
+# `--proxy-negotiate`
+
Tells curl to use HTTP Negotiate (SPNEGO) authentication when communicating
with the given proxy. Use --negotiate for enabling HTTP Negotiate (SPNEGO)
with a remote host.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-ntlm
Help: Use NTLM authentication on the proxy
-See-also: proxy-negotiate proxy-anyauth
Category: proxy auth
-Example: --proxy-ntlm --proxy-user user:passwd -x http://proxy $URL
Added: 7.10.7
Multi: mutex
+See-also:
+ - proxy-negotiate
+ - proxy-anyauth
+Example:
+ - --proxy-ntlm --proxy-user user:passwd -x http://proxy $URL
---
+
+# `--proxy-ntlm`
+
Tells curl to use HTTP NTLM authentication when communicating with the given
proxy. Use --ntlm for enabling NTLM with a remote host.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-pass
Help: Pass phrase for the private key for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
-Example: --proxy-pass secret --proxy-key here -x https://proxy $URL
-See-also: proxy proxy-key
Multi: single
+See-also:
+ - proxy
+ - proxy-key
+Example:
+ - --proxy-pass secret --proxy-key here -x https://proxy $URL
---
+
+# `--proxy-pass`
+
Same as --pass but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-pinnedpubkey
Help: FILE/HASHES public key to verify proxy with
Protocols: TLS
Category: proxy tls
-Example: --proxy-pinnedpubkey keyfile $URL
-Example: --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' $URL
Added: 7.59.0
-See-also: pinnedpubkey proxy
Multi: single
+See-also:
+ - pinnedpubkey
+ - proxy
+Example:
+ - --proxy-pinnedpubkey keyfile $URL
+ - --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' $URL
---
+
+# `--proxy-pinnedpubkey`
+
Tells curl to use the specified public key file (or hashes) to verify the
proxy. This can be a path to a file which contains a single public key in PEM
or DER format, or any number of base64 encoded sha256 hashes preceded by
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-service-name
Help: SPNEGO proxy service name
Added: 7.43.0
Category: proxy tls
-Example: --proxy-service-name "shrubbery" -x proxy $URL
-See-also: service-name proxy
Multi: single
+See-also:
+ - service-name
+ - proxy
+Example:
+ - --proxy-service-name "shrubbery" -x proxy $URL
---
+
+# `--proxy-service-name`
+
This option allows you to change the service name for proxy negotiation.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-ssl-allow-beast
Help: Allow security flaw for interop for HTTPS proxy
Added: 7.52.0
Category: proxy tls
-Example: --proxy-ssl-allow-beast -x https://proxy $URL
-See-also: ssl-allow-beast proxy
Multi: boolean
+See-also:
+ - ssl-allow-beast
+ - proxy
+Example:
+ - --proxy-ssl-allow-beast -x https://proxy $URL
---
+
+# `--proxy-ssl-allow-beast`
+
Same as --ssl-allow-beast but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-ssl-auto-client-cert
Help: Use auto client certificate for proxy (Schannel)
Added: 7.77.0
Category: proxy tls
-Example: --proxy-ssl-auto-client-cert -x https://proxy $URL
-See-also: ssl-auto-client-cert proxy
Multi: boolean
+See-also:
+ - ssl-auto-client-cert
+ - proxy
+Example:
+ - --proxy-ssl-auto-client-cert -x https://proxy $URL
---
+
+# `--proxy-ssl-auto-client-cert`
+
Same as --ssl-auto-client-cert but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-tls13-ciphers
help: TLS 1.3 proxy cipher suites
Protocols: TLS
Category: proxy tls
-Example: --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy $URL
Added: 7.61.0
-See-also: tls13-ciphers curves proxy-ciphers
Multi: single
+See-also:
+ - tls13-ciphers
+ - curves
+ - proxy-ciphers
+Example:
+ - --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy $URL
---
+
+# `--proxy-tls13-ciphers`
+
Specifies which cipher suites to use in the connection to your HTTPS proxy
when it negotiates TLS 1.3. The list of ciphers suites must specify valid
ciphers. Read up on TLS 1.3 cipher suite details on this URL:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-tlsauthtype
Help: TLS authentication type for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
-Example: --proxy-tlsauthtype SRP -x https://proxy $URL
-See-also: proxy proxy-tlsuser
Multi: single
+See-also:
+ - proxy
+ - proxy-tlsuser
+Example:
+ - --proxy-tlsauthtype SRP -x https://proxy $URL
---
+
+# `--proxy-tlsauthtype`
+
Same as --tlsauthtype but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-tlspassword
Help: TLS password for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
-Example: --proxy-tlspassword passwd -x https://proxy $URL
-See-also: proxy proxy-tlsuser
Multi: single
+See-also:
+ - proxy
+ - proxy-tlsuser
+Example:
+ - --proxy-tlspassword passwd -x https://proxy $URL
---
+
+# `--proxy-tlspassword`
+
Same as --tlspassword but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-tlsuser
Help: TLS username for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
-Example: --proxy-tlsuser smith -x https://proxy $URL
-See-also: proxy proxy-tlspassword
Multi: single
+See-also:
+ - proxy
+ - proxy-tlspassword
+Example:
+ - --proxy-tlsuser smith -x https://proxy $URL
---
+
+# `--proxy-tlsuser`
+
Same as --tlsuser but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-tlsv1
Help: Use TLSv1 for HTTPS proxy
Added: 7.52.0
Category: proxy tls auth
-Example: --proxy-tlsv1 -x https://proxy $URL
-See-also: proxy
Multi: mutex
+See-also:
+ - proxy
+Example:
+ - --proxy-tlsv1 -x https://proxy $URL
---
+
+# `--proxy-tlsv1`
+
Same as --tlsv1 but used in HTTPS proxy context.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy-user
Arg: <user:password>
Help: Proxy user and password
Category: proxy auth
-Example: --proxy-user name:pwd -x proxy $URL
Added: 4.0
-See-also: proxy-pass
Multi: single
+See-also:
+ - proxy-pass
+Example:
+ - --proxy-user name:pwd -x proxy $URL
---
+
+# `--proxy-user`
+
Specify the user name and password to use for proxy authentication.
If you use a Windows SSPI-enabled curl binary and do either Negotiate or NTLM
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy
Arg: [protocol://]host[:port]
Help: Use this proxy
Category: proxy
-Example: --proxy http://proxy.example $URL
Added: 4.0
-See-also: socks5 proxy-basic
Multi: single
+See-also:
+ - socks5
+ - proxy-basic
+Example:
+ - --proxy http://proxy.example $URL
---
+
+# `--proxy`
+
Use the specified proxy.
The proxy string can be specified with a protocol:// prefix. No protocol
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxy1.0
Arg: <host[:port]>
Help: Use HTTP/1.0 proxy on given port
Category: proxy
-Example: --proxy1.0 -x http://proxy $URL
Added: 7.19.4
-See-also: proxy socks5 preproxy
Multi: mutex
+See-also:
+ - proxy
+ - socks5
+ - preproxy
+Example:
+ - --proxy1.0 -x http://proxy $URL
---
+
+# `--proxy1.0`
+
Use the specified HTTP 1.0 proxy. If the port number is not specified, it is
assumed at port 1080.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: proxytunnel
Short: p
Help: Operate through an HTTP proxy tunnel (using CONNECT)
-See-also: proxy
Category: proxy
-Example: --proxytunnel -x http://proxy $URL
Added: 7.3
Multi: boolean
+See-also:
+ - proxy
+Example:
+ - --proxytunnel -x http://proxy $URL
---
+
+# `--proxytunnel`
+
When an HTTP proxy is used --proxy, this option makes curl tunnel the traffic
through the proxy. The tunnel approach is made with the HTTP proxy CONNECT
request and requires that the proxy allows direct connect to the remote port
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: pubkey
Protocols: SFTP SCP
Help: SSH Public key file name
Category: sftp scp auth
-Example: --pubkey file.pub sftp://example.com/
Added: 7.16.2
-See-also: pass
Multi: single
+See-also:
+ - pass
+Example:
+ - --pubkey file.pub sftp://example.com/
---
+
+# `--pubkey`
+
Public key file name. Allows you to provide your public key in this separate
file.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: quote
Help: Send command(s) to server before transfer
Protocols: FTP SFTP
Category: ftp sftp
-Example: --quote "DELE file" ftp://example.com/foo
Added: 5.3
-See-also: request
Multi: append
+See-also:
+ - request
+Example:
+ - --quote "DELE file" ftp://example.com/foo
---
+
+# `--quote`
+
Send an arbitrary command to the remote FTP or SFTP server. Quote commands are
sent BEFORE the transfer takes place (just after the initial **PWD** command
in an FTP transfer, to be exact). To make commands take place after a
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: random-file
Arg: <file>
Help: File for reading random data from
Category: misc
-Example: --random-file rubbish $URL
Added: 7.7
-See-also: egd-file
Multi: single
+See-also:
+ - egd-file
+Example:
+ - --random-file rubbish $URL
---
+
+# `--random-file`
+
Deprecated option. This option is ignored (added in 7.84.0). Prior to that it
only had an effect on curl if built to use old versions of OpenSSL.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: range
Arg: <range>
Protocols: HTTP FTP SFTP FILE
Category: http ftp sftp file
-Example: --range 22-44 $URL
Added: 4.0
-See-also: continue-at append
Multi: single
+See-also:
+ - continue-at
+ - append
+Example:
+ - --range 22-44 $URL
---
+
+# `--range`
+
Retrieve a byte range (i.e. a partial document) from an HTTP/1.1, FTP or SFTP
server or a local FILE. Ranges can be specified in a number of ways.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: rate
Arg: <max request rate>
Help: Request rate for serial transfers
Category: connection
-Example: --rate 2/s $URL ...
-Example: --rate 3/h $URL ...
-Example: --rate 14/m $URL ...
Added: 7.84.0
-See-also: limit-rate retry-delay
Multi: single
Scope: global
+See-also:
+ - limit-rate
+ - retry-delay
+Example:
+ - --rate 2/s $URL ...
+ - --rate 3/h $URL ...
+ - --rate 14/m $URL ...
---
+
+# `--rate`
+
Specify the maximum transfer frequency you allow curl to use - in number of
transfer starts per time unit (sometimes called request rate). Without this
option, curl starts the next transfer as fast as possible.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: raw
Added: 7.16.2
Protocols: HTTP
Category: http
-Example: --raw $URL
-See-also: tr-encoding
Multi: boolean
+See-also:
+ - tr-encoding
+Example:
+ - --raw $URL
---
+
+# `--raw`
+
When used, it disables all internal HTTP decoding of content or transfer
encodings and instead makes them passed on unaltered, raw.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: referer
Arg: <URL>
Protocols: HTTP
Help: Referrer URL
-See-also: user-agent header
Category: http
-Example: --referer "https://fake.example" $URL
-Example: --referer "https://fake.example;auto" -L $URL
-Example: --referer ";auto" -L $URL
Added: 4.0
Multi: single
+See-also:
+ - user-agent
+ - header
+Example:
+ - --referer "https://fake.example" $URL
+ - --referer "https://fake.example;auto" -L $URL
+ - --referer ";auto" -L $URL
---
+
+# `--referer`
+
Sends the "Referrer Page" information to the HTTP server. This can also be set
with the --header flag of course. When used with --location you can append
";auto" to the --referer URL to make curl automatically set the previous URL
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: remote-header-name
Protocols: HTTP
Help: Use the header-provided filename
Category: output
-Example: -OJ https://example.com/file
Added: 7.20.0
-See-also: remote-name
Multi: boolean
+See-also:
+ - remote-name
+Example:
+ - -OJ https://example.com/file
---
+
+# `--remote-header-name`
+
This option tells the --remote-name option to use the server-specified
Content-Disposition filename instead of extracting a filename from the URL. If
the server-provided file name contains a path, that is stripped off before the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: remote-name-all
Help: Use the remote file name for all URLs
Added: 7.19.0
Category: output
-Example: --remote-name-all ftp://example.com/file1 ftp://example.com/file2
-See-also: remote-name
Multi: boolean
+See-also:
+ - remote-name
+Example:
+ - --remote-name-all ftp://example.com/file1 ftp://example.com/file2
---
+
+# `--remote-name-all`
+
This option changes the default action for all given URLs to be dealt with as
if --remote-name were used for each one. So if you want to disable that for a
specific URL after --remote-name-all has been used, you must use "-o -" or
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: remote-name
Short: O
Help: Write output to a file named as the remote file
Category: important output
-Example: -O https://example.com/filename
Added: 4.0
-See-also: remote-name-all output-dir remote-header-name
Multi: append
+See-also:
+ - remote-name-all
+ - output-dir
+ - remote-header-name
+Example:
+ - -O https://example.com/filename
---
+
+# `--remote-name`
+
Write output to a local file named like the remote file we get. (Only the file
part of the remote file is used, the path is cut off.)
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: remote-time
Short: R
Help: Set the remote file's time on the local output
Category: output
-Example: --remote-time -o foo $URL
Added: 7.9
-See-also: remote-name time-cond
Multi: boolean
+See-also:
+ - remote-name
+ - time-cond
+Example:
+ - --remote-time -o foo $URL
---
+
+# `--remote-time`
+
Makes 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.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: remove-on-error
Help: Remove output file on errors
-See-also: fail
Category: curl
-Example: --remove-on-error -o output $URL
Added: 7.83.0
Multi: boolean
+See-also:
+ - fail
+Example:
+ - --remove-on-error -o output $URL
---
+
+# `--remove-on-error`
+
When curl returns an error when told to save output in a local file, this
option removes that saved file before exiting. This prevents curl from
leaving a partial file in the case of an error during transfer.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: request-target
Protocols: HTTP
Added: 7.55.0
Category: http
-Example: --request-target "*" -X OPTIONS $URL
-See-also: request
Multi: single
+See-also:
+ - request
+Example:
+ - --request-target "*" -X OPTIONS $URL
---
+
+# `--request-target`
+
Tells curl to use an alternative "target" (path) instead of using the path as
provided in the URL. Particularly useful when wanting to issue HTTP requests
without leading slash or other data that does not follow the regular URL
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: request
Arg: <method>
Help: Specify request method to use
Category: connection
-Example: -X "DELETE" $URL
-Example: -X NLST ftp://example.com/
Added: 6.0
-See-also: request-target
Multi: single
+See-also:
+ - request-target
+Example:
+ - -X "DELETE" $URL
+ - -X NLST ftp://example.com/
---
+
+# `--request`
+
Change the method to use when starting the transfer.
curl passes on the verbatim string you give it its the request without any
server. The specified request method is used instead of the method otherwise
used (which defaults to *GET*). Read the HTTP 1.1 specification for details
and explanations. Common additional HTTP requests include *PUT* and *DELETE*,
-but related technologies like WebDAV offers *PROPFIND*, *COPY*, *MOVE* and
+while related technologies like WebDAV offers *PROPFIND*, *COPY*, *MOVE* and
more.
Normally you do not need this option. All sorts of *GET*, *HEAD*, *POST* and
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: resolve
Help: Resolve the host+port to this address
Added: 7.21.3
Category: connection dns
-Example: --resolve example.com:443:127.0.0.1 $URL
-See-also: connect-to alt-svc
Multi: append
+See-also:
+ - connect-to
+ - alt-svc
+Example:
+ - --resolve example.com:443:127.0.0.1 $URL
---
+
+# `--resolve`
+
Provide a custom address for a specific host and port pair. Using this, you
can make the curl requests(s) use a specified address and prevent the
otherwise normally resolved address to be used. Consider it a sort of
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: retry-all-errors
Help: Retry all errors (use with --retry)
Added: 7.71.0
Category: curl
-Example: --retry 5 --retry-all-errors $URL
-See-also: retry
Multi: boolean
+See-also:
+ - retry
+Example:
+ - --retry 5 --retry-all-errors $URL
---
+
+# `--retry-all-errors`
+
Retry on any error. This option is used together with --retry.
This option is the "sledgehammer" of retrying. Do not use this option by
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: retry-connrefused
Help: Retry on connection refused (use with --retry)
Added: 7.52.0
Category: curl
-Example: --retry-connrefused --retry 7 $URL
-See-also: retry retry-all-errors
Multi: boolean
+See-also:
+ - retry
+ - retry-all-errors
+Example:
+ - --retry-connrefused --retry 7 $URL
---
+
+# `--retry-connrefused`
+
In addition to the other conditions, consider ECONNREFUSED as a transient
error too for --retry. This option is used together with --retry.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: retry-delay
Help: Wait time between retries
Added: 7.12.3
Category: curl
-Example: --retry-delay 5 --retry 7 $URL
-See-also: retry
Multi: single
+See-also:
+ - retry
+Example:
+ - --retry-delay 5 --retry 7 $URL
---
+
+# `--retry-delay`
+
Make 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). This option is only interesting if --retry is also
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: retry-max-time
Help: Retry only within this period
Added: 7.12.3
Category: curl
-Example: --retry-max-time 30 --retry 10 $URL
-See-also: retry
Multi: single
+See-also:
+ - retry
+Example:
+ - --retry-max-time 30 --retry 10 $URL
---
+
+# `--retry-max-time`
+
The retry timer is reset before the first transfer attempt. Retries are done
as usual (see --retry) as long as the timer has not reached this given
limit. Notice that if the timer has not reached the limit, the request is
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: retry
Added: 7.12.3
Help: Retry request if transient problems occur
Category: curl
-Example: --retry 7 $URL
-See-also: retry-max-time
Multi: single
+See-also:
+ - retry-max-time
+Example:
+ - --retry 7 $URL
---
+
+# `--retry`
+
If a transient error is returned when curl tries to perform a transfer, it
retries this number of times before giving up. Setting the number to 0
makes curl do no retries (which is the default). Transient error means either:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: sasl-authzid
Help: Identity for SASL PLAIN authentication
Added: 7.66.0
Category: auth
-Example: --sasl-authzid zid imap://example.com/
-See-also: login-options
Multi: single
+See-also:
+ - login-options
+Example:
+ - --sasl-authzid zid imap://example.com/
---
+
+# `--sasl-authzid`
+
Use this authorization identity (**authzid**), during SASL PLAIN
authentication, in addition to the authentication identity (**authcid**) as
specified by --user.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: sasl-ir
Help: Enable initial response in SASL authentication
Added: 7.31.0
Category: auth
-Example: --sasl-ir imap://example.com/
-See-also: sasl-authzid
Multi: boolean
+See-also:
+ - sasl-authzid
+Example:
+ - --sasl-ir imap://example.com/
---
+
+# `--sasl-ir`
+
Enable initial response in SASL authentication.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: service-name
Arg: <name>
Added: 7.43.0
Category: misc
-Example: --service-name sockd/server $URL
-See-also: negotiate proxy-service-name
Multi: single
+See-also:
+ - negotiate
+ - proxy-service-name
+Example:
+ - --service-name sockd/server $URL
---
+
+# `--service-name`
+
This option allows you to change the service name for SPNEGO.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: show-error
Short: S
Help: Show error even when -s is used
-See-also: no-progress-meter
Category: curl
-Example: --show-error --silent $URL
Added: 5.9
Multi: boolean
Scope: global
+See-also:
+ - no-progress-meter
+Example:
+ - --show-error --silent $URL
---
+
+# `--show-error`
+
When used with --silent, it makes curl show an error message if it fails.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: silent
Short: s
Help: Silent mode
-See-also: verbose stderr no-progress-meter
Category: important verbose
-Example: -s $URL
Added: 4.0
Multi: boolean
+See-also:
+ - verbose
+ - stderr
+ - no-progress-meter
+Example:
+ - -s $URL
---
+
+# `--silent`
+
Silent or quiet mode. Do not show progress meter or error messages. Makes Curl
mute. It still outputs the data you ask for, potentially even to the
terminal/stdout unless you redirect it.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks4
Help: SOCKS4 proxy on given host + port
Added: 7.15.2
Category: proxy
-Example: --socks4 hostname:4096 $URL
-See-also: socks4a socks5 socks5-hostname
Multi: single
+See-also:
+ - socks4a
+ - socks5
+ - socks5-hostname
+Example:
+ - --socks4 hostname:4096 $URL
---
+
+# `--socks4`
+
Use the specified SOCKS4 proxy. If the port number is not specified, it is
assumed at port 1080. Using this socket type make curl resolve the host name
and passing the address on to the proxy.
To specify proxy on a unix domain socket, use localhost for host, e.g.
-socks4://localhost/path/to/socket.sock
+`socks4://localhost/path/to/socket.sock`
This option overrides any previous use of --proxy, as they are mutually
exclusive.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks4a
Help: SOCKS4a proxy on given host + port
Added: 7.18.0
Category: proxy
-Example: --socks4a hostname:4096 $URL
-See-also: socks4 socks5 socks5-hostname
Multi: single
+See-also:
+ - socks4
+ - socks5
+ - socks5-hostname
+Example:
+ - --socks4a hostname:4096 $URL
---
+
+# `--socks4a`
+
Use the specified SOCKS4a proxy. If the port number is not specified, it is
assumed at port 1080. This asks the proxy to resolve the host name.
To specify proxy on a unix domain socket, use localhost for host, e.g.
-socks4a://localhost/path/to/socket.sock
+`socks4a://localhost/path/to/socket.sock`
This option overrides any previous use of --proxy, as they are mutually
exclusive.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks5-basic
Help: Enable username/password auth for SOCKS5 proxies
Added: 7.55.0
Category: proxy auth
-Example: --socks5-basic --socks5 hostname:4096 $URL
-See-also: socks5
Multi: mutex
+See-also:
+ - socks5
+Example:
+ - --socks5-basic --socks5 hostname:4096 $URL
---
+
+# `--socks5-basic`
+
Tells curl to use username/password authentication when connecting to a SOCKS5
-proxy. The username/password authentication is enabled by default. Use
+proxy. The username/password authentication is enabled by default. Use
--socks5-gssapi to force GSS-API authentication to SOCKS5 proxies.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks5-gssapi-nec
Help: Compatibility with NEC SOCKS5 server
Added: 7.19.4
Category: proxy auth
-Example: --socks5-gssapi-nec --socks5 hostname:4096 $URL
-See-also: socks5
Multi: boolean
+See-also:
+ - socks5
+Example:
+ - --socks5-gssapi-nec --socks5 hostname:4096 $URL
---
+
+# `--socks5-gssapi-nec`
+
As part of the GSS-API negotiation a protection mode is negotiated. RFC 1961
says in section 4.3/4.4 it should be protected, but the NEC reference
implementation does not. The option --socks5-gssapi-nec allows the
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks5-gssapi-service
Help: SOCKS5 proxy service name for GSS-API
Added: 7.19.4
Category: proxy auth
-Example: --socks5-gssapi-service sockd --socks5 hostname:4096 $URL
-See-also: socks5
Multi: single
+See-also:
+ - socks5
+Example:
+ - --socks5-gssapi-service sockd --socks5 hostname:4096 $URL
---
+
+# `--socks5-gssapi-service`
+
The default service name for a socks server is **rcmd/server-fqdn**. This option
allows you to change it.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks5-gssapi
Help: Enable GSS-API auth for SOCKS5 proxies
Added: 7.55.0
Category: proxy auth
-Example: --socks5-gssapi --socks5 hostname:4096 $URL
-See-also: socks5
Multi: boolean
+See-also:
+ - socks5
+Example:
+ - --socks5-gssapi --socks5 hostname:4096 $URL
---
+
+# `--socks5-gssapi`
+
Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy.
The GSS-API authentication is enabled by default (if curl is compiled with
-GSS-API support). Use --socks5-basic to force username/password authentication
+GSS-API support). Use --socks5-basic to force username/password authentication
to SOCKS5 proxies.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks5-hostname
Help: SOCKS5 proxy, pass host name to proxy
Added: 7.18.0
Category: proxy
-Example: --socks5-hostname proxy.example:7000 $URL
-See-also: socks5 socks4a
Multi: single
+See-also:
+ - socks5
+ - socks4a
+Example:
+ - --socks5-hostname proxy.example:7000 $URL
---
+
+# `--socks5-hostname`
+
Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If
the port number is not specified, it is assumed at port 1080.
To specify proxy on a unix domain socket, use localhost for host, e.g.
-socks5h://localhost/path/to/socket.sock
+`socks5h://localhost/path/to/socket.sock`
This option overrides any previous use of --proxy, as they are mutually
exclusive.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: socks5
Help: SOCKS5 proxy on given host + port
Added: 7.18.0
Category: proxy
-Example: --socks5 proxy.example:7000 $URL
-See-also: socks5-hostname socks4a
Multi: single
+See-also:
+ - socks5-hostname
+ - socks4a
+Example:
+ - --socks5 proxy.example:7000 $URL
---
+
+# `--socks5`
+
Use the specified SOCKS5 proxy - but resolve the host name locally. If the
port number is not specified, it is assumed at port 1080.
To specify proxy on a unix domain socket, use localhost for host, e.g.
-socks5://localhost/path/to/socket.sock
+`socks5://localhost/path/to/socket.sock`
This option overrides any previous use of --proxy, as they are mutually
exclusive.
+++ /dev/null
-c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
-SPDX-License-Identifier: curl
-Long: speed-limit
-Short: Y
-Arg: <speed>
-Help: Stop transfers slower than this
-Category: connection
-Example: --speed-limit 300 --speed-time 10 $URL
-Added: 4.7
-See-also: speed-time limit-rate max-time
-Multi: single
----
-If a transfer is slower than this given speed (in bytes per second) for
-speed-time seconds it gets aborted. speed-time is set with --speed-time and is
-30 if not set.
--- /dev/null
+---
+c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+SPDX-License-Identifier: curl
+Long: speed-limit
+Short: Y
+Arg: <speed>
+Help: Stop transfers slower than this
+Category: connection
+Added: 4.7
+Multi: single
+See-also:
+ - speed-time
+ - limit-rate
+ - max-time
+Example:
+ - --speed-limit 300 --speed-time 10 $URL
+---
+
+# `--speed-limit`
+
+If a transfer is slower than this set speed (in bytes per second) for a given
+number of seconds, it gets aborted. The time period is set with --speed-time
+and is 30 seconds by default.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: speed-time
Arg: <seconds>
Help: Trigger 'speed-limit' abort after this time
Category: connection
-Example: --speed-limit 300 --speed-time 10 $URL
Added: 4.7
-See-also: speed-limit limit-rate
Multi: single
+See-also:
+ - speed-limit
+ - limit-rate
+Example:
+ - --speed-limit 300 --speed-time 10 $URL
---
+
+# `--speed-time`
+
If a transfer runs slower than speed-limit bytes per second during a
speed-time period, the transfer is aborted. If speed-time is used, the default
speed-limit is 1 unless set with --speed-limit.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ssl-allow-beast
Protocols: TLS
Added: 7.25.0
Category: tls
-Example: --ssl-allow-beast $URL
-See-also: proxy-ssl-allow-beast insecure
Multi: boolean
+See-also:
+ - proxy-ssl-allow-beast
+ - insecure
+Example:
+ - --ssl-allow-beast $URL
---
+
+# `--ssl-allow-beast`
+
This option tells curl to not work around a security flaw in the SSL3 and
-TLS1.0 protocols known as BEAST. If this option is not used, the SSL layer
-may use workarounds known to cause interoperability problems with some older
-SSL implementations.
+TLS1.0 protocols known as BEAST. If this option is not used, the SSL layer may
+use workarounds known to cause interoperability problems with some older SSL
+implementations.
**WARNING**: this option loosens the SSL security, and by using this flag you
ask for exactly that.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ssl-auto-client-cert
Help: Use auto client certificate (Schannel)
Added: 7.77.0
-See-also: proxy-ssl-auto-client-cert
Category: tls
Protocols: TLS
-Example: --ssl-auto-client-cert $URL
Multi: boolean
+See-also:
+ - proxy-ssl-auto-client-cert
+Example:
+ - --ssl-auto-client-cert $URL
---
+
+# `--ssl-auto-client-cert`
+
(Schannel) Tell libcurl to automatically locate and use a client certificate
for authentication, when requested by the server. Since the server can request
any certificate that supports client authentication in the OS certificate
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ssl-no-revoke
Added: 7.44.0
Protocols: TLS
Category: tls
-Example: --ssl-no-revoke $URL
-See-also: crlfile
Multi: boolean
+See-also:
+ - crlfile
+Example:
+ - --ssl-no-revoke $URL
---
+
+# `--ssl-no-revoke`
+
(Schannel) This option tells curl to disable certificate revocation checks.
WARNING: this option loosens the SSL security, and by using this flag you ask
for exactly that.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ssl-reqd
Protocols: FTP IMAP POP3 SMTP LDAP
Added: 7.20.0
Category: tls
-Example: --ssl-reqd ftp://example.com
-See-also: ssl insecure
Multi: boolean
+See-also:
+ - ssl
+ - insecure
+Example:
+ - --ssl-reqd ftp://example.com
---
+
+# `--ssl-reqd`
+
Require SSL/TLS for the connection. Terminates the connection if the transfer
cannot be upgraded to use SSL/TLS.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ssl-revoke-best-effort
Added: 7.70.0
Protocols: TLS
Category: tls
-Example: --ssl-revoke-best-effort $URL
-See-also: crlfile insecure
Multi: boolean
+See-also:
+ - crlfile
+ - insecure
+Example:
+ - --ssl-revoke-best-effort $URL
---
+
+# `--ssl-revoke-best-effort`
+
(Schannel) This option tells curl to ignore certificate revocation checks when
they failed due to missing/offline distribution points for the revocation check
lists.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: ssl
Protocols: FTP IMAP POP3 SMTP LDAP
Added: 7.20.0
Category: tls
-Example: --ssl pop3://example.com/
-See-also: ssl-reqd insecure ciphers
Multi: boolean
+See-also:
+ - ssl-reqd
+ - insecure
+ - ciphers
+Example:
+ - --ssl pop3://example.com/
---
+
+# `--ssl`
+
Warning: this is considered an insecure option. Consider using --ssl-reqd
instead to be sure curl upgrades to a secure connection.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: 2
Added: 5.9
Mutexed: sslv3 tlsv1 tlsv1.1 tlsv1.2
Requires: TLS
-See-also: http1.1 http2
Help: Use SSLv2
Category: tls
-Example: --sslv2 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+Example:
+ - --sslv2 $URL
---
+
+# `--sslv2`
+
This option previously asked curl to use SSLv2, but is now ignored
(added in 7.77.0). SSLv2 is widely considered insecure (see RFC 6176).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: 3
Added: 5.9
Mutexed: sslv2 tlsv1 tlsv1.1 tlsv1.2
Requires: TLS
-See-also: http1.1 http2
Help: Use SSLv3
Category: tls
-Example: --sslv3 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+Example:
+ - --sslv3 $URL
---
+
+# `--sslv3`
+
This option previously asked curl to use SSLv3, but is now ignored
(added in 7.77.0). SSLv3 is widely considered insecure (see RFC 7568).
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: stderr
Arg: <file>
Help: Where to redirect stderr
-See-also: verbose silent
Category: verbose
-Example: --stderr output.txt $URL
Added: 6.2
Multi: single
Scope: global
+See-also:
+ - verbose
+ - silent
+Example:
+ - --stderr output.txt $URL
---
+
+# `--stderr`
+
Redirect all writes to stderr to the specified file instead. If the file name
is a plain '-', it is instead written to stdout.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: styled-output
Help: Enable styled output for HTTP headers
Added: 7.61.0
Category: verbose
-Example: --styled-output -I $URL
-See-also: head verbose
Multi: boolean
Scope: global
+See-also:
+ - head
+ - verbose
+Example:
+ - --styled-output -I $URL
---
+
+# `--styled-output`
+
Enables the automatic use of bold font styles when writing HTTP headers to the
terminal. Use --no-styled-output to switch them off.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: suppress-connect-headers
Help: Suppress proxy CONNECT response headers
-See-also: dump-header include proxytunnel
Category: proxy
-Example: --suppress-connect-headers --include -x proxy $URL
Added: 7.54.0
Multi: boolean
+See-also:
+ - dump-header
+ - include
+ - proxytunnel
+Example:
+ - --suppress-connect-headers --include -x proxy $URL
---
+
+# `--suppress-connect-headers`
+
When --proxytunnel is used and a CONNECT request is made do not output proxy
CONNECT response headers. This option is meant to be used with --dump-header or
--include which are used to show protocol headers in the output. It has no
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tcp-fastopen
Added: 7.49.0
Help: Use TCP Fast Open
Category: connection
-Example: --tcp-fastopen $URL
-See-also: false-start
Multi: boolean
+See-also:
+ - false-start
+Example:
+ - --tcp-fastopen $URL
---
+
+# `--tcp-fastopen`
+
Enable use of TCP Fast Open (RFC 7413). TCP Fast Open is a TCP extension that
allows data to get sent earlier over the connection (before the final
handshake ACK) if the client and server have been connected previously.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tcp-nodelay
Help: Use the TCP_NODELAY option
Added: 7.11.2
Category: connection
-Example: --tcp-nodelay $URL
-See-also: no-buffer
Multi: boolean
+See-also:
+ - no-buffer
+Example:
+ - --tcp-nodelay $URL
---
+
+# `--tcp-nodelay`
+
Turn on the TCP_NODELAY option. See the *curl_easy_setopt(3)* man page for
details about this option.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: telnet-option
Arg: <opt=val>
Help: Set telnet option
Category: telnet
-Example: -t TTYPE=vt100 telnet://example.com/
Added: 7.7
-See-also: config
Multi: append
+See-also:
+ - config
+Example:
+ - -t TTYPE=vt100 telnet://example.com/
---
+
+# `--telnet-option`
+
Pass options to the telnet protocol. Supported options are:
-## TTYPE=<term>
+## `TTYPE=<term>`
Sets the terminal type.
-## XDISPLOC=<X display>
+## `XDISPLOC=<X display>`
Sets the X display location.
-## NEW_ENV=<var,val>
+## `NEW_ENV=<var,val>`
Sets an environment variable.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tftp-blksize
Protocols: TFTP
Added: 7.20.0
Category: tftp
-Example: --tftp-blksize 1024 tftp://example.com/file
-See-also: tftp-no-options
Multi: single
+See-also:
+ - tftp-no-options
+Example:
+ - --tftp-blksize 1024 tftp://example.com/file
---
+
+# `--tftp-blksize`
+
Set the TFTP **BLKSIZE** option (must be >512). This is the block size that
curl tries to use when transferring data to or from a TFTP server. By
default 512 bytes are used.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tftp-no-options
Protocols: TFTP
Added: 7.48.0
Category: tftp
-Example: --tftp-no-options tftp://192.168.0.1/
-See-also: tftp-blksize
Multi: boolean
+See-also:
+ - tftp-blksize
+Example:
+ - --tftp-no-options tftp://192.168.0.1/
---
+
+# `--tftp-no-options`
+
Tells curl not to send TFTP options requests.
This option improves interop with some legacy servers that do not acknowledge
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: time-cond
Help: Transfer based on a time condition
Protocols: HTTP FTP
Category: http ftp
-Example: -z "Wed 01 Sep 2021 12:18:00" $URL
-Example: -z "-Wed 01 Sep 2021 12:18:00" $URL
-Example: -z file $URL
Added: 5.8
-See-also: etag-compare remote-time
Multi: single
+See-also:
+ - etag-compare
+ - remote-time
+Example:
+ - -z "Wed 01 Sep 2021 12:18:00" $URL
+ - -z "-Wed 01 Sep 2021 12:18:00" $URL
+ - -z file $URL
---
+
+# `--time-cond`
+
Request a file that has been modified later than the given time and date, or
one that has been modified before that time. The <date expression> can be all
sorts of date strings or if it does not match any internal ones, it is taken as
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tls-max
Protocols: TLS
Added: 7.54.0
Requires: TLS
-See-also: tlsv1.0 tlsv1.1 tlsv1.2 tlsv1.3
Help: Set maximum allowed TLS version
Category: tls
-Example: --tls-max 1.2 $URL
-Example: --tls-max 1.3 --tlsv1.2 $URL
Multi: single
+See-also:
+ - tlsv1.0
+ - tlsv1.1
+ - tlsv1.2
+ - tlsv1.3
+Example:
+ - --tls-max 1.2 $URL
+ - --tls-max 1.3 --tlsv1.2 $URL
---
+
+# `--tls-max`
+
VERSION defines maximum supported TLS version. The minimum acceptable version
is set by tlsv1.0, tlsv1.1, tlsv1.2 or tlsv1.3.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tls13-ciphers
help: TLS 1.3 cipher suites to use
Protocols: TLS
Category: tls
-Example: --tls13-ciphers TLS_AES_128_GCM_SHA256 $URL
Added: 7.61.0
-See-also: ciphers curves proxy-tls13-ciphers
Multi: single
+See-also:
+ - ciphers
+ - curves
+ - proxy-tls13-ciphers
+Example:
+ - --tls13-ciphers TLS_AES_128_GCM_SHA256 $URL
---
+
+# `--tls13-ciphers`
+
Specifies which cipher suites to use in the connection if it negotiates TLS
1.3. The list of ciphers suites must specify valid ciphers. Read up on TLS 1.3
cipher suite details on this URL:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlsauthtype
Protocols: TLS
Added: 7.21.4
Category: tls auth
-Example: --tlsauthtype SRP $URL
-See-also: tlsuser
Multi: single
+See-also:
+ - tlsuser
+Example:
+ - --tlsauthtype SRP $URL
---
+
+# `--tlsauthtype`
+
Set TLS authentication type. Currently, the only supported option is "SRP",
for TLS-SRP (RFC 5054). If --tlsuser and --tlspassword are specified but
--tlsauthtype is not, then this option defaults to "SRP". This option works
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlspassword
Added: 7.21.4
Protocols: TLS
Category: tls auth
-Example: --tlspassword pwd --tlsuser user $URL
-See-also: tlsuser
Multi: single
+See-also:
+ - tlsuser
+Example:
+ - --tlspassword pwd --tlsuser user $URL
---
+
+# `--tlspassword`
+
Set password for use with the TLS authentication method specified with
--tlsauthtype. Requires that --tlsuser also be set.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlsuser
Added: 7.21.4
Protocols: TLS
Category: tls auth
-Example: --tlspassword pwd --tlsuser user $URL
-See-also: tlspassword
Multi: single
+See-also:
+ - tlspassword
+Example:
+ - --tlspassword pwd --tlsuser user $URL
---
+
+# `--tlsuser`
+
Set username for use with the TLS authentication method specified with
--tlsauthtype. Requires that --tlspassword also is set.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlsv1.0
Protocols: TLS
Added: 7.34.0
Category: tls
-Example: --tlsv1.0 $URL
-See-also: tlsv1.3
Multi: mutex
+See-also:
+ - tlsv1.3
+Example:
+ - --tlsv1.0 $URL
---
+
+# `--tlsv1.0`
+
Forces curl to use TLS version 1.0 or later when connecting to a remote TLS server.
In old versions of curl this option was documented to allow _only_ TLS 1.0.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlsv1.1
Protocols: TLS
Added: 7.34.0
Category: tls
-Example: --tlsv1.1 $URL
-See-also: tlsv1.3 tls-max
Multi: mutex
+See-also:
+ - tlsv1.3
+ - tls-max
+Example:
+ - --tlsv1.1 $URL
---
+
+# `--tlsv1.1`
+
Forces curl to use TLS version 1.1 or later when connecting to a remote TLS server.
In old versions of curl this option was documented to allow _only_ TLS 1.1.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlsv1.2
Protocols: TLS
Added: 7.34.0
Category: tls
-Example: --tlsv1.2 $URL
-See-also: tlsv1.3 tls-max
Multi: mutex
+See-also:
+ - tlsv1.3
+ - tls-max
+Example:
+ - --tlsv1.2 $URL
---
+
+# `--tlsv1.2`
+
Forces curl to use TLS version 1.2 or later when connecting to a remote TLS server.
In old versions of curl this option was documented to allow _only_ TLS 1.2.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tlsv1.3
Protocols: TLS
Added: 7.52.0
Category: tls
-Example: --tlsv1.3 $URL
-See-also: tlsv1.2 tls-max
Multi: mutex
+See-also:
+ - tlsv1.2
+ - tls-max
+Example:
+ - --tlsv1.3 $URL
---
+
+# `--tlsv1.3`
+
Forces curl to use TLS version 1.3 or later when connecting to a remote TLS
server.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: 1
Added: 7.9.2
Mutexed: tlsv1.1 tlsv1.2 tlsv1.3
Requires: TLS
-See-also: http1.1 http2
Help: Use TLSv1.0 or greater
Category: tls
-Example: --tlsv1 $URL
Multi: mutex
+See-also:
+ - http1.1
+ - http2
+Example:
+ - --tlsv1 $URL
---
+
+# `--tlsv1`
+
Tells curl to use at least TLS version 1.x when negotiating with a remote TLS
server. That means TLS version 1.0 or higher
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: tr-encoding
Help: Request compressed transfer encoding
Protocols: HTTP
Category: http
-Example: --tr-encoding $URL
-See-also: compressed
Multi: boolean
+See-also:
+ - compressed
+Example:
+ - --tr-encoding $URL
---
+
+# `--tr-encoding`
+
Request a compressed Transfer-Encoding response using one of the algorithms
curl supports, and uncompress the data while receiving it.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: trace-ascii
Help: Like --trace, but without hex output
Mutexed: trace verbose
Category: verbose
-Example: --trace-ascii log.txt $URL
Added: 7.9.7
-See-also: verbose trace
Multi: single
Scope: global
+See-also:
+ - verbose
+ - trace
+Example:
+ - --trace-ascii log.txt $URL
---
+
+# `--trace-ascii`
+
Enables a full trace dump of all incoming and outgoing data, including
descriptive information, to the given output file. Use "-" as filename to have
the output sent to stdout.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: trace-config
Help: Details to log in trace/verbose output
Mutexed: trace verbose
Category: verbose
-Example: --trace-config ids,http/2 $URL
Added: 8.3.0
-See-also: verbose trace
Multi: append
Scope: global
+See-also:
+ - verbose
+ - trace
+Example:
+ - --trace-config ids,http/2 $URL
---
+
+# `--trace-config`
+
Set configuration for trace output. A comma-separated list of components where
detailed output can be made available from. Names are case-insensitive.
Specify 'all' to enable all trace components.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: trace-ids
Help: Add transfer and connection identifiers to trace/verbose output
Added: 8.2.0
Category: verbose
-Example: --trace-ids --trace-ascii output $URL
-See-also: trace verbose
Multi: boolean
Scope: global
+See-also:
+ - trace
+ - verbose
+Example:
+ - --trace-ids --trace-ascii output $URL
---
+
+# `--trace-ids`
+
Prepends the transfer and connection identifiers to each trace or verbose line that curl displays.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: trace-time
Help: Add time stamps to trace/verbose output
Added: 7.14.0
Category: verbose
-Example: --trace-time --trace-ascii output $URL
-See-also: trace verbose
Multi: boolean
Scope: global
+See-also:
+ - trace
+ - verbose
+Example:
+ - --trace-time --trace-ascii output $URL
---
+
+# `--trace-time`
+
Prepends a time stamp to each trace or verbose line that curl displays.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: trace
Help: Write a debug trace to FILE
Mutexed: verbose trace-ascii
Category: verbose
-Example: --trace log.txt $URL
Added: 7.9.7
-See-also: trace-ascii trace-config trace-ids trace-time
Multi: single
Scope: global
+See-also:
+ - trace-ascii
+ - trace-config
+ - trace-ids
+ - trace-time
+Example:
+ - --trace log.txt $URL
---
+
+# `--trace`
+
Enables a full trace dump of all incoming and outgoing data, including
descriptive information, to the given output file. Use "-" as filename to have
the output sent to stdout. Use "%" as filename to have the output sent to
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: unix-socket
Added: 7.40.0
Protocols: HTTP
Category: connection
-See-also: abstract-unix-socket
-Example: --unix-socket socket-path $URL
Multi: single
+See-also:
+ - abstract-unix-socket
+Example:
+ - --unix-socket socket-path $URL
---
+
+# `--unix-socket`
+
Connect through this Unix domain socket, instead of using the network.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: upload-file
Arg: <file>
Help: Transfer local FILE to destination
Category: important upload
-Example: -T file $URL
-Example: -T "img[1-1000].png" ftp://ftp.example.com/
-Example: --upload-file "{file1,file2}" $URL
Added: 4.0
-See-also: get head request data
Multi: append
+See-also:
+ - get
+ - head
+ - request
+ - data
+Example:
+ - -T file $URL
+ - -T "img[1-1000].png" ftp://ftp.example.com/
+ - --upload-file "{file1,file2}" $URL
---
+
+# `--upload-file`
+
This transfers the specified local file to the remote URL.
If there is no file part in the specified URL, curl appends the local file
to use.
When putting the local file name at the end of the URL, curl ignores what is
-on the left side of any slash (/) or backslash (\\) used in the file name and
+on the left side of any slash (/) or backslash (\) used in the file name and
only appends what is on the right side of the rightmost such character.
Use the file name "-" (a single dash) to use stdin instead of a given file.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: url-query
Arg: <data>
Help: Add a URL query part
Protocols: all
-See-also: data-urlencode get
Added: 7.87.0
Category: http post upload
-Example: --url-query name=val $URL
-Example: --url-query =encodethis http://example.net/foo
-Example: --url-query name@file $URL
-Example: --url-query @fileonly $URL
-Example: --url-query "+name=%20foo" $URL
Multi: append
+See-also:
+ - data-urlencode
+ - get
+Example:
+ - --url-query name=val $URL
+ - --url-query =encodethis http://example.net/foo
+ - --url-query name@file $URL
+ - --url-query @fileonly $URL
+ - --url-query "+name=%20foo" $URL
---
+
+# `--url-query`
+
This option adds a piece of data, usually a name + value pair, to the end of
the URL query part. The syntax is identical to that used for --data-urlencode
with one extension:
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: url
Arg: <url>
Help: URL to work with
Category: curl
-Example: --url $URL
Added: 7.5
-See-also: next config
Multi: append
+See-also:
+ - next
+ - config
+Example:
+ - --url $URL
---
+
+# `--url`
+
Specify a URL to fetch. This option is mostly handy when you want to specify
URL(s) in a config file.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: B
Help: Use ASCII/text transfer
Protocols: FTP LDAP
Category: misc
-Example: -B ftp://example.com/README
Added: 5.0
-See-also: crlf data-ascii
Multi: boolean
+See-also:
+ - crlf
+ - data-ascii
+Example:
+ - -B ftp://example.com/README
---
+
+# `--use-ascii`
+
Enable ASCII transfer. For FTP, this can also be enforced by using a URL that
ends with ";type=A". This option causes data sent to stdout to be in text mode
for win32 systems.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: A
Help: Send User-Agent <name> to server
Protocols: HTTP
Category: important http
-Example: -A "Agent 007" $URL
Added: 4.5.1
-See-also: header proxy-header
Multi: single
+See-also:
+ - header
+ - proxy-header
+Example:
+ - -A "Agent 007" $URL
---
+
+# `--user-agent`
+
Specify the User-Agent string to send to the HTTP server. To encode blanks in
the string, surround the string with single quote marks. This header can also
be set with the --header or the --proxy-header options.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: user
Arg: <user:password>
Help: Server user and password
Category: important auth
-Example: -u user:secret $URL
Added: 4.0
-See-also: netrc config
Multi: single
+See-also:
+ - netrc
+ - config
+Example:
+ - -u user:secret $URL
---
+
+# `--user`
+
Specify the user name and password to use for server authentication. Overrides
--netrc and --netrc-optional.
On systems where it works, curl hides the given option argument from process
listings. This is not enough to protect credentials from possibly getting seen
-by other users on the same system as they still are visible for a brief moment
+by other users on the same system as they still are visible for a moment
before cleared. Such sensitive data should be retrieved from a file instead or
similar and never used in clear text in a command line.
for example.
To specify the domain name use either Down-Level Logon Name or UPN (User
-Principal Name) formats. For example, EXAMPLE\\user and user@example.com
+Principal Name) formats. For example, EXAMPLE\user and user@example.com
respectively.
If you use a Windows SSPI-enabled curl binary and perform Kerberos V5,
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: variable
Arg: <[%]name=text/@file>
Help: Set variable
Category: curl
-Example: --variable name=smith $URL
Added: 8.3.0
-See-also: config
Multi: append
+See-also:
+ - config
+Example:
+ - --variable name=smith $URL
---
+
+# `--variable`
+
Set a variable with "name=content" or "name@file" (where "file" can be stdin
if set to a single dash (-)). The name is a case sensitive identifier that
must consist of no other letters than a-z, A-Z, 0-9 or underscore. The
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Short: v
Long: verbose
Mutexed: trace trace-ascii
Help: Make the operation more talkative
-See-also: include silent trace trace-ascii
Category: important verbose
-Example: --verbose $URL
Added: 4.0
Multi: boolean
Scope: global
+See-also:
+ - include
+ - silent
+ - trace
+ - trace-ascii
+Example:
+ - --verbose $URL
---
+
+# `--verbose`
+
Makes curl verbose during the operation. Useful for debugging and seeing
what's going on "under the hood". A line starting with '>' means "header data"
sent by curl, '<' means "header data" received by curl that is hidden in
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: version
Short: V
Help: Show version number and quit
Category: important curl
-Example: --version
Added: 4.0
-See-also: help manual
Multi: custom
+See-also:
+ - help
+ - manual
+Example:
+ - --version
---
+
+# `--version`
+
Displays information about curl and the libcurl version it uses.
The first line includes the full version of curl, libcurl and other 3rd party
libraries linked with the executable.
-The second line (starts with "Release-Date:") shows the release date.
+The second line (starts with `Release-Date:`) shows the release date.
-The third line (starts with "Protocols:") shows all protocols that libcurl
+The third line (starts with `Protocols:`) shows all protocols that libcurl
reports to support.
-The fourth line (starts with "Features:") shows specific features libcurl
+The fourth line (starts with `Features:`) shows specific features libcurl
reports to offer. Available features include:
-## alt-svc
+## `alt-svc`
Support for the Alt-Svc: header is provided.
-## AsynchDNS
+## `AsynchDNS`
This curl uses asynchronous name resolves. Asynchronous name resolves can be
done using either the c-ares or the threaded resolver backends.
-## brotli
+## `brotli`
Support for automatic brotli compression over HTTP(S).
-## CharConv
+## `CharConv`
curl was built with support for character set conversions (like EBCDIC)
-## Debug
+## `Debug`
This curl uses a libcurl built with Debug. This enables more error-tracking
and memory debugging etc. For curl-developers only!
-## gsasl
+## `gsasl`
The built-in SASL authentication includes extensions to support SCRAM because
libcurl was built with libgsasl.
-## GSS-API
+## `GSS-API`
GSS-API is supported.
-## HSTS
+## `HSTS`
HSTS support is present.
-## HTTP2
+## `HTTP2`
HTTP/2 support has been built-in.
-## HTTP3
+## `HTTP3`
HTTP/3 support has been built-in.
-## HTTPS-proxy
+## `HTTPS-proxy`
This curl is built to support HTTPS proxy.
-## IDN
+## `IDN`
This curl supports IDN - international domain names.
-## IPv6
+## `IPv6`
You can use IPv6 with this.
-## Kerberos
+## `Kerberos`
Kerberos V5 authentication is supported.
-## Largefile
+## `Largefile`
This curl supports transfers of large files, files larger than 2GB.
-## libz
+## `libz`
Automatic decompression (via gzip, deflate) of compressed files over HTTP is
supported.
-## MultiSSL
+## `MultiSSL`
This curl supports multiple TLS backends.
-## NTLM
+## `NTLM`
NTLM authentication is supported.
-## NTLM_WB
+## `NTLM_WB`
NTLM delegation to winbind helper is supported.
-## PSL
+## `PSL`
PSL is short for Public Suffix List and means that this curl has been built
with knowledge about "public suffixes".
-## SPNEGO
+## `SPNEGO`
SPNEGO authentication is supported.
-## SSL
+## `SSL`
SSL versions of various protocols are supported, such as HTTPS, FTPS, POP3S
and so on.
-## SSPI
+## `SSPI`
SSPI is supported.
-## TLS-SRP
+## `TLS-SRP`
SRP (Secure Remote Password) authentication is supported for TLS.
-## TrackMemory
+## `TrackMemory`
Debug memory tracking is supported.
-## Unicode
+## `Unicode`
Unicode support on Windows.
-## UnixSockets
+## `UnixSockets`
Unix sockets support is provided.
-## zstd
+## `zstd`
Automatic decompression (via zstd) of compressed files over HTTP is supported.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: write-out
Arg: <format>
Help: Use output FORMAT after completion
Category: verbose
-Example: -w '%{response_code}\\n' $URL
Added: 6.5
-See-also: verbose head
Multi: single
+See-also:
+ - verbose
+ - head
+Example:
+ - -w '%{response_code}\n' $URL
---
+
+# `--write-out`
+
Make curl display information on stdout after a completed transfer. The format
is a string that may contain plain text mixed with any number of
variables. The format can be specified as a literal "string", or you can have
The variables present in the output format are substituted by the value or
text that curl thinks fit, as described below. All variables are specified as
%{variable_name} and to output a normal % you just write them as %%. You can
-output a newline by using \\n, a carriage return with \\r and a tab space with
-\\t.
+output a newline by using \n, a carriage return with \r and a tab space with
+\t.
The output is by default written to standard output, but can be changed with
%{stderr} and %output{}.
The variables available are:
-## certs
+## `certs`
Output the certificate chain with details. Supported only by the OpenSSL,
GnuTLS, Schannel and Secure Transport backends. (Added in 7.88.0)
-## content_type
+## `content_type`
The Content-Type of the requested document, if there was any.
-## errormsg
+## `errormsg`
The error message. (Added in 7.75.0)
-## exitcode
+## `exitcode`
The numerical exit code of the transfer. (Added in 7.75.0)
-## filename_effective
+## `filename_effective`
The ultimate filename that curl writes out to. This is only meaningful if curl
is told to write to a file with the --remote-name or --output
option. It's most useful in combination with the --remote-header-name
option. (Added in 7.26.0)
-## ftp_entry_path
+## `ftp_entry_path`
The initial path curl ended up in when logging on to the remote FTP
server. (Added in 7.15.4)
-## header_json
+## `header_json`
A JSON object with all HTTP response headers from the recent transfer. Values
are provided as arrays, since in the case of multiple headers there can be
multiple values. (Added in 7.83.0)
wire. Except for duplicated headers. They are grouped on the first occurrence
of that header, each value is presented in the JSON array.
-## http_code
+## `http_code`
The numerical response code that was found in the last retrieved HTTP(S) or
FTP(s) transfer.
-## http_connect
+## `http_connect`
The numerical code that was found in the last response (from a proxy) to a
curl CONNECT request. (Added in 7.12.4)
-## http_version
+## `http_version`
The http version that was effectively used. (Added in 7.50.0)
-## json
+## `json`
A JSON object with all available keys. (Added in 7.70.0)
-## local_ip
+## `local_ip`
The IP address of the local end of the most recently done connection - can be
either IPv4 or IPv6. (Added in 7.29.0)
-## local_port
+## `local_port`
The local port number of the most recently done connection. (Added in 7.29.0)
-## method
+## `method`
The http method used in the most recent HTTP request. (Added in 7.72.0)
-## num_certs
+## `num_certs`
Number of server certificates received in the TLS handshake. Supported only by
the OpenSSL, GnuTLS, Schannel and Secure Transport backends.
(Added in 7.88.0)
-## num_connects
+## `num_connects`
Number of new connects made in the recent transfer. (Added in 7.12.3)
-## num_headers
+## `num_headers`
The number of response headers in the most recent request (restarted at each
redirect). Note that the status line IS NOT a header. (Added in 7.73.0)
-## num_redirects
+## `num_redirects`
Number of redirects that were followed in the request. (Added in 7.12.3)
-## onerror
+## `onerror`
The rest of the output is only shown if the transfer returned a non-zero error.
(Added in 7.75.0)
-## proxy_ssl_verify_result
+## `proxy_ssl_verify_result`
The result of the HTTPS proxy's SSL peer certificate verification that was
requested. 0 means the verification was successful. (Added in 7.52.0)
-## redirect_url
+## `redirect_url`
When an HTTP request was made without --location to follow redirects (or when
--max-redirs is met), this variable shows the actual URL a redirect
*would* have gone to. (Added in 7.18.2)
-## referer
+## `referer`
The Referer: header, if there was any. (Added in 7.76.0)
-## remote_ip
+## `remote_ip`
The remote IP address of the most recently done connection - can be either
IPv4 or IPv6. (Added in 7.29.0)
-## remote_port
+## `remote_port`
The remote port number of the most recently done connection. (Added in 7.29.0)
-## response_code
+## `response_code`
The numerical response code that was found in the last transfer (formerly
known as "http_code"). (Added in 7.18.2)
-## scheme
+## `scheme`
The URL scheme (sometimes called protocol) that was effectively used. (Added in 7.52.0)
-## size_download
+## `size_download`
The total amount of bytes that were downloaded. This is the size of the
body/data that was transferred, excluding headers.
-## size_header
+## `size_header`
The total amount of bytes of the downloaded headers.
-## size_request
+## `size_request`
The total amount of bytes that were sent in the HTTP request.
-## size_upload
+## `size_upload`
The total amount of bytes that were uploaded. This is the size of the
body/data that was transferred, excluding headers.
-## speed_download
+## `speed_download`
The average download speed that curl measured for the complete download. Bytes
per second.
-## speed_upload
+## `speed_upload`
The average upload speed that curl measured for the complete upload. Bytes per
second.
-## ssl_verify_result
+## `ssl_verify_result`
The result of the SSL peer certificate verification that was requested. 0
means the verification was successful. (Added in 7.19.0)
-## stderr
+## `stderr`
From this point on, the --write-out output is written to standard
error. (Added in 7.63.0)
-## stdout
+## `stdout`
From this point on, the --write-out output is written to standard output.
This is the default, but can be used to switch back after switching to stderr.
(Added in 7.63.0)
-## time_appconnect
+## `time_appconnect`
The time, in seconds, it took from the start until the SSL/SSH/etc
connect/handshake to the remote host was completed. (Added in 7.19.0)
-## time_connect
+## `time_connect`
The time, in seconds, it took from the start until the TCP connect to the
remote host (or proxy) was completed.
-## time_namelookup
+## `time_namelookup`
The time, in seconds, it took from the start until the name resolving was
completed.
-## time_pretransfer
+## `time_pretransfer`
The time, in seconds, it took from the start until the file transfer was just
about to begin. This includes all pre-transfer commands and negotiations that
are specific to the particular protocol(s) involved.
-## time_redirect
+## `time_redirect`
The time, in seconds, it took for all redirection steps including name lookup,
connect, pretransfer and transfer before the final transaction was
-started. time_redirect shows the complete execution time for multiple
+started. `time_redirect` shows the complete execution time for multiple
redirections. (Added in 7.12.3)
-## time_starttransfer
+## `time_starttransfer`
The time, in seconds, it took from the start until the first byte is received.
This includes time_pretransfer and also the time the server needed to calculate
the result.
-## time_total
+## `time_total`
The total time, in seconds, that the full operation lasted.
-## url
+## `url`
The URL that was fetched. (Added in 7.75.0)
-## url.scheme
+## `url.scheme`
The scheme part of the URL that was fetched. (Added in 8.1.0)
-## url.user
+## `url.user`
The user part of the URL that was fetched. (Added in 8.1.0)
-## url.password
+## `url.password`
The password part of the URL that was fetched. (Added in 8.1.0)
-## url.options
+## `url.options`
The options part of the URL that was fetched. (Added in 8.1.0)
-## url.host
+## `url.host`
The host part of the URL that was fetched. (Added in 8.1.0)
-## url.port
-The port number of the URL that was fetched. If no port number was specified,
-but the URL scheme is known, that scheme's default port number is
+## `url.port`
+The port number of the URL that was fetched. If no port number was specified
+and the URL scheme is known, that scheme's default port number is
shown. (Added in 8.1.0)
-## url.path
+## `url.path`
The path part of the URL that was fetched. (Added in 8.1.0)
-## url.query
+## `url.query`
The query part of the URL that was fetched. (Added in 8.1.0)
-## url.fragment
+## `url.fragment`
The fragment part of the URL that was fetched. (Added in 8.1.0)
-## url.zoneid
+## `url.zoneid`
The zone id part of the URL that was fetched. (Added in 8.1.0)
-## urle.scheme
+## `urle.scheme`
The scheme part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.user
+## `urle.user`
The user part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.password
+## `urle.password`
The password part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.options
+## `urle.options`
The options part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.host
+## `urle.host`
The host part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.port
+## `urle.port`
The port number of the effective (last) URL that was fetched. If no port
number was specified, but the URL scheme is known, that scheme's default port
number is shown. (Added in 8.1.0)
-## urle.path
+## `urle.path`
The path part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.query
+## `urle.query`
The query part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.fragment
+## `urle.fragment`
The fragment part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urle.zoneid
+## `urle.zoneid`
The zone id part of the effective (last) URL that was fetched. (Added in 8.1.0)
-## urlnum
+## `urlnum`
The URL index number of this transfer, 0-indexed. Unglobbed URLs share the
same index number as the origin globbed URL. (Added in 7.75.0)
-## url_effective
+## `url_effective`
The URL that was fetched last. This is most meaningful if you have told curl
to follow location: headers.
+---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: xattr
Help: Store metadata in extended file attributes
Category: misc
-Example: --xattr -o storage $URL
Added: 7.21.3
-See-also: remote-time write-out verbose
Multi: boolean
+See-also:
+ - remote-time
+ - write-out
+ - verbose
+Example:
+ - --xattr -o storage $URL
---
+
+# `--xattr`
+
When saving output to a file, this option tells curl to store certain file
metadata in extended file attributes. Currently, the URL is stored in the
-xdg.origin.url attribute and, for HTTP, the content type is stored in
-the mime_type attribute. If the file system does not support extended
+`xdg.origin.url` attribute and, for HTTP, the content type is stored in the
+`mime_type` attribute. If the file system does not support extended
attributes, a warning is issued.
# Search for these two sentinel lines in the manual output; if they are found,
# then chances are good the entire manual is there.
<postcheck>
-perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(curl\s*-\s*transfer\sa\s*URL)|(CONTRIBUTORS)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' %LOGDIR/stdout%TESTNUMBER
+perl -e 'open(IN,$ARGV[0]); my $lines=grep(/(curl\s*-\s*transfer\sa\s*URL)|(AUTHORS)/, <IN>); exit ($lines != 2); # Let this file pass an XML syntax check: </IN>' %LOGDIR/stdout%TESTNUMBER
</postcheck>
</client>
</name>
<command type="perl">
-%SRCDIR/../docs/cmdline-opts/gen.pl listhelp %SRCDIR/../docs/cmdline-opts/*.d
+%SRCDIR/../docs/cmdline-opts/gen.pl listhelp %SRCDIR/../docs/cmdline-opts/*.md
</command>
</client>
return;
}
open(my $fh, "<", "$f");
- my $l = 1;
+ my $l;
my $prevl;
my $ignore = 0;
+ my $metadata = 0;
while(<$fh>) {
my $line = $_;
chomp $line;
+ $l++;
+ if(($l == 1) && ($line =~ /^---/)) {
+ # first line is a meta-data divider, skip to the next one
+ $metadata = 1;
+ print STDERR "skip meta-data in $f\n";
+ next;
+ }
+ elsif($metadata) {
+ if($line !~ /^---/) {
+ next;
+ }
+ $metadata = 0;
+ next;
+ }
if($line =~ /^(\`\`\`|\~\~\~)/) {
# start or stop ignore-mode
$ignore ^= 1;
}
}
$prevl = $line;
- $l++;
}
close($fh);
}
my ($dir)=@_;
opendir(my $dh, $dir) || die "Can't opendir $dir: $!";
- my @opts = grep { /\.d$/ && -f "$dir/$_" } readdir($dh);
+ my @opts = grep { /[a-z0-9].*\.md$/ && -f "$dir/$_" } readdir($dh);
closedir $dh;
for(@opts) {
- $_ =~ s/\.d$//;
+ $_ =~ s/\.md$//;
$file{$_}=1;
}
return @opts;
sub versioncheck {
my ($f, $v)=@_;
- open(my $fh, "<", "$cmddir/$f.d");
+ open(my $fh, "<", "$cmddir/$f.md");
while(<$fh>) {
chomp;
if(/^Added: ([0-9.]+)/) {