curl <URL>

Transfer a URL

Arguments

NameDescription
URL

Options

NameDescription
-a, --appendAppend to target file when uploading
-E, --cert <certificate[:password]>Client certificate file and password
-K, --config <file>Read config from a file
-C, --continue-at <offset>Resumed transfer offset
-b, --cookie <data or filename>Send cookies from string/file
-c, --cookie-jar <filename>Write cookies to <filename> after operation
-d, --data <data>
  • Repeatable ♾
-q, --disableDisable .curlrc
-D, --dump-header <filename>Write the received headers to <filename>
-f, --failFail silently (no output at all) on HTTP errors
-F, --form <content>
  • Repeatable ♾
-P, --ftp-port <address>Use PORT instead of PASV
-G, --getPut the post data in the URL and use GET
-g, --globoffDisable URL sequences and ranges using {} and []
-I, --headShow document info only
-H, --header <header/file>Pass custom header(s) to server
-h, --helpThis help text
-0, --http1.0Use HTTP 1.0
-i, --includeInclude protocol response headers in the output
-k, --insecureAllow insecure server connections when using SSL
-4, --ipv4Resolve names to IPv4 addresses
-6, --ipv6Resolve names to IPv6 addresses
-j, --junk-session-cookiesIgnore session cookies read from file
-l, --list-onlyList only mode
-L, --locationFollow redirects
-M, --manualDisplay the full manual
-m, --max-time <seconds>Maximum time allowed for the transfer
-n, --netrcMust read .netrc for user name and password
-:, --nextMake next URL use its separate set of options
-N, --no-bufferDisable buffering of the output stream
-o, --output <file>Write to file instead of stdout
-#, --progress-barDisplay transfer progress as a bar
-x, --proxy[protocol://]host[:port] Use this proxy
-U, --proxy-user <user:password>Proxy user and password
-p, --proxytunnelOperate through an HTTP proxy tunnel (using CONNECT)
-Q, --quoteSend command(s) to server before transfer
-r, --range <range>Retrieve only the bytes within RANGE
-e, --referer <URL>Referrer URL
-J, --remote-header-nameUse the header-provided filename
-O, --remote-nameWrite output to a file named as the remote file
-R, --remote-timeSet the remote file's time on the local output
-X, --request <command>Specify request command to use
-S, --show-errorShow error even when -s is used
-s, --silentSilent mode
-Y, --speed-limit <speed>Stop transfers slower than this
-y, --speed-time <seconds>Trigger 'speed-limit' abort after this time
-2, --sslv2Use SSLv2
-3, --sslv3Use SSLv3
-t, --telnet-option <val>Set telnet option
-z, --time-cond <time>Transfer based on a time condition
-1, --tlsv1Use TLSv1.0 or greater
-T, --upload-file <file>Transfer local FILE to destination
-B, --use-asciiUse ASCII/text transfer
-u, --user <user:password>Server user and password
-A, --user-agent <name>Send User-Agent <name> to server
-v, --verboseMake the operation more talkative
-V, --versionShow version number and quit
-w, --write-out <format>Use output FORMAT after completion
--abstract-unix-socket <path>Connect via abstract Unix domain socket
--alt-svc <file>Name> Enable alt-svc with this cache file
--anyauthPick any authentication method
--basicUse HTTP Basic Authentication
--cacert <file>CA certificate to verify peer against
--capath <dir>CA directory to verify peer against
--cert-statusVerify the status of the server certificate
--cert-type <type>Certificate file type
--ciphers <list>Of ciphers> SSL ciphers to use
--compressedRequest compressed response
--compressed-sshEnable SSH compression
--connect-timeout <seconds>Maximum time allowed for connection
--connect-to <HOST1:PORT1:HOST2:PORT2>Connect to host
--create-dirsCreate necessary local directory hierarchy
--crlfConvert LF to CRLF in upload
--crlfile <file>Get a CRL list in PEM format from the given file
--data-ascii <data>HTTP POST ASCII data
--data-binary <data>HTTP POST binary data
--data-raw <data>HTTP POST data, '@' allowed
--data-urlencode <data>HTTP POST data url encoded
--delegation <LEVEL>GSS-API delegation permission
--digestUse HTTP Digest Authentication
--disable-eprtInhibit using EPRT or LPRT
--disable-epsvInhibit using EPSV
--disallow-username-in-urlDisallow username in url
--dns-interface <interface>Interface to use for DNS requests
--dns-ipv4-addr <address>IPv4 address to use for DNS requests
--dns-ipv6-addr <address>IPv6 address to use for DNS requests
--dns-servers <addresses>DNS server addrs to use
--doh-url <URL>Resolve host names over DOH
--egd-file <file>EGD socket path for random data
--engine <name>Crypto engine to use
--etag-compare <file>Make a conditional HTTP request for the ETag read from the given file
--etag-save <file>Save an HTTP ETag to the specified file
--expect100-timeout <seconds>How long to wait for 100-continue
--fail-earlyFail on first transfer error, do not continue
--fail-with-bodyOn HTTP errors, return an error and also output any HTML response
--false-startEnable TLS False Start
--form-string <string>Specify multipart MIME data
--ftp-account <data>Account data string
--ftp-alternative-to-user <command>String to replace USER [name]
--ftp-create-dirsCreate the remote dirs if not present
--ftp-method <method>Control CWD usage
--ftp-pasvUse PASV/EPSV instead of PORT
--ftp-pretSend PRET before PASV
--ftp-skip-pasv-ipSkip the IP address for PASV
--ftp-ssl-cccSend CCC after authenticating
--ftp-ssl-ccc-mode <mode>Set CCC mode
--ftp-ssl-controlRequire SSL/TLS for FTP login, clear for transfer
--happy-eyeballs-timeout-ms <milliseconds>How long to wait in milliseconds for IPv6 before trying IPv4
--haproxy-protocolSend HAProxy PROXY protocol v1 header
--hostpubmd5 <md5>Acceptable MD5 hash of the host public key
--http0.9Allow HTTP 0.9 responses
--http1.1Use HTTP 1.1
--http2Use HTTP 2
--http2-prior-knowledgeUse HTTP 2 without HTTP/1.1 Upgrade
--ignore-content-lengthIgnore the size of the remote resource
--interface <name>Use network INTERFACE (or address)
--keepalive-time <seconds>Interval time for keepalive probes
--key <key>Private key file name
--key-type <type>Private key file type
--krb <level>Enable Kerberos with security <level>
--libcurl <file>Dump libcurl equivalent code of this command line
--limit-rate <speed>Limit transfer speed to RATE
--local-port <num/range>Force use of RANGE for local port numbers
--location-trustedLike --location, and send auth to other hosts
--login-options <options>Server login options
--mail-auth <address>Originator address of the original email
--mail-from <address>Mail from this address
--mail-rcpt <address>Mail to this address
--max-filesize <bytes>Maximum file size to download
--max-redirs <num>Maximum number of redirects allowed
--metalinkProcess given URLs as metalink XML file
--negotiateUse HTTP Negotiate (SPNEGO) authentication
--netrc-file <filename>Specify FILE for netrc
--netrc-optionalUse either .netrc or URL
--no-alpnDisable the ALPN TLS extension
--no-keepaliveDisable TCP keepalive on the connection
--no-npnDisable the NPN TLS extension
--no-sessionidDisable SSL session-ID reusing
--noproxy <no-proxy-list>List of hosts which do not use proxy
--ntlmUse HTTP NTLM authentication
--ntlm-wbUse HTTP NTLM authentication with winbind
--oauth2-bearer <token>OAuth 2 Bearer Token
--pass <phrase>Pass phrase for the private key
--path-as-isDo not squash .. sequences in URL path
--pinnedpubkey <hashes>FILE/HASHES Public key to verify peer against
--post301Do not switch to GET after following a 301
--post302Do not switch to GET after following a 302
--post303Do not switch to GET after following a 303
--preproxy[protocol://]host[:port] Use this proxy first
--proto <protocols>Enable/disable PROTOCOLS
--proto-default <protocol>Use PROTOCOL for any URL missing a scheme
--proto-redir <protocols>Enable/disable PROTOCOLS on redirect
--proxy-anyauthPick any proxy authentication method
--proxy-basicUse Basic authentication on the proxy
--proxy-cacert <file>CA certificate to verify peer against for proxy
--proxy-capath <dir>CA directory to verify peer against for proxy
--proxy-cert <cert[:passwd]>Set client certificate for proxy
--proxy-cert-type <type>Client certificate type for HTTPS proxy
--proxy-ciphers <list>SSL ciphers to use for proxy
--proxy-crlfile <file>Set a CRL list for proxy
--proxy-digestUse Digest authentication on the proxy
--proxy-header <header/file>Pass custom header(s) to proxy
--proxy-insecureDo HTTPS proxy connections without verifying the proxy
--proxy-key <key>Private key for HTTPS proxy
--proxy-key-type <type>Private key file type for proxy
--proxy-negotiateUse HTTP Negotiate (SPNEGO) authentication on the proxy
--proxy-ntlmUse NTLM authentication on the proxy
--proxy-pass <phrase>Pass phrase for the private key for HTTPS proxy
--proxy-pinnedpubkey <hashes>FILE/HASHES public key to verify proxy with
--proxy-service-name <name>SPNEGO proxy service name
--proxy-ssl-allow-beastAllow security flaw for interop for HTTPS proxy
--proxy-tls13-ciphers <ciphersuite>List> TLS 1.3 proxy cipher suites
--proxy-tlsauthtype <type>TLS authentication type for HTTPS proxy
--proxy-tlspassword <string>TLS password for HTTPS proxy
--proxy-tlsuser <name>TLS username for HTTPS proxy
--proxy-tlsv1Use TLSv1 for HTTPS proxy
--proxy1.0 <host[:port]>Use HTTP/1.0 proxy on given port
--pubkey <key>SSH Public key file name
--random-file <file>File for reading random data from
--rawDo HTTP "raw"; no transfer decoding
--remote-name-allUse the remote file name for all URLs
--request-targetSpecify the target for this request
--resolve <host:port:address[,address]...>Resolve the host+port to this address
--retry <num>Retry request if transient problems occur
--retry-connrefusedRetry on connection refused (use with --retry)
--retry-delay <seconds>Wait time between retries
--retry-max-time <seconds>Retry only within this period
--sasl-irEnable initial response in SASL authentication
--service-name <name>SPNEGO service name
--socks4 <host[:port]>SOCKS4 proxy on given host + port
--socks4a <host[:port]>SOCKS4a proxy on given host + port
--socks5 <host[:port]>SOCKS5 proxy on given host + port
--socks5-basicEnable username/password auth for SOCKS5 proxies
--socks5-gssapiEnable GSS-API auth for SOCKS5 proxies
--socks5-gssapi-necCompatibility with NEC SOCKS5 server
--socks5-gssapi-service <name>SOCKS5 proxy service name for GSS-API
--socks5-hostname <host[:port]>SOCKS5 proxy, pass host name to proxy
--sslTry SSL/TLS
--ssl-auto-client-certObtain and use a client certificate automatically
--ssl-allow-beastAllow security flaw to improve interop
--ssl-no-revokeDisable cert revocation checks (Schannel)
--ssl-reqdRequire SSL/TLS
--stderrWhere to redirect stderr
--styled-outputEnable styled output for HTTP headers
--suppress-connect-headersSuppress proxy CONNECT response headers
--tcp-fastopenUse TCP Fast Open
--tcp-nodelayUse the TCP_NODELAY option
--tftp-blksize <value>Set TFTP BLKSIZE option
--tftp-no-optionsDo not send any TFTP options
--tls-max <VERSION>Set maximum allowed TLS version
--tls13-ciphers <list>Of TLS 1.3 ciphersuites> TLS 1.3 cipher suites to use
--tlsauthtype <type>TLS authentication type
--tlspasswordTLS password
--tlsuser <name>TLS user name
--tlsv1.0Use TLSv1.0 or greater
--tlsv1.1Use TLSv1.1 or greater
--tlsv1.2Use TLSv1.2 or greater
--tlsv1.3Use TLSv1.3 or greater
--tr-encodingRequest compressed transfer encoding
--trace <file>Write a debug trace to FILE
--trace-ascii <file>Like --trace, but without hex output
--trace-timeAdd time stamps to trace/verbose output
--unix-socket <path>Connect through this Unix domain socket
--url <url>URL to work with
--xattrStore metadata in extended file attributes