.\" generated by cd2nroff 0.1 from curl_easy_setopt.md .TH curl_easy_setopt 3 "2024-11-18" 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\(aqs 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 \(aqchar *\(aq 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 OPTIONS .IP CURLOPT_ABSTRACT_UNIX_SOCKET Path to an abstract Unix domain socket. See \fICURLOPT_ABSTRACT_UNIX_SOCKET(3)\fP .IP CURLOPT_ACCEPTTIMEOUT_MS Timeout for waiting for the server\(aqs connect back to be accepted. See \fICURLOPT_ACCEPTTIMEOUT_MS(3)\fP .IP CURLOPT_ACCEPT_ENCODING Accept\-Encoding and automatic decompressing data. See \fICURLOPT_ACCEPT_ENCODING(3)\fP .IP CURLOPT_ADDRESS_SCOPE IPv6 scope for local addresses. See \fICURLOPT_ADDRESS_SCOPE(3)\fP .IP CURLOPT_ALTSVC Specify the Alt\-Svc: cache filename. See \fICURLOPT_ALTSVC(3)\fP .IP CURLOPT_ALTSVC_CTRL Enable and configure Alt\-Svc: treatment. See \fICURLOPT_ALTSVC_CTRL(3)\fP .IP CURLOPT_APPEND Append to remote file. See \fICURLOPT_APPEND(3)\fP .IP CURLOPT_AUTOREFERER Automatically set Referer: header. See \fICURLOPT_AUTOREFERER(3)\fP .IP CURLOPT_AWS_SIGV4 AWS HTTP V4 Signature. See \fICURLOPT_AWS_SIGV4(3)\fP .IP CURLOPT_BUFFERSIZE Ask for alternate buffer size. See \fICURLOPT_BUFFERSIZE(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_CAPATH Path to CA cert bundle. See \fICURLOPT_CAPATH(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_CHUNK_BGN_FUNCTION Callback for wildcard download start of chunk. See \fICURLOPT_CHUNK_BGN_FUNCTION(3)\fP .IP CURLOPT_CHUNK_DATA Data pointer to pass to the chunk callbacks. See \fICURLOPT_CHUNK_DATA(3)\fP .IP CURLOPT_CHUNK_END_FUNCTION Callback for wildcard download end of chunk. See \fICURLOPT_CHUNK_END_FUNCTION(3)\fP .IP CURLOPT_CLOSESOCKETDATA Data pointer to pass to the close socket callback. See \fICURLOPT_CLOSESOCKETDATA(3)\fP .IP CURLOPT_CLOSESOCKETFUNCTION Callback for closing socket. See \fICURLOPT_CLOSESOCKETFUNCTION(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_CONNECT_ONLY Only connect, nothing else. See \fICURLOPT_CONNECT_ONLY(3)\fP .IP CURLOPT_CONNECT_TO Connect to a specific host and port. See \fICURLOPT_CONNECT_TO(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_CONV_TO_NETWORK_FUNCTION \fBOBSOLETE\fP Callback for code base conversion. See \fICURLOPT_CONV_TO_NETWORK_FUNCTION(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_COOKIELIST Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP .IP CURLOPT_COOKIESESSION Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP .IP CURLOPT_COPYPOSTFIELDS Send a POST with this data \- and copy it. See \fICURLOPT_COPYPOSTFIELDS(3)\fP .IP CURLOPT_CRLF Convert newlines. See \fICURLOPT_CRLF(3)\fP .IP CURLOPT_CRLFILE Certificate Revocation List. See \fICURLOPT_CRLFILE(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_DEBUGDATA Data pointer to pass to the debug callback. See \fICURLOPT_DEBUGDATA(3)\fP .IP CURLOPT_DEBUGFUNCTION Callback for debug information. See \fICURLOPT_DEBUGFUNCTION(3)\fP .IP CURLOPT_DEFAULT_PROTOCOL Default protocol. See \fICURLOPT_DEFAULT_PROTOCOL(3)\fP .IP CURLOPT_DIRLISTONLY List only. See \fICURLOPT_DIRLISTONLY(3)\fP .IP CURLOPT_DISALLOW_USERNAME_IN_URL Do not allow username in URL. See \fICURLOPT_DISALLOW_USERNAME_IN_URL(3)\fP .IP CURLOPT_DNS_CACHE_TIMEOUT Timeout for DNS cache. See \fICURLOPT_DNS_CACHE_TIMEOUT(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_DNS_USE_GLOBAL_CACHE \fBOBSOLETE\fP Enable global DNS cache. See \fICURLOPT_DNS_USE_GLOBAL_CACHE(3)\fP .IP CURLOPT_DOH_SSL_VERIFYHOST Verify the hostname in the DoH (DNS\-over\-HTTPS) SSL certificate. See \fICURLOPT_DOH_SSL_VERIFYHOST(3)\fP .IP CURLOPT_DOH_SSL_VERIFYPEER Verify the DoH (DNS\-over\-HTTPS) SSL certificate. See \fICURLOPT_DOH_SSL_VERIFYPEER(3)\fP .IP CURLOPT_DOH_SSL_VERIFYSTATUS Verify the DoH (DNS\-over\-HTTPS) SSL certificate\(aqs status. See \fICURLOPT_DOH_SSL_VERIFYSTATUS(3)\fP .IP CURLOPT_DOH_URL Use this DoH server for name resolves. See \fICURLOPT_DOH_URL(3)\fP .IP CURLOPT_ECH Set the configuration for ECH. See \fICURLOPT_ECH(3)\fP .IP CURLOPT_EGDSOCKET \fBOBSOLETE\fP Identify EGD socket for entropy. See \fICURLOPT_EGDSOCKET(3)\fP .IP CURLOPT_ERRORBUFFER Error message buffer. See \fICURLOPT_ERRORBUFFER(3)\fP .IP CURLOPT_EXPECT_100_TIMEOUT_MS 100\-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP .IP CURLOPT_FAILONERROR Fail on HTTP 4xx errors. \fICURLOPT_FAILONERROR(3)\fP .IP CURLOPT_FILETIME Request file modification date and time. See \fICURLOPT_FILETIME(3)\fP .IP CURLOPT_FNMATCH_DATA Data pointer to pass to the wildcard matching callback. See \fICURLOPT_FNMATCH_DATA(3)\fP .IP CURLOPT_FNMATCH_FUNCTION Callback for wildcard matching. See \fICURLOPT_FNMATCH_FUNCTION(3)\fP .IP CURLOPT_FOLLOWLOCATION Follow HTTP redirects. See \fICURLOPT_FOLLOWLOCATION(3)\fP .IP CURLOPT_FORBID_REUSE Prevent subsequent connections from reusing this. See \fICURLOPT_FORBID_REUSE(3)\fP .IP CURLOPT_FRESH_CONNECT Use a new connection. \fICURLOPT_FRESH_CONNECT(3)\fP .IP CURLOPT_FTPPORT Use active FTP. See \fICURLOPT_FTPPORT(3)\fP .IP CURLOPT_FTPSSLAUTH Control how to do TLS. See \fICURLOPT_FTPSSLAUTH(3)\fP .IP CURLOPT_FTP_ACCOUNT Send ACCT command. See \fICURLOPT_FTP_ACCOUNT(3)\fP .IP CURLOPT_FTP_ALTERNATIVE_TO_USER Alternative to USER. See \fICURLOPT_FTP_ALTERNATIVE_TO_USER(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_FTP_FILEMETHOD Specify how to reach files. See \fICURLOPT_FTP_FILEMETHOD(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_FTP_SSL_CCC Back to non\-TLS again after authentication. See \fICURLOPT_FTP_SSL_CCC(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_GSSAPI_DELEGATION Disable GSS\-API delegation. See \fICURLOPT_GSSAPI_DELEGATION(3)\fP .IP CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS Timeout for happy eyeballs. See \fICURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS(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_HEADER Include the header in the body output. See \fICURLOPT_HEADER(3)\fP .IP CURLOPT_HEADERDATA Data pointer to pass to the header callback. See \fICURLOPT_HEADERDATA(3)\fP .IP CURLOPT_HEADERFUNCTION Callback for writing received headers. See \fICURLOPT_HEADERFUNCTION(3)\fP .IP CURLOPT_HEADEROPT Control custom headers. See \fICURLOPT_HEADEROPT(3)\fP .IP CURLOPT_HSTS Set HSTS cache file. See \fICURLOPT_HSTS(3)\fP .IP CURLOPT_HSTSREADDATA Pass pointer to the HSTS read callback. See \fICURLOPT_HSTSREADDATA(3)\fP .IP CURLOPT_HSTSREADFUNCTION Set HSTS read callback. See \fICURLOPT_HSTSREADFUNCTION(3)\fP .IP CURLOPT_HSTSWRITEDATA Pass pointer to the HSTS write callback. See \fICURLOPT_HSTSWRITEDATA(3)\fP .IP CURLOPT_HSTSWRITEFUNCTION Set HSTS write callback. See \fICURLOPT_HSTSWRITEFUNCTION(3)\fP .IP CURLOPT_HSTS_CTRL Enable HSTS. See \fICURLOPT_HSTS_CTRL(3)\fP .IP CURLOPT_HTTP09_ALLOWED Allow HTTP/0.9 responses. \fICURLOPT_HTTP09_ALLOWED(3)\fP .IP CURLOPT_HTTP200ALIASES Alternative versions of 200 OK. See \fICURLOPT_HTTP200ALIASES(3)\fP .IP CURLOPT_HTTPAUTH HTTP server authentication methods. See \fICURLOPT_HTTPAUTH(3)\fP .IP CURLOPT_HTTPGET Do an HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP .IP CURLOPT_HTTPHEADER Custom HTTP headers. See \fICURLOPT_HTTPHEADER(3)\fP .IP CURLOPT_HTTPPOST \fBDeprecated option\fP Multipart formpost HTTP POST. See \fICURLOPT_HTTPPOST(3)\fP .IP CURLOPT_HTTPPROXYTUNNEL Tunnel through the HTTP proxy. \fICURLOPT_HTTPPROXYTUNNEL(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_HTTP_VERSION HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP .IP CURLOPT_IGNORE_CONTENT_LENGTH Ignore Content\-Length. See \fICURLOPT_IGNORE_CONTENT_LENGTH(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_INTERFACE Bind connection locally to this. See \fICURLOPT_INTERFACE(3)\fP .IP CURLOPT_INTERLEAVEDATA Data pointer to pass to the RTSP interleave callback. See \fICURLOPT_INTERLEAVEDATA(3)\fP .IP CURLOPT_INTERLEAVEFUNCTION Callback for RTSP interleaved data. See \fICURLOPT_INTERLEAVEFUNCTION(3)\fP .IP CURLOPT_IOCTLDATA \fBDeprecated option\fP Data pointer to pass to the I/O callback. See \fICURLOPT_IOCTLDATA(3)\fP .IP CURLOPT_IOCTLFUNCTION \fBDeprecated option\fP Callback for I/O operations. See \fICURLOPT_IOCTLFUNCTION(3)\fP .IP CURLOPT_IPRESOLVE IP version to use. See \fICURLOPT_IPRESOLVE(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_KEEP_SENDING_ON_ERROR Keep sending on HTTP >= 300 errors. \fICURLOPT_KEEP_SENDING_ON_ERROR(3)\fP .IP CURLOPT_KEYPASSWD Client key password. See \fICURLOPT_KEYPASSWD(3)\fP .IP CURLOPT_KRBLEVEL Kerberos security level. See \fICURLOPT_KRBLEVEL(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_LOGIN_OPTIONS Login options. See \fICURLOPT_LOGIN_OPTIONS(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_MAIL_AUTH Authentication address. See \fICURLOPT_MAIL_AUTH(3)\fP .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_RCPT_ALLOWFAILS Allow RCPT TO command to fail for some recipients. See \fICURLOPT_MAIL_RCPT_ALLOWFAILS(3)\fP .IP CURLOPT_MAXAGE_CONN Limit the age (idle time) of connections for reuse. See \fICURLOPT_MAXAGE_CONN(3)\fP .IP CURLOPT_MAXCONNECTS Maximum number of connections in the connection pool. See \fICURLOPT_MAXCONNECTS(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_MAXLIFETIME_CONN Limit the age (since creation) of connections for reuse. See \fICURLOPT_MAXLIFETIME_CONN(3)\fP .IP CURLOPT_MAXREDIRS Maximum number of redirects to follow. See \fICURLOPT_MAXREDIRS(3)\fP .IP CURLOPT_MAX_RECV_SPEED_LARGE Cap the download speed to this. See \fICURLOPT_MAX_RECV_SPEED_LARGE(3)\fP .IP CURLOPT_MAX_SEND_SPEED_LARGE Cap the upload speed to this. See \fICURLOPT_MAX_SEND_SPEED_LARGE(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_NETRC Enable .netrc parsing. See \fICURLOPT_NETRC(3)\fP .IP CURLOPT_NETRC_FILE \&.netrc filename. See \fICURLOPT_NETRC_FILE(3)\fP .IP CURLOPT_NEW_DIRECTORY_PERMS Mode for creating new remote directories. See \fICURLOPT_NEW_DIRECTORY_PERMS(3)\fP .IP CURLOPT_NEW_FILE_PERMS Mode for creating new remote files. See \fICURLOPT_NEW_FILE_PERMS(3)\fP .IP CURLOPT_NOBODY Do not get the body contents. See \fICURLOPT_NOBODY(3)\fP .IP CURLOPT_NOPROGRESS Shut off the progress meter. See \fICURLOPT_NOPROGRESS(3)\fP .IP CURLOPT_NOPROXY Filter out hosts from proxy use. \fICURLOPT_NOPROXY(3)\fP .IP CURLOPT_NOSIGNAL Do not install signal handlers. See \fICURLOPT_NOSIGNAL(3)\fP .IP CURLOPT_OPENSOCKETDATA Data pointer to pass to the open socket callback. See \fICURLOPT_OPENSOCKETDATA(3)\fP .IP CURLOPT_OPENSOCKETFUNCTION Callback for socket creation. See \fICURLOPT_OPENSOCKETFUNCTION(3)\fP .IP CURLOPT_PASSWORD Password. See \fICURLOPT_PASSWORD(3)\fP .IP CURLOPT_PATH_AS_IS Disable squashing /../ and /./ sequences in the path. See \fICURLOPT_PATH_AS_IS(3)\fP .IP CURLOPT_PINNEDPUBLICKEY Set pinned SSL public key . See \fICURLOPT_PINNEDPUBLICKEY(3)\fP .IP CURLOPT_PIPEWAIT Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP .IP CURLOPT_PORT Port number to connect to. See \fICURLOPT_PORT(3)\fP .IP CURLOPT_POST Make an HTTP POST. See \fICURLOPT_POST(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_POSTQUOTE Commands to run after transfer. See \fICURLOPT_POSTQUOTE(3)\fP .IP CURLOPT_POSTREDIR How to act on redirects after POST. See \fICURLOPT_POSTREDIR(3)\fP .IP CURLOPT_PREQUOTE Commands to run just before transfer. See \fICURLOPT_PREQUOTE(3)\fP .IP CURLOPT_PREREQDATA Data pointer to pass to the CURLOPT_PREREQFUNCTION callback. See \fICURLOPT_PREREQDATA(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_PRE_PROXY Socks proxy to use. See \fICURLOPT_PRE_PROXY(3)\fP .IP CURLOPT_PRIVATE Private pointer to store. See \fICURLOPT_PRIVATE(3)\fP .IP CURLOPT_PROGRESSDATA Data pointer to pass to the progress meter callback. See \fICURLOPT_PROGRESSDATA(3)\fP .IP CURLOPT_PROGRESSFUNCTION \fBOBSOLETE\fP callback for progress meter. See \fICURLOPT_PROGRESSFUNCTION(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_PROXY Proxy to use. See \fICURLOPT_PROXY(3)\fP .IP CURLOPT_PROXYAUTH HTTP proxy authentication methods. See \fICURLOPT_PROXYAUTH(3)\fP .IP CURLOPT_PROXYHEADER Custom HTTP headers sent to proxy. See \fICURLOPT_PROXYHEADER(3)\fP .IP CURLOPT_PROXYPASSWORD Proxy password. See \fICURLOPT_PROXYPASSWORD(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_PROXYUSERNAME Proxy username. See \fICURLOPT_PROXYUSERNAME(3)\fP .IP CURLOPT_PROXYUSERPWD Proxy username and password. See \fICURLOPT_PROXYUSERPWD(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_PROXY_CAPATH Path to proxy CA cert bundle. See \fICURLOPT_PROXY_CAPATH(3)\fP .IP CURLOPT_PROXY_CRLFILE Proxy Certificate Revocation List. See \fICURLOPT_PROXY_CRLFILE(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_PROXY_KEYPASSWD Proxy client key password. See \fICURLOPT_PROXY_KEYPASSWD(3)\fP .IP CURLOPT_PROXY_PINNEDPUBLICKEY Set the proxy\(aqs pinned SSL public key. See \fICURLOPT_PROXY_PINNEDPUBLICKEY(3)\fP .IP CURLOPT_PROXY_SERVICE_NAME Proxy authentication service name. \fICURLOPT_PROXY_SERVICE_NAME(3)\fP .IP CURLOPT_PROXY_SSLCERT Proxy client cert. See \fICURLOPT_PROXY_SSLCERT(3)\fP .IP CURLOPT_PROXY_SSLCERTTYPE Proxy client cert type. See \fICURLOPT_PROXY_SSLCERTTYPE(3)\fP .IP CURLOPT_PROXY_SSLCERT_BLOB Proxy client cert memory buffer. See \fICURLOPT_PROXY_SSLCERT_BLOB(3)\fP .IP CURLOPT_PROXY_SSLKEY Proxy client key. See \fICURLOPT_PROXY_SSLKEY(3)\fP .IP CURLOPT_PROXY_SSLKEYTYPE Proxy client key type. See \fICURLOPT_PROXY_SSLKEYTYPE(3)\fP .IP CURLOPT_PROXY_SSLKEY_BLOB Proxy client key. See \fICURLOPT_PROXY_SSLKEY_BLOB(3)\fP .IP CURLOPT_PROXY_SSLVERSION Proxy SSL version to use. See \fICURLOPT_PROXY_SSLVERSION(3)\fP .IP CURLOPT_PROXY_SSL_CIPHER_LIST Proxy ciphers to use. See \fICURLOPT_PROXY_SSL_CIPHER_LIST(3)\fP .IP CURLOPT_PROXY_SSL_OPTIONS Control proxy SSL behavior. See \fICURLOPT_PROXY_SSL_OPTIONS(3)\fP .IP CURLOPT_PROXY_SSL_VERIFYHOST Verify the hostname in the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYHOST(3)\fP .IP CURLOPT_PROXY_SSL_VERIFYPEER Verify the proxy SSL certificate. See \fICURLOPT_PROXY_SSL_VERIFYPEER(3)\fP .IP CURLOPT_PROXY_TLS13_CIPHERS Proxy TLS 1.3 cipher suites to use. See \fICURLOPT_PROXY_TLS13_CIPHERS(3)\fP .IP CURLOPT_PROXY_TLSAUTH_PASSWORD Proxy TLS authentication password. See \fICURLOPT_PROXY_TLSAUTH_PASSWORD(3)\fP .IP CURLOPT_PROXY_TLSAUTH_TYPE Proxy TLS authentication methods. See \fICURLOPT_PROXY_TLSAUTH_TYPE(3)\fP .IP CURLOPT_PROXY_TLSAUTH_USERNAME Proxy TLS authentication username. See \fICURLOPT_PROXY_TLSAUTH_USERNAME(3)\fP .IP CURLOPT_PROXY_TRANSFER_MODE Add transfer mode to URL over proxy. See \fICURLOPT_PROXY_TRANSFER_MODE(3)\fP .IP CURLOPT_PUT \fBDeprecated option\fP Issue an HTTP PUT request. See \fICURLOPT_PUT(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 .IP CURLOPT_QUOTE Commands to run before transfer. See \fICURLOPT_QUOTE(3)\fP .IP CURLOPT_RANDOM_FILE \fBOBSOLETE\fP Provide source for entropy random data. See \fICURLOPT_RANDOM_FILE(3)\fP .IP CURLOPT_RANGE Range requests. See \fICURLOPT_RANGE(3)\fP .IP CURLOPT_READDATA Data pointer to pass to the read callback. See \fICURLOPT_READDATA(3)\fP .IP CURLOPT_READFUNCTION Callback for reading data. See \fICURLOPT_READFUNCTION(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_REFERER Referer: header. See \fICURLOPT_REFERER(3)\fP .IP CURLOPT_REQUEST_TARGET Set the request target. \fICURLOPT_REQUEST_TARGET(3)\fP .IP CURLOPT_RESOLVE Provide fixed/fake name resolves. See \fICURLOPT_RESOLVE(3)\fP .IP CURLOPT_RESOLVER_START_DATA Data pointer to pass to resolver start callback. See \fICURLOPT_RESOLVER_START_DATA(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_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_RTSP_CLIENT_CSEQ Client CSEQ number. See \fICURLOPT_RTSP_CLIENT_CSEQ(3)\fP .IP CURLOPT_RTSP_REQUEST RTSP request. See \fICURLOPT_RTSP_REQUEST(3)\fP .IP CURLOPT_RTSP_SERVER_CSEQ CSEQ number for RTSP Server\->Client request. See \fICURLOPT_RTSP_SERVER_CSEQ(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_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_SEEKDATA Data pointer to pass to the seek callback. See \fICURLOPT_SEEKDATA(3)\fP .IP CURLOPT_SEEKFUNCTION Callback for seek operations. See \fICURLOPT_SEEKFUNCTION(3)\fP .IP CURLOPT_SERVER_RESPONSE_TIMEOUT Timeout for server responses. See \fICURLOPT_SERVER_RESPONSE_TIMEOUT(3)\fP .IP CURLOPT_SERVER_RESPONSE_TIMEOUT_MS Timeout for server responses. See \fICURLOPT_SERVER_RESPONSE_TIMEOUT_MS(3)\fP .IP CURLOPT_SERVICE_NAME Authentication service name. \fICURLOPT_SERVICE_NAME(3)\fP .IP CURLOPT_SHARE Share object to use. See \fICURLOPT_SHARE(3)\fP .IP CURLOPT_SOCKOPTDATA Data pointer to pass to the sockopt callback. See \fICURLOPT_SOCKOPTDATA(3)\fP .IP CURLOPT_SOCKOPTFUNCTION Callback for sockopt operations. See \fICURLOPT_SOCKOPTFUNCTION(3)\fP .IP CURLOPT_SOCKS5_AUTH Socks5 authentication methods. See \fICURLOPT_SOCKS5_AUTH(3)\fP .IP CURLOPT_SOCKS5_GSSAPI_NEC Socks5 GSSAPI NEC mode. See \fICURLOPT_SOCKS5_GSSAPI_NEC(3)\fP .IP CURLOPT_SOCKS5_GSSAPI_SERVICE \fBDeprecated option\fP Socks5 GSSAPI service name. See \fICURLOPT_SOCKS5_GSSAPI_SERVICE(3)\fP .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_HOSTKEYDATA Custom pointer to pass to ssh host key callback. See \fICURLOPT_SSH_HOSTKEYDATA(3)\fP .IP CURLOPT_SSH_HOSTKEYFUNCTION Callback for checking host key handling. See \fICURLOPT_SSH_HOSTKEYFUNCTION(3)\fP .IP CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 MD5 of host\(aqs public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_MD5(3)\fP .IP CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 SHA256 of host\(aqs public key. See \fICURLOPT_SSH_HOST_PUBLIC_KEY_SHA256(3)\fP .IP CURLOPT_SSH_KEYDATA Custom pointer to pass to ssh key callback. See \fICURLOPT_SSH_KEYDATA(3)\fP .IP CURLOPT_SSH_KEYFUNCTION Callback for known hosts handling. See \fICURLOPT_SSH_KEYFUNCTION(3)\fP .IP CURLOPT_SSH_KNOWNHOSTS Filename with known hosts. See \fICURLOPT_SSH_KNOWNHOSTS(3)\fP .IP CURLOPT_SSH_PRIVATE_KEYFILE Filename of the private key. See \fICURLOPT_SSH_PRIVATE_KEYFILE(3)\fP .IP CURLOPT_SSH_PUBLIC_KEYFILE Filename of the public key. See \fICURLOPT_SSH_PUBLIC_KEYFILE(3)\fP .IP CURLOPT_SSLCERT Client cert. See \fICURLOPT_SSLCERT(3)\fP .IP CURLOPT_SSLCERTTYPE Client cert type. See \fICURLOPT_SSLCERTTYPE(3)\fP .IP CURLOPT_SSLCERT_BLOB Client cert memory buffer. See \fICURLOPT_SSLCERT_BLOB(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_SSLKEY Client key. See \fICURLOPT_SSLKEY(3)\fP .IP CURLOPT_SSLKEYTYPE Client key type. See \fICURLOPT_SSLKEYTYPE(3)\fP .IP CURLOPT_SSLKEY_BLOB Client key memory buffer. See \fICURLOPT_SSLKEY_BLOB(3)\fP .IP CURLOPT_SSLVERSION SSL version to use. See \fICURLOPT_SSLVERSION(3)\fP .IP CURLOPT_SSL_CIPHER_LIST Ciphers to use. See \fICURLOPT_SSL_CIPHER_LIST(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_SSL_CTX_FUNCTION Callback for SSL context logic. See \fICURLOPT_SSL_CTX_FUNCTION(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_SSL_FALSESTART Enable TLS False Start. See \fICURLOPT_SSL_FALSESTART(3)\fP .IP CURLOPT_SSL_OPTIONS Control SSL behavior. See \fICURLOPT_SSL_OPTIONS(3)\fP .IP CURLOPT_SSL_SESSIONID_CACHE Disable SSL session\-id cache. See \fICURLOPT_SSL_SESSIONID_CACHE(3)\fP .IP CURLOPT_SSL_VERIFYHOST Verify the hostname in the SSL certificate. See \fICURLOPT_SSL_VERIFYHOST(3)\fP .IP CURLOPT_SSL_VERIFYPEER Verify the SSL certificate. See \fICURLOPT_SSL_VERIFYPEER(3)\fP .IP CURLOPT_SSL_VERIFYSTATUS Verify the SSL certificate\(aqs status. See \fICURLOPT_SSL_VERIFYSTATUS(3)\fP .IP CURLOPT_STDERR Redirect stderr to another stream. See \fICURLOPT_STDERR(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\(aqs weight. See \fICURLOPT_STREAM_WEIGHT(3)\fP .IP CURLOPT_SUPPRESS_CONNECT_HEADERS Suppress proxy CONNECT response headers from user callbacks. See \fICURLOPT_SUPPRESS_CONNECT_HEADERS(3)\fP .IP CURLOPT_TCP_FASTOPEN Enable TCP Fast Open. See \fICURLOPT_TCP_FASTOPEN(3)\fP .IP CURLOPT_TCP_KEEPALIVE Enable TCP keep\-alive. See \fICURLOPT_TCP_KEEPALIVE(3)\fP .IP CURLOPT_TCP_KEEPCNT Maximum number of keep\-alive probes. See \fICURLOPT_TCP_KEEPCNT(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_TCP_NODELAY Disable the Nagle algorithm. See \fICURLOPT_TCP_NODELAY(3)\fP .IP CURLOPT_TELNETOPTIONS TELNET options. See \fICURLOPT_TELNETOPTIONS(3)\fP .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 .IP CURLOPT_TIMECONDITION Make a time conditional request. See \fICURLOPT_TIMECONDITION(3)\fP .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_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 .IP CURLOPT_TLS13_CIPHERS TLS 1.3 cipher suites to use. See \fICURLOPT_TLS13_CIPHERS(3)\fP .IP CURLOPT_TLSAUTH_PASSWORD TLS authentication password. See \fICURLOPT_TLSAUTH_PASSWORD(3)\fP .IP CURLOPT_TLSAUTH_TYPE TLS authentication methods. See \fICURLOPT_TLSAUTH_TYPE(3)\fP .IP CURLOPT_TLSAUTH_USERNAME TLS authentication username. See \fICURLOPT_TLSAUTH_USERNAME(3)\fP .IP CURLOPT_TRAILERDATA Custom pointer passed to the trailing headers callback. See \fICURLOPT_TRAILERDATA(3)\fP .IP CURLOPT_TRAILERFUNCTION Set callback for sending trailing headers. See \fICURLOPT_TRAILERFUNCTION(3)\fP .IP CURLOPT_TRANSFERTEXT Use text transfer. See \fICURLOPT_TRANSFERTEXT(3)\fP .IP CURLOPT_TRANSFER_ENCODING Request Transfer\-Encoding. See \fICURLOPT_TRANSFER_ENCODING(3)\fP .IP CURLOPT_UNIX_SOCKET_PATH Path to a Unix domain socket. See \fICURLOPT_UNIX_SOCKET_PATH(3)\fP .IP CURLOPT_UNRESTRICTED_AUTH Do not restrict authentication to original host. \fICURLOPT_UNRESTRICTED_AUTH(3)\fP .IP CURLOPT_UPKEEP_INTERVAL_MS Sets the interval at which connection upkeep are performed. See \fICURLOPT_UPKEEP_INTERVAL_MS(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_URL URL to work on. See \fICURLOPT_URL(3)\fP .IP CURLOPT_USERAGENT User\-Agent: header. See \fICURLOPT_USERAGENT(3)\fP .IP CURLOPT_USERNAME Username. See \fICURLOPT_USERNAME(3)\fP .IP CURLOPT_USERPWD Username and password. See \fICURLOPT_USERPWD(3)\fP .IP CURLOPT_USE_SSL Use TLS/SSL. See \fICURLOPT_USE_SSL(3)\fP .IP CURLOPT_VERBOSE Display verbose information. See \fICURLOPT_VERBOSE(3)\fP .IP CURLOPT_WILDCARDMATCH Transfer multiple files according to a filename pattern. See \fICURLOPT_WILDCARDMATCH(3)\fP .IP CURLOPT_WRITEDATA Data pointer to pass to the write callback. See \fICURLOPT_WRITEDATA(3)\fP .IP CURLOPT_WRITEFUNCTION Callback for writing data. See \fICURLOPT_WRITEFUNCTION(3)\fP .IP CURLOPT_WS_OPTIONS Set WebSocket options. See \fICURLOPT_WS_OPTIONS(3)\fP .IP CURLOPT_XFERINFODATA Data pointer to pass to the progress meter callback. See \fICURLOPT_XFERINFODATA(3)\fP .IP CURLOPT_XFERINFOFUNCTION Callback for progress meter. See \fICURLOPT_XFERINFOFUNCTION(3)\fP .IP CURLOPT_XOAUTH2_BEARER OAuth2 bearer token. See \fICURLOPT_XOAUTH2_BEARER(3)\fP .SH PROTOCOLS This functionality affects all supported protocols .SH EXAMPLE .nf int main(void) { 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 Added in curl 7.1 .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 returns \fICURLE_UNKNOWN_OPTION\fP. If support for the option was disabled at compile\-time, it returns \fICURLE_NOT_BUILT_IN\fP. .SH SEE ALSO .BR curl_easy_cleanup (3), .BR curl_easy_getinfo (3), .BR curl_easy_init (3), .BR curl_easy_option_by_id (3), .BR curl_easy_option_by_name (3), .BR curl_easy_option_next (3), .BR curl_easy_reset (3), .BR curl_multi_setopt (3)