.\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) Daniel Stenberg, , 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 .\" * .\" ************************************************************************** .\" .TH curl_easy_setopt 3 "25 Jun 2014" "libcurl" "libcurl" .SH NAME curl_easy_setopt \- set options for a curl easy handle .SH SYNOPSIS .nf #include CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter); .fi .SH DESCRIPTION \fIcurl_easy_setopt(3)\fP is used to tell libcurl how to behave. By setting the appropriate options, the application can change libcurl's behavior. All options are set with an \fIoption\fP followed by a \fIparameter\fP. That parameter can be a \fBlong\fP, a \fBfunction pointer\fP, an \fBobject pointer\fP or a \fBcurl_off_t\fP, depending on what the specific option expects. Read this manual carefully as bad input values may cause libcurl to behave badly! You can only set one option in each function call. A typical application uses many \fIcurl_easy_setopt(3)\fP calls in the setup phase. Options set with this function call are valid for all forthcoming transfers performed using this \fIhandle\fP. The options are not in any way reset between transfers, so if you want subsequent transfers with different options, you must change them between the transfers. You can optionally reset all options back to internal default with \fIcurl_easy_reset(3)\fP. Strings passed to libcurl as 'char *' arguments, are copied by the library; the string storage associated to the pointer argument may be discarded or reused after \fIcurl_easy_setopt(3)\fP returns. The only exception to this rule is really \fICURLOPT_POSTFIELDS(3)\fP, but the alternative that copies the string \fICURLOPT_COPYPOSTFIELDS(3)\fP has some usage characteristics you need to read up on. This function does not accept input strings longer than \fBCURL_MAX_INPUT_LENGTH\fP (8 MB). The order in which the options are set does not matter. Before version 7.17.0, strings were not copied. Instead the user was forced keep them available until libcurl no longer needed them. The \fIhandle\fP is the return code from a \fIcurl_easy_init(3)\fP or \fIcurl_easy_duphandle(3)\fP call. .SH BEHAVIOR OPTIONS .IP CURLOPT_VERBOSE Display verbose information. See \fICURLOPT_VERBOSE(3)\fP .IP CURLOPT_HEADER Include the header in the body output. See \fICURLOPT_HEADER(3)\fP .IP CURLOPT_NOPROGRESS Shut off the progress meter. See \fICURLOPT_NOPROGRESS(3)\fP .IP CURLOPT_NOSIGNAL Do not install signal handlers. See \fICURLOPT_NOSIGNAL(3)\fP .IP CURLOPT_WILDCARDMATCH Transfer multiple files according to a file name pattern. See \fICURLOPT_WILDCARDMATCH(3)\fP .SH CALLBACK OPTIONS .IP CURLOPT_WRITEFUNCTION Callback for writing data. See \fICURLOPT_WRITEFUNCTION(3)\fP .IP CURLOPT_WRITEDATA Data pointer to pass to the write callback. See \fICURLOPT_WRITEDATA(3)\fP .IP CURLOPT_READFUNCTION Callback for reading data. See \fICURLOPT_READFUNCTION(3)\fP .IP CURLOPT_READDATA Data pointer to pass to the read callback. See \fICURLOPT_READDATA(3)\fP .IP CURLOPT_IOCTLFUNCTION \fBDeprecated option\fP Callback for I/O operations. See \fICURLOPT_IOCTLFUNCTION(3)\fP .IP CURLOPT_IOCTLDATA \fBDeprecated option\fP Data pointer to pass to the I/O callback. See \fICURLOPT_IOCTLDATA(3)\fP .IP CURLOPT_SEEKFUNCTION Callback for seek operations. See \fICURLOPT_SEEKFUNCTION(3)\fP .IP CURLOPT_SEEKDATA Data pointer to pass to the seek callback. See \fICURLOPT_SEEKDATA(3)\fP .IP CURLOPT_SOCKOPTFUNCTION Callback for sockopt operations. See \fICURLOPT_SOCKOPTFUNCTION(3)\fP .IP CURLOPT_SOCKOPTDATA Data pointer to pass to the sockopt callback. See \fICURLOPT_SOCKOPTDATA(3)\fP .IP CURLOPT_OPENSOCKETFUNCTION Callback for socket creation. See \fICURLOPT_OPENSOCKETFUNCTION(3)\fP .IP CURLOPT_OPENSOCKETDATA Data pointer to pass to the open socket callback. See \fICURLOPT_OPENSOCKETDATA(3)\fP .IP CURLOPT_CLOSESOCKETFUNCTION Callback for closing socket. See \fICURLOPT_CLOSESOCKETFUNCTION(3)\fP .IP CURLOPT_CLOSESOCKETDATA Data pointer to pass to the close socket callback. See \fICURLOPT_CLOSESOCKETDATA(3)\fP .IP CURLOPT_PROGRESSFUNCTION \fBOBSOLETE\fP callback for progress meter. See \fICURLOPT_PROGRESSFUNCTION(3)\fP .IP CURLOPT_PROGRESSDATA Data pointer to pass to the progress meter callback. See \fICURLOPT_PROGRESSDATA(3)\fP .IP CURLOPT_XFERINFOFUNCTION Callback for progress meter. See \fICURLOPT_XFERINFOFUNCTION(3)\fP .IP CURLOPT_XFERINFODATA Data pointer to pass to the progress meter callback. See \fICURLOPT_XFERINFODATA(3)\fP .IP CURLOPT_HEADERFUNCTION Callback for writing received headers. See \fICURLOPT_HEADERFUNCTION(3)\fP .IP CURLOPT_HEADERDATA Data pointer to pass to the header callback. See \fICURLOPT_HEADERDATA(3)\fP .IP CURLOPT_DEBUGFUNCTION Callback for debug information. See \fICURLOPT_DEBUGFUNCTION(3)\fP .IP CURLOPT_DEBUGDATA Data pointer to pass to the debug callback. See \fICURLOPT_DEBUGDATA(3)\fP .IP CURLOPT_SSL_CTX_FUNCTION Callback for SSL context logic. See \fICURLOPT_SSL_CTX_FUNCTION(3)\fP .IP CURLOPT_SSL_CTX_DATA Data pointer to pass to the SSL context callback. See \fICURLOPT_SSL_CTX_DATA(3)\fP .IP CURLOPT_CONV_TO_NETWORK_FUNCTION \fBOBSOLETE\fP Callback for code base conversion. See \fICURLOPT_CONV_TO_NETWORK_FUNCTION(3)\fP .IP CURLOPT_CONV_FROM_NETWORK_FUNCTION \fBOBSOLETE\fP Callback for code base conversion. See \fICURLOPT_CONV_FROM_NETWORK_FUNCTION(3)\fP .IP CURLOPT_CONV_FROM_UTF8_FUNCTION \fBOBSOLETE\fP Callback for code base conversion. See \fICURLOPT_CONV_FROM_UTF8_FUNCTION(3)\fP .IP CURLOPT_INTERLEAVEFUNCTION Callback for RTSP interleaved data. See \fICURLOPT_INTERLEAVEFUNCTION(3)\fP .IP CURLOPT_INTERLEAVEDATA Data pointer to pass to the RTSP interleave callback. See \fICURLOPT_INTERLEAVEDATA(3)\fP .IP CURLOPT_CHUNK_BGN_FUNCTION Callback for wildcard download start of chunk. See \fICURLOPT_CHUNK_BGN_FUNCTION(3)\fP .IP CURLOPT_CHUNK_END_FUNCTION Callback for wildcard download end of chunk. See \fICURLOPT_CHUNK_END_FUNCTION(3)\fP .IP CURLOPT_CHUNK_DATA Data pointer to pass to the chunk callbacks. See \fICURLOPT_CHUNK_DATA(3)\fP .IP CURLOPT_FNMATCH_FUNCTION Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP .IP CURLOPT_FNMATCH_DATA Data pointer to pass to the wildcard matching callback. See \fICURLOPT_FNMATCH_DATA(3)\fP .IP CURLOPT_SUPPRESS_CONNECT_HEADERS Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP .IP CURLOPT_RESOLVER_START_FUNCTION Callback to be called before a new resolve request is started. See \fICURLOPT_RESOLVER_START_FUNCTION(3)\fP .IP CURLOPT_RESOLVER_START_DATA Data pointer to pass to resolver start callback. See \fICURLOPT_RESOLVER_START_DATA(3)\fP .IP CURLOPT_PREREQFUNCTION Callback to be called after a connection is established but before a request is made on that connection. See \fICURLOPT_PREREQFUNCTION(3)\fP .IP CURLOPT_PREREQDATA Data pointer to pass to the CURLOPT_PREREQFUNCTION callback. See \fICURLOPT_PREREQDATA(3)\fP .SH ERROR OPTIONS .IP CURLOPT_ERRORBUFFER Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP .IP CURLOPT_STDERR stderr replacement stream. See \fICURLOPT_STDERR(3)\fP .IP CURLOPT_FAILONERROR Fail on HTTP 4xx errors. \fICURLOPT_FAILONERROR(3)\fP .IP CURLOPT_KEEP_SENDING_ON_ERROR Keep sending on HTTP >= 300 errors. \fICURLOPT_KEEP_SENDING_ON_ERROR(3)\fP .SH NETWORK OPTIONS .IP CURLOPT_URL URL to work on. See \fICURLOPT_URL(3)\fP .IP CURLOPT_PATH_AS_IS Disable squashing /../ and /./ sequences in the path. See \fICURLOPT_PATH_AS_IS(3)\fP .IP CURLOPT_PROTOCOLS \fBDeprecated option\fP Allowed protocols. See \fICURLOPT_PROTOCOLS(3)\fP .IP CURLOPT_PROTOCOLS_STR Allowed protocols. See \fICURLOPT_PROTOCOLS_STR(3)\fP .IP CURLOPT_REDIR_PROTOCOLS \fBDeprecated option\fP Protocols to allow redirects to. See \fICURLOPT_REDIR_PROTOCOLS(3)\fP .IP CURLOPT_REDIR_PROTOCOLS_STR Protocols to allow redirects to. See \fICURLOPT_REDIR_PROTOCOLS_STR(3)\fP .IP CURLOPT_DEFAULT_PROTOCOL Default protocol. See \fICURLOPT_DEFAULT_PROTOCOL(3)\fP .IP CURLOPT_PROXY Proxy to use. See \fICURLOPT_PROXY(3)\fP .IP CURLOPT_PRE_PROXY Socks proxy to use. See \fICURLOPT_PRE_PROXY(3)\fP .IP CURLOPT_PROXYPORT Proxy port to use. See \fICURLOPT_PROXYPORT(3)\fP .IP CURLOPT_PROXYTYPE Proxy type. See \fICURLOPT_PROXYTYPE(3)\fP .IP CURLOPT_NOPROXY Filter out hosts from proxy use. \fICURLOPT_NOPROXY(3)\fP .IP CURLOPT_HTTPPROXYTUNNEL Tunnel through the HTTP proxy. \fICURLOPT_HTTPPROXYTUNNEL(3)\fP .IP CURLOPT_CONNECT_TO Connect to a specific host and port. See \fICURLOPT_CONNECT_TO(3)\fP .IP CURLOPT_SOCKS5_AUTH Socks5 authentication methods. See \fICURLOPT_SOCKS5_AUTH(3)\fP .IP CURLOPT_SOCKS5_GSSAPI_SERVICE \fBDeprecated option\fP Socks5 GSSAPI service name. See \fICURLOPT_SOCKS5_GSSAPI_SERVICE(3)\fP .IP CURLOPT_SOCKS5_GSSAPI_NEC Socks5 GSSAPI NEC mode. See \fICURLOPT_SOCKS5_GSSAPI_NEC(3)\fP .IP CURLOPT_PROXY_SERVICE_NAME Proxy authentication service name. \fICURLOPT_PROXY_SERVICE_NAME(3)\fP .IP CURLOPT_HAPROXYPROTOCOL Send an HAProxy PROXY protocol v1 header. See \fICURLOPT_HAPROXYPROTOCOL(3)\fP .IP CURLOPT_HAPROXY_CLIENT_IP Spoof the client IP in an HAProxy PROXY protocol v1 header. See \fICURLOPT_HAPROXY_CLIENT_IP(3)\fP .IP CURLOPT_SERVICE_NAME Authentication service name. \fICURLOPT_SERVICE_NAME(3)\fP .IP CURLOPT_INTERFACE Bind connection locally to this. See \fICURLOPT_INTERFACE(3)\fP .IP CURLOPT_LOCALPORT Bind connection locally to this port. See \fICURLOPT_LOCALPORT(3)\fP .IP CURLOPT_LOCALPORTRANGE Bind connection locally to port range. See \fICURLOPT_LOCALPORTRANGE(3)\fP .IP CURLOPT_DNS_CACHE_TIMEOUT Timeout for DNS cache. See \fICURLOPT_DNS_CACHE_TIMEOUT(3)\fP .IP CURLOPT_DNS_USE_GLOBAL_CACHE \fBOBSOLETE\fP Enable global DNS cache. See \fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP .IP CURLOPT_DOH_URL Use this DoH server for name resolves. See \fICURLOPT_DOH_URL(3)\fP .IP CURLOPT_BUFFERSIZE Ask for alternate buffer size. See \fICURLOPT_BUFFERSIZE(3)\fP .IP CURLOPT_PORT Port number to connect to. See \fICURLOPT_PORT(3)\fP .IP CURLOPT_TCP_FASTOPEN Enable TCP Fast Open. See \fICURLOPT_TCP_FASTOPEN(3)\fP .IP CURLOPT_TCP_NODELAY Disable the Nagle algorithm. See \fICURLOPT_TCP_NODELAY(3)\fP .IP CURLOPT_ADDRESS_SCOPE IPv6 scope for local addresses. See \fICURLOPT_ADDRESS_SCOPE(3)\fP .IP CURLOPT_TCP_KEEPALIVE Enable TCP keep-alive. See \fICURLOPT_TCP_KEEPALIVE(3)\fP .IP CURLOPT_TCP_KEEPIDLE Idle time before sending keep-alive. See \fICURLOPT_TCP_KEEPIDLE(3)\fP .IP CURLOPT_TCP_KEEPINTVL Interval between keep-alive probes. See \fICURLOPT_TCP_KEEPINTVL(3)\fP .IP CURLOPT_UNIX_SOCKET_PATH Path to a Unix domain socket. See \fICURLOPT_UNIX_SOCKET_PATH(3)\fP .IP CURLOPT_ABSTRACT_UNIX_SOCKET Path to an abstract Unix domain socket. See \fICURLOPT_ABSTRACT_UNIX_SOCKET(3)\fP .SH NAMES and PASSWORDS OPTIONS (Authentication) .IP CURLOPT_NETRC Enable .netrc parsing. See \fICURLOPT_NETRC(3)\fP .IP CURLOPT_NETRC_FILE \&.netrc file name. See \fICURLOPT_NETRC_FILE(3)\fP .IP CURLOPT_USERPWD User name and password. See \fICURLOPT_USERPWD(3)\fP .IP CURLOPT_PROXYUSERPWD Proxy user name and password. See \fICURLOPT_PROXYUSERPWD(3)\fP .IP CURLOPT_USERNAME User name. See \fICURLOPT_USERNAME(3)\fP .IP CURLOPT_PASSWORD Password. See \fICURLOPT_PASSWORD(3)\fP .IP CURLOPT_LOGIN_OPTIONS Login options. See \fICURLOPT_LOGIN_OPTIONS(3)\fP .IP CURLOPT_PROXYUSERNAME Proxy user name. See \fICURLOPT_PROXYUSERNAME(3)\fP .IP CURLOPT_PROXYPASSWORD Proxy password. See \fICURLOPT_PROXYPASSWORD(3)\fP .IP CURLOPT_HTTPAUTH HTTP server authentication methods. See \fICURLOPT_HTTPAUTH(3)\fP .IP CURLOPT_TLSAUTH_USERNAME TLS authentication user name. See \fICURLOPT_TLSAUTH_USERNAME(3)\fP .IP CURLOPT_PROXY_TLSAUTH_USERNAME Proxy TLS authentication user name. See \fICURLOPT_PROXY_TLSAUTH_USERNAME(3)\fP .IP CURLOPT_TLSAUTH_PASSWORD TLS authentication password. See \fICURLOPT_TLSAUTH_PASSWORD(3)\fP .IP CURLOPT_PROXY_TLSAUTH_PASSWORD Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP .IP CURLOPT_TLSAUTH_TYPE TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP .IP CURLOPT_PROXY_TLSAUTH_TYPE Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP .IP CURLOPT_PROXYAUTH HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP .IP CURLOPT_SASL_AUTHZID SASL authorization identity (identity to act as). See \fICURLOPT_SASL_AUTHZID(3)\fP .IP CURLOPT_SASL_IR Enable SASL initial response. See \fICURLOPT_SASL_IR(3)\fP .IP CURLOPT_XOAUTH2_BEARER OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP .IP CURLOPT_DISALLOW_USERNAME_IN_URL Do not allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP .SH HTTP OPTIONS .IP CURLOPT_AUTOREFERER Automatically set Referer: header. See \fICURLOPT_AUTOREFERER(3)\fP .IP CURLOPT_ACCEPT_ENCODING Accept-Encoding and automatic decompressing data. See \fICURLOPT_ACCEPT_ENCODING(3)\fP .IP CURLOPT_TRANSFER_ENCODING Request Transfer-Encoding. See \fICURLOPT_TRANSFER_ENCODING(3)\fP .IP CURLOPT_FOLLOWLOCATION Follow HTTP redirects. See \fICURLOPT_FOLLOWLOCATION(3)\fP .IP CURLOPT_UNRESTRICTED_AUTH Do not restrict authentication to original host. \fICURLOPT_UNRESTRICTED_AUTH(3)\fP .IP CURLOPT_MAXREDIRS Maximum number of redirects to follow. See \fICURLOPT_MAXREDIRS(3)\fP .IP CURLOPT_POSTREDIR How to act on redirects after POST. See \fICURLOPT_POSTREDIR(3)\fP .IP CURLOPT_PUT \fBDeprecated option\fP Issue an HTTP PUT request. See \fICURLOPT_PUT(3)\fP .IP CURLOPT_POST Issue an HTTP POST request. See \fICURLOPT_POST(3)\fP .IP CURLOPT_POSTFIELDS Send a POST with this data. See \fICURLOPT_POSTFIELDS(3)\fP .IP CURLOPT_POSTFIELDSIZE The POST data is this big. See \fICURLOPT_POSTFIELDSIZE(3)\fP .IP CURLOPT_POSTFIELDSIZE_LARGE The POST data is this big. See \fICURLOPT_POSTFIELDSIZE_LARGE(3)\fP .IP CURLOPT_COPYPOSTFIELDS Send a POST with this data - and copy it. See \fICURLOPT_COPYPOSTFIELDS(3)\fP .IP CURLOPT_HTTPPOST \fBDeprecated option\fP Multipart formpost HTTP POST. See \fICURLOPT_HTTPPOST(3)\fP .IP CURLOPT_REFERER Referer: header. See \fICURLOPT_REFERER(3)\fP .IP CURLOPT_USERAGENT User-Agent: header. See \fICURLOPT_USERAGENT(3)\fP .IP CURLOPT_HTTPHEADER Custom HTTP headers. See \fICURLOPT_HTTPHEADER(3)\fP .IP CURLOPT_HEADEROPT Control custom headers. See \fICURLOPT_HEADEROPT(3)\fP .IP CURLOPT_PROXYHEADER Custom HTTP headers sent to proxy. See \fICURLOPT_PROXYHEADER(3)\fP .IP CURLOPT_HTTP200ALIASES Alternative versions of 200 OK. See \fICURLOPT_HTTP200ALIASES(3)\fP .IP CURLOPT_COOKIE Cookie(s) to send. See \fICURLOPT_COOKIE(3)\fP .IP CURLOPT_COOKIEFILE File to read cookies from. See \fICURLOPT_COOKIEFILE(3)\fP .IP CURLOPT_COOKIEJAR File to write cookies to. See \fICURLOPT_COOKIEJAR(3)\fP .IP CURLOPT_COOKIESESSION Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP .IP CURLOPT_COOKIELIST Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP .IP CURLOPT_ALTSVC Specify the Alt-Svc: cache file name. See \fICURLOPT_ALTSVC(3)\fP .IP CURLOPT_ALTSVC_CTRL Enable and configure Alt-Svc: treatment. See \fICURLOPT_ALTSVC_CTRL(3)\fP .IP CURLOPT_HSTS Set HSTS cache file. See \fICURLOPT_HSTS(3)\fP .IP CURLOPT_HSTS_CTRL Enable HSTS. See \fICURLOPT_HSTS_CTRL(3)\fP .IP CURLOPT_HSTSREADFUNCTION Set HSTS read callback. See \fICURLOPT_HSTSREADFUNCTION(3)\fP .IP CURLOPT_HSTSREADDATA Pass pointer to the HSTS read callback. See \fICURLOPT_HSTSREADDATA(3)\fP .IP CURLOPT_HSTSWRITEFUNCTION Set HSTS write callback. See \fICURLOPT_HSTSWRITEFUNCTION(3)\fP .IP CURLOPT_HSTSWRITEDATA Pass pointer to the HSTS write callback. See \fICURLOPT_HSTSWRITEDATA(3)\fP .IP CURLOPT_HTTPGET Do an HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP .IP CURLOPT_REQUEST_TARGET Set the request target. \fICURLOPT_REQUEST_TARGET(3)\fP .IP CURLOPT_HTTP_VERSION HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP .IP CURLOPT_HTTP09_ALLOWED Allow HTTP/0.9 responses. \fICURLOPT_HTTP09_ALLOWED(3)\fP .IP CURLOPT_IGNORE_CONTENT_LENGTH Ignore Content-Length. See \fICURLOPT_IGNORE_CONTENT_LENGTH(3)\fP .IP CURLOPT_HTTP_CONTENT_DECODING Disable Content decoding. See \fICURLOPT_HTTP_CONTENT_DECODING(3)\fP .IP CURLOPT_HTTP_TRANSFER_DECODING Disable Transfer decoding. See \fICURLOPT_HTTP_TRANSFER_DECODING(3)\fP .IP CURLOPT_EXPECT_100_TIMEOUT_MS 100-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP .IP CURLOPT_TRAILERFUNCTION Set callback for sending trailing headers. See \fICURLOPT_TRAILERFUNCTION(3)\fP .IP CURLOPT_TRAILERDATA Custom pointer passed to the trailing headers callback. See \fICURLOPT_TRAILERDATA(3)\fP .IP CURLOPT_PIPEWAIT Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP .IP CURLOPT_STREAM_DEPENDS This HTTP/2 stream depends on another. See \fICURLOPT_STREAM_DEPENDS(3)\fP .IP CURLOPT_STREAM_DEPENDS_E This HTTP/2 stream depends on another exclusively. See \fICURLOPT_STREAM_DEPENDS_E(3)\fP .IP CURLOPT_STREAM_WEIGHT Set this HTTP/2 stream's weight. See \fICURLOPT_STREAM_WEIGHT(3)\fP .SH SMTP OPTIONS .IP CURLOPT_MAIL_FROM Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP .IP CURLOPT_MAIL_RCPT Address of the recipients. See \fICURLOPT_MAIL_RCPT(3)\fP .IP CURLOPT_MAIL_AUTH Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP .IP CURLOPT_MAIL_RCPT_ALLOWFAILS Allow RCPT TO command to fail for some recipients. See \fICURLOPT_MAIL_RCPT_ALLOWFAILS(3)\fP .SH TFTP OPTIONS .IP CURLOPT_TFTP_BLKSIZE TFTP block size. See \fICURLOPT_TFTP_BLKSIZE(3)\fP .IP CURLOPT_TFTP_NO_OPTIONS Do not send TFTP options requests. See \fICURLOPT_TFTP_NO_OPTIONS(3)\fP .SH FTP OPTIONS .IP CURLOPT_FTPPORT Use active FTP. See \fICURLOPT_FTPPORT(3)\fP .IP CURLOPT_QUOTE Commands to run before transfer. See \fICURLOPT_QUOTE(3)\fP .IP CURLOPT_POSTQUOTE Commands to run after transfer. See \fICURLOPT_POSTQUOTE(3)\fP .IP CURLOPT_PREQUOTE Commands to run just before transfer. See \fICURLOPT_PREQUOTE(3)\fP .IP CURLOPT_APPEND Append to remote file. See \fICURLOPT_APPEND(3)\fP .IP CURLOPT_FTP_USE_EPRT Use EPRT. See \fICURLOPT_FTP_USE_EPRT(3)\fP .IP CURLOPT_FTP_USE_EPSV Use EPSV. See \fICURLOPT_FTP_USE_EPSV(3)\fP .IP CURLOPT_FTP_USE_PRET Use PRET. See \fICURLOPT_FTP_USE_PRET(3)\fP .IP CURLOPT_FTP_CREATE_MISSING_DIRS Create missing directories on the remote server. See \fICURLOPT_FTP_CREATE_MISSING_DIRS(3)\fP .IP CURLOPT_SERVER_RESPONSE_TIMEOUT Timeout for server responses. See \fICURLOPT_SERVER_RESPONSE_TIMEOUT(3)\fP .IP CURLOPT_FTP_ALTERNATIVE_TO_USER Alternative to USER. See \fICURLOPT_FTP_ALTERNATIVE_TO_USER(3)\fP .IP CURLOPT_FTP_SKIP_PASV_IP Ignore the IP address in the PASV response. See \fICURLOPT_FTP_SKIP_PASV_IP(3)\fP .IP CURLOPT_FTPSSLAUTH Control how to do TLS. See \fICURLOPT_FTPSSLAUTH(3)\fP .IP CURLOPT_FTP_SSL_CCC Back to non-TLS again after authentication. See \fICURLOPT_FTP_SSL_CCC(3)\fP .IP CURLOPT_FTP_ACCOUNT Send ACCT command. See \fICURLOPT_FTP_ACCOUNT(3)\fP .IP CURLOPT_FTP_FILEMETHOD Specify how to reach files. See \fICURLOPT_FTP_FILEMETHOD(3)\fP .SH RTSP OPTIONS .IP CURLOPT_RTSP_REQUEST RTSP request. See \fICURLOPT_RTSP_REQUEST(3)\fP .IP CURLOPT_RTSP_SESSION_ID RTSP session-id. See \fICURLOPT_RTSP_SESSION_ID(3)\fP .IP CURLOPT_RTSP_STREAM_URI RTSP stream URI. See \fICURLOPT_RTSP_STREAM_URI(3)\fP .IP CURLOPT_RTSP_TRANSPORT RTSP Transport: header. See \fICURLOPT_RTSP_TRANSPORT(3)\fP .IP CURLOPT_RTSP_CLIENT_CSEQ Client CSEQ number. See \fICURLOPT_RTSP_CLIENT_CSEQ(3)\fP .IP CURLOPT_RTSP_SERVER_CSEQ CSEQ number for RTSP Server->Client request. See \fICURLOPT_RTSP_SERVER_CSEQ(3)\fP .IP CURLOPT_AWS_SIGV4 AWS HTTP V4 Signature. See \fICURLOPT_AWS_SIGV4(3)\fP .SH PROTOCOL OPTIONS .IP CURLOPT_TRANSFERTEXT Use text transfer. See \fICURLOPT_TRANSFERTEXT(3)\fP .IP CURLOPT_PROXY_TRANSFER_MODE Add transfer mode to URL over proxy. See \fICURLOPT_PROXY_TRANSFER_MODE(3)\fP .IP CURLOPT_CRLF Convert newlines. See \fICURLOPT_CRLF(3)\fP .IP CURLOPT_RANGE Range requests. See \fICURLOPT_RANGE(3)\fP .IP CURLOPT_RESUME_FROM Resume a transfer. See \fICURLOPT_RESUME_FROM(3)\fP .IP CURLOPT_RESUME_FROM_LARGE Resume a transfer. See \fICURLOPT_RESUME_FROM_LARGE(3)\fP .IP CURLOPT_CURLU Set URL to work on with a URL handle. See \fICURLOPT_CURLU(3)\fP .IP CURLOPT_CUSTOMREQUEST Custom request/method. See \fICURLOPT_CUSTOMREQUEST(3)\fP .IP CURLOPT_FILETIME Request file modification date and time. See \fICURLOPT_FILETIME(3)\fP .IP CURLOPT_DIRLISTONLY List only. See \fICURLOPT_DIRLISTONLY(3)\fP .IP CURLOPT_NOBODY Do not get the body contents. See \fICURLOPT_NOBODY(3)\fP .IP CURLOPT_INFILESIZE Size of file to send. \fICURLOPT_INFILESIZE(3)\fP .IP CURLOPT_INFILESIZE_LARGE Size of file to send. \fICURLOPT_INFILESIZE_LARGE(3)\fP .IP CURLOPT_UPLOAD Upload data. See \fICURLOPT_UPLOAD(3)\fP .IP CURLOPT_UPLOAD_BUFFERSIZE Set upload buffer size. See \fICURLOPT_UPLOAD_BUFFERSIZE(3)\fP .IP CURLOPT_MIMEPOST Post/send MIME data. See \fICURLOPT_MIMEPOST(3)\fP .IP CURLOPT_MIME_OPTIONS Set MIME option flags. See \fICURLOPT_MIME_OPTIONS(3)\fP .IP CURLOPT_MAXFILESIZE Maximum file size to get. See \fICURLOPT_MAXFILESIZE(3)\fP .IP CURLOPT_MAXFILESIZE_LARGE Maximum file size to get. See \fICURLOPT_MAXFILESIZE_LARGE(3)\fP .IP CURLOPT_TIMECONDITION Make a time conditional request. See \fICURLOPT_TIMECONDITION(3)\fP .IP CURLOPT_TIMEVALUE Time value for the time conditional request. See \fICURLOPT_TIMEVALUE(3)\fP .IP CURLOPT_TIMEVALUE_LARGE Time value for the time conditional request. See \fICURLOPT_TIMEVALUE_LARGE(3)\fP .SH CONNECTION OPTIONS .IP CURLOPT_TIMEOUT Timeout for the entire request. See \fICURLOPT_TIMEOUT(3)\fP .IP CURLOPT_TIMEOUT_MS Millisecond timeout for the entire request. See \fICURLOPT_TIMEOUT_MS(3)\fP .IP CURLOPT_LOW_SPEED_LIMIT Low speed limit to abort transfer. See \fICURLOPT_LOW_SPEED_LIMIT(3)\fP .IP CURLOPT_LOW_SPEED_TIME Time to be below the speed to trigger low speed abort. See \fICURLOPT_LOW_SPEED_TIME(3)\fP .IP CURLOPT_MAX_SEND_SPEED_LARGE Cap the upload speed to this. See \fICURLOPT_MAX_SEND_SPEED_LARGE(3)\fP .IP CURLOPT_MAX_RECV_SPEED_LARGE Cap the download speed to this. See \fICURLOPT_MAX_RECV_SPEED_LARGE(3)\fP .IP CURLOPT_MAXCONNECTS Maximum number of connections in the connection pool. See \fICURLOPT_MAXCONNECTS(3)\fP .IP CURLOPT_FRESH_CONNECT Use a new connection. \fICURLOPT_FRESH_CONNECT(3)\fP .IP CURLOPT_FORBID_REUSE Prevent subsequent connections from re-using this. See \fICURLOPT_FORBID_REUSE(3)\fP .IP CURLOPT_MAXAGE_CONN Limit the age (idle time) of connections for reuse. See \fICURLOPT_MAXAGE_CONN(3)\fP .IP CURLOPT_MAXLIFETIME_CONN Limit the age (since creation) of connections for reuse. See \fICURLOPT_MAXLIFETIME_CONN(3)\fP .IP CURLOPT_CONNECTTIMEOUT Timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT(3)\fP .IP CURLOPT_CONNECTTIMEOUT_MS Millisecond timeout for the connection phase. See \fICURLOPT_CONNECTTIMEOUT_MS(3)\fP .IP CURLOPT_IPRESOLVE IP version to use. See \fICURLOPT_IPRESOLVE(3)\fP .IP CURLOPT_CONNECT_ONLY Only connect, nothing else. See \fICURLOPT_CONNECT_ONLY(3)\fP .IP CURLOPT_USE_SSL Use TLS/SSL. See \fICURLOPT_USE_SSL(3)\fP .IP CURLOPT_RESOLVE Provide fixed/fake name resolves. See \fICURLOPT_RESOLVE(3)\fP .IP CURLOPT_DNS_INTERFACE Bind name resolves to this interface. See \fICURLOPT_DNS_INTERFACE(3)\fP .IP CURLOPT_DNS_LOCAL_IP4 Bind name resolves to this IP4 address. See \fICURLOPT_DNS_LOCAL_IP4(3)\fP .IP CURLOPT_DNS_LOCAL_IP6 Bind name resolves to this IP6 address. See \fICURLOPT_DNS_LOCAL_IP6(3)\fP .IP CURLOPT_DNS_SERVERS Preferred DNS servers. See \fICURLOPT_DNS_SERVERS(3)\fP .IP CURLOPT_DNS_SHUFFLE_ADDRESSES Shuffle addresses before use. See \fICURLOPT_DNS_SHUFFLE_ADDRESSES(3)\fP .IP CURLOPT_ACCEPTTIMEOUT_MS Timeout for waiting for the server's connect back to be accepted. See \fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP .IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(3)\fP .IP CURLOPT_UPKEEP_INTERVAL_MS Sets the interval at which connection upkeep are performed. See \fICURLOPT_UPKEEP_INTERVAL_MS(3)\fP .SH SSL and SECURITY OPTIONS .IP CURLOPT_SSLCERT Client cert. See \fICURLOPT_SSLCERT(3)\fP .IP CURLOPT_SSLCERT_BLOB Client cert memory buffer. See \fICURLOPT_SSLCERT_BLOB(3)\fP .IP CURLOPT_PROXY_SSLCERT Proxy client cert. See \fICURLOPT_PROXY_SSLCERT(3)\fP .IP CURLOPT_PROXY_SSLCERT_BLOB Proxy client cert memory buffer. See \fICURLOPT_PROXY_SSLCERT_BLOB(3)\fP .IP CURLOPT_SSLCERTTYPE Client cert type. See \fICURLOPT_SSLCERTTYPE(3)\fP .IP CURLOPT_PROXY_SSLCERTTYPE Proxy client cert type. See \fICURLOPT_PROXY_SSLCERTTYPE(3)\fP .IP CURLOPT_SSLKEY Client key. See \fICURLOPT_SSLKEY(3)\fP .IP CURLOPT_SSLKEY_BLOB Client key memory buffer. See \fICURLOPT_SSLKEY_BLOB(3)\fP .IP CURLOPT_PROXY_SSLKEY Proxy client key. See \fICURLOPT_PROXY_SSLKEY(3)\fP .IP CURLOPT_PROXY_SSLKEY_BLOB Proxy client key. See \fICURLOPT_PROXY_SSLKEY_BLOB(3)\fP .IP CURLOPT_SSLKEYTYPE Client key type. See \fICURLOPT_SSLKEYTYPE(3)\fP .IP CURLOPT_PROXY_SSLKEYTYPE Proxy client key type. See \fICURLOPT_PROXY_SSLKEYTYPE(3)\fP .IP CURLOPT_KEYPASSWD Client key password. See \fICURLOPT_KEYPASSWD(3)\fP .IP CURLOPT_PROXY_KEYPASSWD Proxy client key password. See \fICURLOPT_PROXY_KEYPASSWD(3)\fP .IP CURLOPT_SSL_EC_CURVES Set key exchange curves. See \fICURLOPT_SSL_EC_CURVES(3)\fP .IP CURLOPT_SSL_ENABLE_ALPN Enable use of ALPN. See \fICURLOPT_SSL_ENABLE_ALPN(3)\fP .IP CURLOPT_SSL_ENABLE_NPN \fBOBSOLETE\fP Enable use of NPN. See \fICURLOPT_SSL_ENABLE_NPN(3)\fP .IP CURLOPT_SSLENGINE Use identifier with SSL engine. See \fICURLOPT_SSLENGINE(3)\fP .IP CURLOPT_SSLENGINE_DEFAULT Default SSL engine. See \fICURLOPT_SSLENGINE_DEFAULT(3)\fP .IP CURLOPT_SSL_FALSESTART Enable TLS False Start. See \fICURLOPT_SSL_FALSESTART(3)\fP .IP CURLOPT_SSLVERSION SSL version to use. See \fICURLOPT_SSLVERSION(3)\fP .IP CURLOPT_PROXY_SSLVERSION Proxy SSL version to use. See \fICURLOPT_PROXY_SSLVERSION(3)\fP .IP CURLOPT_SSL_VERIFYHOST Verify the host name in the SSL certificate. See \fICURLOPT_SSL_VERIFYHOST(3)\fP .IP CURLOPT_DOH_SSL_VERIFYHOST Verify the host name in the DoH (DNS-over-HTTPS) SSL certificate. See \fICURLOPT_DOH_SSL_VERIFYHOST(3)\fP .IP CURLOPT_PROXY_SSL_VERIFYHOST Verify the host name in the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP .IP CURLOPT_SSL_VERIFYPEER Verify the SSL certificate. See \fICURLOPT_SSL_VERIFYPEER(3)\fP .IP CURLOPT_DOH_SSL_VERIFYPEER Verify the DoH (DNS-over-HTTPS) SSL certificate. See \fICURLOPT_DOH_SSL_VERIFYPEER(3)\fP .IP CURLOPT_PROXY_SSL_VERIFYPEER Verify the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP .IP CURLOPT_SSL_VERIFYSTATUS Verify the SSL certificate's status. See \fICURLOPT_SSL_VERIFYSTATUS(3)\fP .IP CURLOPT_DOH_SSL_VERIFYSTATUS Verify the DoH (DNS-over-HTTPS) SSL certificate's status. See \fICURLOPT_DOH_SSL_VERIFYSTATUS(3)\fP .IP CURLOPT_CAINFO CA cert bundle. See \fICURLOPT_CAINFO(3)\fP .IP CURLOPT_CAINFO_BLOB CA cert bundle memory buffer. See \fICURLOPT_CAINFO_BLOB(3)\fP .IP CURLOPT_PROXY_CAINFO Proxy CA cert bundle. See \fICURLOPT_PROXY_CAINFO(3)\fP .IP CURLOPT_PROXY_CAINFO_BLOB Proxy CA cert bundle memory buffer. See \fICURLOPT_PROXY_CAINFO_BLOB(3)\fP .IP CURLOPT_ISSUERCERT Issuer certificate. See \fICURLOPT_ISSUERCERT(3)\fP .IP CURLOPT_ISSUERCERT_BLOB Issuer certificate memory buffer. See \fICURLOPT_ISSUERCERT_BLOB(3)\fP .IP CURLOPT_PROXY_ISSUERCERT Proxy issuer certificate. See \fICURLOPT_PROXY_ISSUERCERT(3)\fP .IP CURLOPT_PROXY_ISSUERCERT_BLOB Proxy issuer certificate memory buffer. See \fICURLOPT_PROXY_ISSUERCERT_BLOB(3)\fP .IP CURLOPT_CAPATH Path to CA cert bundle. See \fICURLOPT_CAPATH(3)\fP .IP CURLOPT_PROXY_CAPATH Path to proxy CA cert bundle. See \fICURLOPT_PROXY_CAPATH(3)\fP .IP CURLOPT_CRLFILE Certificate Revocation List. See \fICURLOPT_CRLFILE(3)\fP .IP CURLOPT_PROXY_CRLFILE Proxy Certificate Revocation List. See \fICURLOPT_PROXY_CRLFILE(3)\fP .IP CURLOPT_CA_CACHE_TIMEOUT Timeout for CA cache. See \fICURLOPT_CA_CACHE_TIMEOUT(3)\fP .IP CURLOPT_CERTINFO Extract certificate info. See \fICURLOPT_CERTINFO(3)\fP .IP CURLOPT_PINNEDPUBLICKEY Set pinned SSL public key . See \fICURLOPT_PINNEDPUBLICKEY(3)\fP .IP CURLOPT_PROXY_PINNEDPUBLICKEY Set the proxy's pinned SSL public key. See \fICURLOPT_PROXY_PINNEDPUBLICKEY(3)\fP .IP CURLOPT_RANDOM_FILE \fBOBSOLETE\fP Provide source for entropy random data. See \fICURLOPT_RANDOM_FILE(3)\fP .IP CURLOPT_EGDSOCKET \fBOBSOLETE\fP Identify EGD socket for entropy. See \fICURLOPT_EGDSOCKET(3)\fP .IP CURLOPT_SSL_CIPHER_LIST Ciphers to use. See \fICURLOPT_SSL_CIPHER_LIST(3)\fP .IP CURLOPT_PROXY_SSL_CIPHER_LIST Proxy ciphers to use. See \fICURLOPT_PROXY_SSL_CIPHER_LIST(3)\fP .IP CURLOPT_TLS13_CIPHERS TLS 1.3 cipher suites to use. See \fICURLOPT_TLS13_CIPHERS(3)\fP .IP CURLOPT_PROXY_TLS13_CIPHERS Proxy TLS 1.3 cipher suites to use. See \fICURLOPT_PROXY_TLS13_CIPHERS(3)\fP .IP CURLOPT_SSL_SESSIONID_CACHE Disable SSL session-id cache. See \fICURLOPT_SSL_SESSIONID_CACHE(3)\fP .IP CURLOPT_SSL_OPTIONS Control SSL behavior. See \fICURLOPT_SSL_OPTIONS(3)\fP .IP CURLOPT_PROXY_SSL_OPTIONS Control proxy SSL behavior. See \fICURLOPT_PROXY_SSL_OPTIONS(3)\fP .IP CURLOPT_KRBLEVEL Kerberos security level. See \fICURLOPT_KRBLEVEL(3)\fP .IP CURLOPT_GSSAPI_DELEGATION Disable GSS-API delegation. See \fICURLOPT_GSSAPI_DELEGATION(3)\fP .SH SSH OPTIONS .IP CURLOPT_SSH_AUTH_TYPES SSH authentication types. See \fICURLOPT_SSH_AUTH_TYPES(3)\fP .IP CURLOPT_SSH_COMPRESSION Enable SSH compression. See \fICURLOPT_SSH_COMPRESSION(3)\fP .IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 MD5 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3)\fP .IP CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 SHA256 of host's public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_SHA256(3)\fP .IP CURLOPT_SSH_PUBLIC_KEYFILE File name of public key. See \fICURLOPT_SSH_PUBLIC_KEYFILE(3)\fP .IP CURLOPT_SSH_PRIVATE_KEYFILE File name of private key. See \fICURLOPT_SSH_PRIVATE_KEYFILE(3)\fP .IP CURLOPT_SSH_KNOWNHOSTS File name with known hosts. See \fICURLOPT_SSH_KNOWNHOSTS(3)\fP .IP CURLOPT_SSH_KEYFUNCTION Callback for known hosts handling. See \fICURLOPT_SSH_KEYFUNCTION(3)\fP .IP CURLOPT_SSH_KEYDATA Custom pointer to pass to ssh key callback. See \fICURLOPT_SSH_KEYDATA(3)\fP .IP CURLOPT_SSH_HOSTKEYFUNCTION Callback for checking host key handling. See \fICURLOPT_SSH_HOSTKEYFUNCTION(3)\fP .IP CURLOPT_SSH_HOSTKEYDATA Custom pointer to pass to ssh host key callback. See \fICURLOPT_SSH_HOSTKEYDATA(3)\fP .SH WEBSOCKET .IP CURLOPT_WS_OPTIONS Set WebSocket options. See \fICURLOPT_WS_OPTIONS(3)\fP .SH OTHER OPTIONS .IP CURLOPT_PRIVATE Private pointer to store. See \fICURLOPT_PRIVATE(3)\fP .IP CURLOPT_SHARE Share object to use. See \fICURLOPT_SHARE(3)\fP .IP CURLOPT_NEW_FILE_PERMS Mode for creating new remote files. See \fICURLOPT_NEW_FILE_PERMS(3)\fP .IP CURLOPT_NEW_DIRECTORY_PERMS Mode for creating new remote directories. See \fICURLOPT_NEW_DIRECTORY_PERMS(3)\fP .IP CURLOPT_QUICK_EXIT To be set by toplevel tools like "curl" to skip lengthy cleanups when they are about to call exit() anyway. See \fICURLOPT_QUICK_EXIT(3)\fP .SH TELNET OPTIONS .IP CURLOPT_TELNETOPTIONS TELNET options. See \fICURLOPT_TELNETOPTIONS(3)\fP .SH EXAMPLE .nf CURL *curl = curl_easy_init(); if(curl) { CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, "https://example.com"); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } .fi .SH AVAILABILITY Always .SH RETURN VALUE \fICURLE_OK\fP (zero) means that the option was set properly, non-zero means an error occurred as \fI\fP defines. See the \fIlibcurl-errors(3)\fP man page for the full list with descriptions. Strings passed on to libcurl must be shorter than 8000000 bytes, otherwise \fIcurl_easy_setopt(3)\fP returns \fBCURLE_BAD_FUNCTION_ARGUMENT\fP (added in 7.65.0). \fBCURLE_BAD_FUNCTION_ARGUMENT\fP is returned when the argument to an option is invalid, like perhaps out of range. If you try to set an option that libcurl does not know about, perhaps because the library is too old to support it or the option was removed in a recent version, this function will return \fICURLE_UNKNOWN_OPTION\fP. If support for the option was disabled at compile-time, it will return \fICURLE_NOT_BUILT_IN\fP. .SH "SEE ALSO" .BR curl_easy_init "(3), " curl_easy_cleanup "(3), " curl_easy_reset "(3), " .BR curl_easy_getinfo "(3), " curl_multi_setopt "(3), " .BR curl_easy_option_next "(3), " curl_easy_option_by_name "(3), " .BR curl_easy_option_by_id "(3), "