curl\_easy\_setopt(3) Library Functions Manual curl\_easy\_setopt(3)

# [NAME](#NAME)

curl\_easy\_setopt - set options for a curl easy handle

# [SYNOPSIS](#SYNOPSIS)

```
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
```

# [DESCRIPTION](#DESCRIPTION)

[*curl\_easy\_setopt(3)*](/man/os/curl/curl_easy_setopt.3) 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 *option* followed by a *parameter*. That parameter can be a **long**, a **function pointer**, an **object pointer** or a **curl\_off\_t**, 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 [*curl\_easy\_setopt(3)*](/man/os/curl/curl_easy_setopt.3) calls in the setup phase.

The *handle* argument is the return code from a [*curl\_easy\_init(3)*](/man/os/curl/curl_easy_init.3) or [*curl\_easy\_duphandle(3)*](/man/os/curl/curl_easy_duphandle.3) call.

Options set with this function call are sticky. They remain set for all forthcoming transfers performed using this *handle*. 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 [*curl\_easy\_reset(3)*](/man/os/curl/curl_easy_reset.3).

Changing options with [*curl\_easy\_setopt(3)*](/man/os/curl/curl_easy_setopt.3) while a transfer is still in progress may cause undefined and undesired behavior.

The order in which the options are set does not matter.

# [STRINGS](#STRINGS)

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 [*curl\_easy\_setopt(3)*](/man/os/curl/curl_easy_setopt.3) returns. The only exception to this rule is really [*CURLOPT\_POSTFIELDS(3)*](/man/os/curl/CURLOPT_POSTFIELDS.3), but the alternative that copies the string [*CURLOPT\_COPYPOSTFIELDS(3)*](/man/os/curl/CURLOPT_COPYPOSTFIELDS.3) has some usage characteristics you need to read up on.

This function does not accept input strings longer than **CURL\_MAX\_INPUT\_LENGTH** (8 MB).

libcurl does little to no verification of the contents of provided strings. Passing in "creative octets" like newlines where they are not expected might trigger unexpected results.

Before version 7.17.0, strings were not copied. Instead the user was forced to keep them available until libcurl no longer needed them.

# [OPTIONS](#OPTIONS)

[CURLOPT\_ABSTRACT\_UNIX\_SOCKET](#CURLOPT_ABSTRACT_UNIX_SOCKET)

Path to an abstract Unix domain socket. See [*CURLOPT\_ABSTRACT\_UNIX\_SOCKET(3)*](/man/os/curl/CURLOPT_ABSTRACT_UNIX_SOCKET.3)

[CURLOPT\_ACCEPTTIMEOUT\_MS](#CURLOPT_ACCEPTTIMEOUT_MS)

Timeout for waiting for the server's connect back to be accepted. See [*CURLOPT\_ACCEPTTIMEOUT\_MS(3)*](/man/os/curl/CURLOPT_ACCEPTTIMEOUT_MS.3)

[CURLOPT\_ACCEPT\_ENCODING](#CURLOPT_ACCEPT_ENCODING)

Accept-Encoding and automatic decompressing data. See [*CURLOPT\_ACCEPT\_ENCODING(3)*](/man/os/curl/CURLOPT_ACCEPT_ENCODING.3)

[CURLOPT\_ADDRESS\_SCOPE](#CURLOPT_ADDRESS_SCOPE)

IPv6 scope for local addresses. See [*CURLOPT\_ADDRESS\_SCOPE(3)*](/man/os/curl/CURLOPT_ADDRESS_SCOPE.3)

[CURLOPT\_ALTSVC](#CURLOPT_ALTSVC)

Specify the Alt-Svc: cache filename. See [*CURLOPT\_ALTSVC(3)*](/man/os/curl/CURLOPT_ALTSVC.3)

[CURLOPT\_ALTSVC\_CTRL](#CURLOPT_ALTSVC_CTRL)

Enable and configure Alt-Svc: treatment. See [*CURLOPT\_ALTSVC\_CTRL(3)*](/man/os/curl/CURLOPT_ALTSVC_CTRL.3)

[CURLOPT\_APPEND](#CURLOPT_APPEND)

Append to remote file. See [*CURLOPT\_APPEND(3)*](/man/os/curl/CURLOPT_APPEND.3)

[CURLOPT\_AUTOREFERER](#CURLOPT_AUTOREFERER)

Automatically set Referer: header. See [*CURLOPT\_AUTOREFERER(3)*](/man/os/curl/CURLOPT_AUTOREFERER.3)

[CURLOPT\_AWS\_SIGV4](#CURLOPT_AWS_SIGV4)

AWS HTTP V4 Signature. See [*CURLOPT\_AWS\_SIGV4(3)*](/man/os/curl/CURLOPT_AWS_SIGV4.3)

[CURLOPT\_BUFFERSIZE](#CURLOPT_BUFFERSIZE)

Ask for alternate buffer size. See [*CURLOPT\_BUFFERSIZE(3)*](/man/os/curl/CURLOPT_BUFFERSIZE.3)

[CURLOPT\_CAINFO](#CURLOPT_CAINFO)

CA cert bundle. See [*CURLOPT\_CAINFO(3)*](/man/os/curl/CURLOPT_CAINFO.3)

[CURLOPT\_CAINFO\_BLOB](#CURLOPT_CAINFO_BLOB)

CA cert bundle memory buffer. See [*CURLOPT\_CAINFO\_BLOB(3)*](/man/os/curl/CURLOPT_CAINFO_BLOB.3)

[CURLOPT\_CAPATH](#CURLOPT_CAPATH)

Path to CA cert bundle. See [*CURLOPT\_CAPATH(3)*](/man/os/curl/CURLOPT_CAPATH.3)

[CURLOPT\_CA\_CACHE\_TIMEOUT](#CURLOPT_CA_CACHE_TIMEOUT)

Timeout for CA cache. See [*CURLOPT\_CA\_CACHE\_TIMEOUT(3)*](/man/os/curl/CURLOPT_CA_CACHE_TIMEOUT.3)

[CURLOPT\_CERTINFO](#CURLOPT_CERTINFO)

Extract certificate info. See [*CURLOPT\_CERTINFO(3)*](/man/os/curl/CURLOPT_CERTINFO.3)

[CURLOPT\_CHUNK\_BGN\_FUNCTION](#CURLOPT_CHUNK_BGN_FUNCTION)

Callback for wildcard download start of chunk. See [*CURLOPT\_CHUNK\_BGN\_FUNCTION(3)*](/man/os/curl/CURLOPT_CHUNK_BGN_FUNCTION.3)

[CURLOPT\_CHUNK\_DATA](#CURLOPT_CHUNK_DATA)

Data pointer to pass to the chunk callbacks. See [*CURLOPT\_CHUNK\_DATA(3)*](/man/os/curl/CURLOPT_CHUNK_DATA.3)

[CURLOPT\_CHUNK\_END\_FUNCTION](#CURLOPT_CHUNK_END_FUNCTION)

Callback for wildcard download end of chunk. See [*CURLOPT\_CHUNK\_END\_FUNCTION(3)*](/man/os/curl/CURLOPT_CHUNK_END_FUNCTION.3)

[CURLOPT\_CLOSESOCKETDATA](#CURLOPT_CLOSESOCKETDATA)

Data pointer to pass to the close socket callback. See [*CURLOPT\_CLOSESOCKETDATA(3)*](/man/os/curl/CURLOPT_CLOSESOCKETDATA.3)

[CURLOPT\_CLOSESOCKETFUNCTION](#CURLOPT_CLOSESOCKETFUNCTION)

Callback for closing socket. See [*CURLOPT\_CLOSESOCKETFUNCTION(3)*](/man/os/curl/CURLOPT_CLOSESOCKETFUNCTION.3)

[CURLOPT\_CONNECTTIMEOUT](#CURLOPT_CONNECTTIMEOUT)

Timeout for the connection phase. See [*CURLOPT\_CONNECTTIMEOUT(3)*](/man/os/curl/CURLOPT_CONNECTTIMEOUT.3)

[CURLOPT\_CONNECTTIMEOUT\_MS](#CURLOPT_CONNECTTIMEOUT_MS)

Millisecond timeout for the connection phase. See [*CURLOPT\_CONNECTTIMEOUT\_MS(3)*](/man/os/curl/CURLOPT_CONNECTTIMEOUT_MS.3)

[CURLOPT\_CONNECT\_ONLY](#CURLOPT_CONNECT_ONLY)

Only connect, nothing else. See [*CURLOPT\_CONNECT\_ONLY(3)*](/man/os/curl/CURLOPT_CONNECT_ONLY.3)

[CURLOPT\_CONNECT\_TO](#CURLOPT_CONNECT_TO)

Connect to a specific host and port. See [*CURLOPT\_CONNECT\_TO(3)*](/man/os/curl/CURLOPT_CONNECT_TO.3)

[CURLOPT\_CONV\_FROM\_NETWORK\_FUNCTION](#CURLOPT_CONV_FROM_NETWORK_FUNCTION)

**OBSOLETE** Callback for code base conversion. See [*CURLOPT\_CONV\_FROM\_NETWORK\_FUNCTION(3)*](/man/os/curl/CURLOPT_CONV_FROM_NETWORK_FUNCTION.3)

[CURLOPT\_CONV\_FROM\_UTF8\_FUNCTION](#CURLOPT_CONV_FROM_UTF8_FUNCTION)

**OBSOLETE** Callback for code base conversion. See [*CURLOPT\_CONV\_FROM\_UTF8\_FUNCTION(3)*](/man/os/curl/CURLOPT_CONV_FROM_UTF8_FUNCTION.3)

[CURLOPT\_CONV\_TO\_NETWORK\_FUNCTION](#CURLOPT_CONV_TO_NETWORK_FUNCTION)

**OBSOLETE** Callback for code base conversion. See [*CURLOPT\_CONV\_TO\_NETWORK\_FUNCTION(3)*](/man/os/curl/CURLOPT_CONV_TO_NETWORK_FUNCTION.3)

[CURLOPT\_COOKIE](#CURLOPT_COOKIE)

Cookie(s) to send. See [*CURLOPT\_COOKIE(3)*](/man/os/curl/CURLOPT_COOKIE.3)

[CURLOPT\_COOKIEFILE](#CURLOPT_COOKIEFILE)

File to read cookies from. See [*CURLOPT\_COOKIEFILE(3)*](/man/os/curl/CURLOPT_COOKIEFILE.3)

[CURLOPT\_COOKIEJAR](#CURLOPT_COOKIEJAR)

File to write cookies to. See [*CURLOPT\_COOKIEJAR(3)*](/man/os/curl/CURLOPT_COOKIEJAR.3)

[CURLOPT\_COOKIELIST](#CURLOPT_COOKIELIST)

Add or control cookies. See [*CURLOPT\_COOKIELIST(3)*](/man/os/curl/CURLOPT_COOKIELIST.3)

[CURLOPT\_COOKIESESSION](#CURLOPT_COOKIESESSION)

Start a new cookie session. See [*CURLOPT\_COOKIESESSION(3)*](/man/os/curl/CURLOPT_COOKIESESSION.3)

[CURLOPT\_COPYPOSTFIELDS](#CURLOPT_COPYPOSTFIELDS)

Send a POST with this data - and copy it. See [*CURLOPT\_COPYPOSTFIELDS(3)*](/man/os/curl/CURLOPT_COPYPOSTFIELDS.3)

[CURLOPT\_CRLF](#CURLOPT_CRLF)

Convert newlines. See [*CURLOPT\_CRLF(3)*](/man/os/curl/CURLOPT_CRLF.3)

[CURLOPT\_CRLFILE](#CURLOPT_CRLFILE)

Certificate Revocation List. See [*CURLOPT\_CRLFILE(3)*](/man/os/curl/CURLOPT_CRLFILE.3)

[CURLOPT\_CURLU](#CURLOPT_CURLU)

Set URL to work on with a URL handle. See [*CURLOPT\_CURLU(3)*](/man/os/curl/CURLOPT_CURLU.3)

[CURLOPT\_CUSTOMREQUEST](#CURLOPT_CUSTOMREQUEST)

Custom request/method. See [*CURLOPT\_CUSTOMREQUEST(3)*](/man/os/curl/CURLOPT_CUSTOMREQUEST.3)

[CURLOPT\_DEBUGDATA](#CURLOPT_DEBUGDATA)

Data pointer to pass to the debug callback. See [*CURLOPT\_DEBUGDATA(3)*](/man/os/curl/CURLOPT_DEBUGDATA.3)

[CURLOPT\_DEBUGFUNCTION](#CURLOPT_DEBUGFUNCTION)

Callback for debug information. See [*CURLOPT\_DEBUGFUNCTION(3)*](/man/os/curl/CURLOPT_DEBUGFUNCTION.3)

[CURLOPT\_DEFAULT\_PROTOCOL](#CURLOPT_DEFAULT_PROTOCOL)

Default protocol. See [*CURLOPT\_DEFAULT\_PROTOCOL(3)*](/man/os/curl/CURLOPT_DEFAULT_PROTOCOL.3)

[CURLOPT\_DIRLISTONLY](#CURLOPT_DIRLISTONLY)

List only. See [*CURLOPT\_DIRLISTONLY(3)*](/man/os/curl/CURLOPT_DIRLISTONLY.3)

[CURLOPT\_DISALLOW\_USERNAME\_IN\_URL](#CURLOPT_DISALLOW_USERNAME_IN_URL)

Do not allow username in URL. See [*CURLOPT\_DISALLOW\_USERNAME\_IN\_URL(3)*](/man/os/curl/CURLOPT_DISALLOW_USERNAME_IN_URL.3)

[CURLOPT\_DNS\_CACHE\_TIMEOUT](#CURLOPT_DNS_CACHE_TIMEOUT)

Timeout for DNS cache. See [*CURLOPT\_DNS\_CACHE\_TIMEOUT(3)*](/man/os/curl/CURLOPT_DNS_CACHE_TIMEOUT.3)

[CURLOPT\_DNS\_INTERFACE](#CURLOPT_DNS_INTERFACE)

Bind name resolves to this interface. See [*CURLOPT\_DNS\_INTERFACE(3)*](/man/os/curl/CURLOPT_DNS_INTERFACE.3)

[CURLOPT\_DNS\_LOCAL\_IP4](#CURLOPT_DNS_LOCAL_IP4)

Bind name resolves to this IP4 address. See [*CURLOPT\_DNS\_LOCAL\_IP4(3)*](/man/os/curl/CURLOPT_DNS_LOCAL_IP4.3)

[CURLOPT\_DNS\_LOCAL\_IP6](#CURLOPT_DNS_LOCAL_IP6)

Bind name resolves to this IP6 address. See [*CURLOPT\_DNS\_LOCAL\_IP6(3)*](/man/os/curl/CURLOPT_DNS_LOCAL_IP6.3)

[CURLOPT\_DNS\_SERVERS](#CURLOPT_DNS_SERVERS)

Preferred DNS servers. See [*CURLOPT\_DNS\_SERVERS(3)*](/man/os/curl/CURLOPT_DNS_SERVERS.3)

[CURLOPT\_DNS\_SHUFFLE\_ADDRESSES](#CURLOPT_DNS_SHUFFLE_ADDRESSES)

Shuffle addresses before use. See [*CURLOPT\_DNS\_SHUFFLE\_ADDRESSES(3)*](/man/os/curl/CURLOPT_DNS_SHUFFLE_ADDRESSES.3)

[CURLOPT\_DNS\_USE\_GLOBAL\_CACHE](#CURLOPT_DNS_USE_GLOBAL_CACHE)

**OBSOLETE** Enable global DNS cache. See [*CURLOPT\_DNS\_USE\_GLOBAL\_CACHE(3)*](/man/os/curl/CURLOPT_DNS_USE_GLOBAL_CACHE.3)

[CURLOPT\_DOH\_SSL\_VERIFYHOST](#CURLOPT_DOH_SSL_VERIFYHOST)

Verify the hostname in the DoH (DNS-over-HTTPS) SSL certificate. See [*CURLOPT\_DOH\_SSL\_VERIFYHOST(3)*](/man/os/curl/CURLOPT_DOH_SSL_VERIFYHOST.3)

[CURLOPT\_DOH\_SSL\_VERIFYPEER](#CURLOPT_DOH_SSL_VERIFYPEER)

Verify the DoH (DNS-over-HTTPS) SSL certificate. See [*CURLOPT\_DOH\_SSL\_VERIFYPEER(3)*](/man/os/curl/CURLOPT_DOH_SSL_VERIFYPEER.3)

[CURLOPT\_DOH\_SSL\_VERIFYSTATUS](#CURLOPT_DOH_SSL_VERIFYSTATUS)

Verify the DoH (DNS-over-HTTPS) SSL certificate's status. See [*CURLOPT\_DOH\_SSL\_VERIFYSTATUS(3)*](/man/os/curl/CURLOPT_DOH_SSL_VERIFYSTATUS.3)

[CURLOPT\_DOH\_URL](#CURLOPT_DOH_URL)

Use this DoH server for name resolves. See [*CURLOPT\_DOH\_URL(3)*](/man/os/curl/CURLOPT_DOH_URL.3)

[CURLOPT\_ECH](#CURLOPT_ECH)

Set the configuration for ECH. See [*CURLOPT\_ECH(3)*](/man/os/curl/CURLOPT_ECH.3)

[CURLOPT\_EGDSOCKET](#CURLOPT_EGDSOCKET)

**OBSOLETE** Identify EGD socket for entropy. See [*CURLOPT\_EGDSOCKET(3)*](/man/os/curl/CURLOPT_EGDSOCKET.3)

[CURLOPT\_ERRORBUFFER](#CURLOPT_ERRORBUFFER)

Error message buffer. See [*CURLOPT\_ERRORBUFFER(3)*](/man/os/curl/CURLOPT_ERRORBUFFER.3)

[CURLOPT\_EXPECT\_100\_TIMEOUT\_MS](#CURLOPT_EXPECT_100_TIMEOUT_MS)

100-continue timeout. See [*CURLOPT\_EXPECT\_100\_TIMEOUT\_MS(3)*](/man/os/curl/CURLOPT_EXPECT_100_TIMEOUT_MS.3)

[CURLOPT\_FAILONERROR](#CURLOPT_FAILONERROR)

Fail on HTTP 4xx errors. [*CURLOPT\_FAILONERROR(3)*](/man/os/curl/CURLOPT_FAILONERROR.3)

[CURLOPT\_FILETIME](#CURLOPT_FILETIME)

Request file modification date and time. See [*CURLOPT\_FILETIME(3)*](/man/os/curl/CURLOPT_FILETIME.3)

[CURLOPT\_FNMATCH\_DATA](#CURLOPT_FNMATCH_DATA)

Data pointer to pass to the wildcard matching callback. See [*CURLOPT\_FNMATCH\_DATA(3)*](/man/os/curl/CURLOPT_FNMATCH_DATA.3)

[CURLOPT\_FNMATCH\_FUNCTION](#CURLOPT_FNMATCH_FUNCTION)

Callback for wildcard matching. See [*CURLOPT\_FNMATCH\_FUNCTION(3)*](/man/os/curl/CURLOPT_FNMATCH_FUNCTION.3)

[CURLOPT\_FOLLOWLOCATION](#CURLOPT_FOLLOWLOCATION)

Follow HTTP redirects. See [*CURLOPT\_FOLLOWLOCATION(3)*](/man/os/curl/CURLOPT_FOLLOWLOCATION.3)

[CURLOPT\_FORBID\_REUSE](#CURLOPT_FORBID_REUSE)

Prevent subsequent connections from reusing this. See [*CURLOPT\_FORBID\_REUSE(3)*](/man/os/curl/CURLOPT_FORBID_REUSE.3)

[CURLOPT\_FRESH\_CONNECT](#CURLOPT_FRESH_CONNECT)

Use a new connection. [*CURLOPT\_FRESH\_CONNECT(3)*](/man/os/curl/CURLOPT_FRESH_CONNECT.3)

[CURLOPT\_FTPPORT](#CURLOPT_FTPPORT)

Use active FTP. See [*CURLOPT\_FTPPORT(3)*](/man/os/curl/CURLOPT_FTPPORT.3)

[CURLOPT\_FTPSSLAUTH](#CURLOPT_FTPSSLAUTH)

Control how to do TLS. See [*CURLOPT\_FTPSSLAUTH(3)*](/man/os/curl/CURLOPT_FTPSSLAUTH.3)

[CURLOPT\_FTP\_ACCOUNT](#CURLOPT_FTP_ACCOUNT)

Send ACCT command. See [*CURLOPT\_FTP\_ACCOUNT(3)*](/man/os/curl/CURLOPT_FTP_ACCOUNT.3)

[CURLOPT\_FTP\_ALTERNATIVE\_TO\_USER](#CURLOPT_FTP_ALTERNATIVE_TO_USER)

Alternative to USER. See [*CURLOPT\_FTP\_ALTERNATIVE\_TO\_USER(3)*](/man/os/curl/CURLOPT_FTP_ALTERNATIVE_TO_USER.3)

[CURLOPT\_FTP\_CREATE\_MISSING\_DIRS](#CURLOPT_FTP_CREATE_MISSING_DIRS)

Create missing directories on the remote server. See [*CURLOPT\_FTP\_CREATE\_MISSING\_DIRS(3)*](/man/os/curl/CURLOPT_FTP_CREATE_MISSING_DIRS.3)

[CURLOPT\_FTP\_FILEMETHOD](#CURLOPT_FTP_FILEMETHOD)

Specify how to reach files. See [*CURLOPT\_FTP\_FILEMETHOD(3)*](/man/os/curl/CURLOPT_FTP_FILEMETHOD.3)

[CURLOPT\_FTP\_SKIP\_PASV\_IP](#CURLOPT_FTP_SKIP_PASV_IP)

Ignore the IP address in the PASV response. See [*CURLOPT\_FTP\_SKIP\_PASV\_IP(3)*](/man/os/curl/CURLOPT_FTP_SKIP_PASV_IP.3)

[CURLOPT\_FTP\_SSL\_CCC](#CURLOPT_FTP_SSL_CCC)

Back to non-TLS again after authentication. See [*CURLOPT\_FTP\_SSL\_CCC(3)*](/man/os/curl/CURLOPT_FTP_SSL_CCC.3)

[CURLOPT\_FTP\_USE\_EPRT](#CURLOPT_FTP_USE_EPRT)

Use EPRT. See [*CURLOPT\_FTP\_USE\_EPRT(3)*](/man/os/curl/CURLOPT_FTP_USE_EPRT.3)

[CURLOPT\_FTP\_USE\_EPSV](#CURLOPT_FTP_USE_EPSV)

Use EPSV. See [*CURLOPT\_FTP\_USE\_EPSV(3)*](/man/os/curl/CURLOPT_FTP_USE_EPSV.3)

[CURLOPT\_FTP\_USE\_PRET](#CURLOPT_FTP_USE_PRET)

Use PRET. See [*CURLOPT\_FTP\_USE\_PRET(3)*](/man/os/curl/CURLOPT_FTP_USE_PRET.3)

[CURLOPT\_GSSAPI\_DELEGATION](#CURLOPT_GSSAPI_DELEGATION)

Disable GSS-API delegation. See [*CURLOPT\_GSSAPI\_DELEGATION(3)*](/man/os/curl/CURLOPT_GSSAPI_DELEGATION.3)

[CURLOPT\_HAPPY\_EYEBALLS\_TIMEOUT\_MS](#CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS)

Timeout for happy eyeballs. See [*CURLOPT\_HAPPY\_EYEBALLS\_TIMEOUT\_MS(3)*](/man/os/curl/CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3)

[CURLOPT\_HAPROXYPROTOCOL](#CURLOPT_HAPROXYPROTOCOL)

Send an HAProxy PROXY protocol v1 header. See [*CURLOPT\_HAPROXYPROTOCOL(3)*](/man/os/curl/CURLOPT_HAPROXYPROTOCOL.3)

[CURLOPT\_HAPROXY\_CLIENT\_IP](#CURLOPT_HAPROXY_CLIENT_IP)

Spoof the client IP in an HAProxy PROXY protocol v1 header. See [*CURLOPT\_HAPROXY\_CLIENT\_IP(3)*](/man/os/curl/CURLOPT_HAPROXY_CLIENT_IP.3)

[CURLOPT\_HEADER](#CURLOPT_HEADER)

Include the header in the body output. See [*CURLOPT\_HEADER(3)*](/man/os/curl/CURLOPT_HEADER.3)

[CURLOPT\_HEADERDATA](#CURLOPT_HEADERDATA)

Data pointer to pass to the header callback. See [*CURLOPT\_HEADERDATA(3)*](/man/os/curl/CURLOPT_HEADERDATA.3)

[CURLOPT\_HEADERFUNCTION](#CURLOPT_HEADERFUNCTION)

Callback for writing received headers. See [*CURLOPT\_HEADERFUNCTION(3)*](/man/os/curl/CURLOPT_HEADERFUNCTION.3)

[CURLOPT\_HEADEROPT](#CURLOPT_HEADEROPT)

Control custom headers. See [*CURLOPT\_HEADEROPT(3)*](/man/os/curl/CURLOPT_HEADEROPT.3)

[CURLOPT\_HSTS](#CURLOPT_HSTS)

Set HSTS cache file. See [*CURLOPT\_HSTS(3)*](/man/os/curl/CURLOPT_HSTS.3)

[CURLOPT\_HSTSREADDATA](#CURLOPT_HSTSREADDATA)

Pass pointer to the HSTS read callback. See [*CURLOPT\_HSTSREADDATA(3)*](/man/os/curl/CURLOPT_HSTSREADDATA.3)

[CURLOPT\_HSTSREADFUNCTION](#CURLOPT_HSTSREADFUNCTION)

Set HSTS read callback. See [*CURLOPT\_HSTSREADFUNCTION(3)*](/man/os/curl/CURLOPT_HSTSREADFUNCTION.3)

[CURLOPT\_HSTSWRITEDATA](#CURLOPT_HSTSWRITEDATA)

Pass pointer to the HSTS write callback. See [*CURLOPT\_HSTSWRITEDATA(3)*](/man/os/curl/CURLOPT_HSTSWRITEDATA.3)

[CURLOPT\_HSTSWRITEFUNCTION](#CURLOPT_HSTSWRITEFUNCTION)

Set HSTS write callback. See [*CURLOPT\_HSTSWRITEFUNCTION(3)*](/man/os/curl/CURLOPT_HSTSWRITEFUNCTION.3)

[CURLOPT\_HSTS\_CTRL](#CURLOPT_HSTS_CTRL)

Enable HSTS. See [*CURLOPT\_HSTS\_CTRL(3)*](/man/os/curl/CURLOPT_HSTS_CTRL.3)

[CURLOPT\_HTTP09\_ALLOWED](#CURLOPT_HTTP09_ALLOWED)

Allow HTTP/0.9 responses. [*CURLOPT\_HTTP09\_ALLOWED(3)*](/man/os/curl/CURLOPT_HTTP09_ALLOWED.3)

[CURLOPT\_HTTP200ALIASES](#CURLOPT_HTTP200ALIASES)

Alternative versions of 200 OK. See [*CURLOPT\_HTTP200ALIASES(3)*](/man/os/curl/CURLOPT_HTTP200ALIASES.3)

[CURLOPT\_HTTPAUTH](#CURLOPT_HTTPAUTH)

HTTP server authentication methods. See [*CURLOPT\_HTTPAUTH(3)*](/man/os/curl/CURLOPT_HTTPAUTH.3)

[CURLOPT\_HTTPGET](#CURLOPT_HTTPGET)

Do an HTTP GET request. See [*CURLOPT\_HTTPGET(3)*](/man/os/curl/CURLOPT_HTTPGET.3)

[CURLOPT\_HTTPHEADER](#CURLOPT_HTTPHEADER)

Custom HTTP headers. See [*CURLOPT\_HTTPHEADER(3)*](/man/os/curl/CURLOPT_HTTPHEADER.3)

[CURLOPT\_HTTPPOST](#CURLOPT_HTTPPOST)

**Deprecated option** Multipart formpost HTTP POST. See [*CURLOPT\_HTTPPOST(3)*](/man/os/curl/CURLOPT_HTTPPOST.3)

[CURLOPT\_HTTPPROXYTUNNEL](#CURLOPT_HTTPPROXYTUNNEL)

Tunnel through the HTTP proxy. [*CURLOPT\_HTTPPROXYTUNNEL(3)*](/man/os/curl/CURLOPT_HTTPPROXYTUNNEL.3)

[CURLOPT\_HTTPSIG\_ALGORITHM](#CURLOPT_HTTPSIG_ALGORITHM)

RFC 9421 HTTP Message Signatures algorithm. See [*CURLOPT\_HTTPSIG\_ALGORITHM(3)*](/man/os/curl/CURLOPT_HTTPSIG_ALGORITHM.3)

[CURLOPT\_HTTPSIG\_HEADERS](#CURLOPT_HTTPSIG_HEADERS)

Components to sign for HTTP Message Signatures. See [*CURLOPT\_HTTPSIG\_HEADERS(3)*](/man/os/curl/CURLOPT_HTTPSIG_HEADERS.3)

[CURLOPT\_HTTPSIG\_KEY](#CURLOPT_HTTPSIG_KEY)

Hex-encoded key for HTTP Message Signatures. See [*CURLOPT\_HTTPSIG\_KEY(3)*](/man/os/curl/CURLOPT_HTTPSIG_KEY.3)

[CURLOPT\_HTTPSIG\_KEYID](#CURLOPT_HTTPSIG_KEYID)

Key identifier for HTTP Message Signatures. See [*CURLOPT\_HTTPSIG\_KEYID(3)*](/man/os/curl/CURLOPT_HTTPSIG_KEYID.3)

[CURLOPT\_HTTP\_CONTENT\_DECODING](#CURLOPT_HTTP_CONTENT_DECODING)

Disable Content decoding. See [*CURLOPT\_HTTP\_CONTENT\_DECODING(3)*](/man/os/curl/CURLOPT_HTTP_CONTENT_DECODING.3)

[CURLOPT\_HTTP\_TRANSFER\_DECODING](#CURLOPT_HTTP_TRANSFER_DECODING)

Disable Transfer decoding. See [*CURLOPT\_HTTP\_TRANSFER\_DECODING(3)*](/man/os/curl/CURLOPT_HTTP_TRANSFER_DECODING.3)

[CURLOPT\_HTTP\_VERSION](#CURLOPT_HTTP_VERSION)

HTTP version to use. [*CURLOPT\_HTTP\_VERSION(3)*](/man/os/curl/CURLOPT_HTTP_VERSION.3)

[CURLOPT\_IGNORE\_CONTENT\_LENGTH](#CURLOPT_IGNORE_CONTENT_LENGTH)

Ignore Content-Length. See [*CURLOPT\_IGNORE\_CONTENT\_LENGTH(3)*](/man/os/curl/CURLOPT_IGNORE_CONTENT_LENGTH.3)

[CURLOPT\_INFILESIZE](#CURLOPT_INFILESIZE)

Size of file to send. [*CURLOPT\_INFILESIZE(3)*](/man/os/curl/CURLOPT_INFILESIZE.3)

[CURLOPT\_INFILESIZE\_LARGE](#CURLOPT_INFILESIZE_LARGE)

Size of file to send. [*CURLOPT\_INFILESIZE\_LARGE(3)*](/man/os/curl/CURLOPT_INFILESIZE_LARGE.3)

[CURLOPT\_INTERFACE](#CURLOPT_INTERFACE)

Bind connection locally to this. See [*CURLOPT\_INTERFACE(3)*](/man/os/curl/CURLOPT_INTERFACE.3)

[CURLOPT\_INTERLEAVEDATA](#CURLOPT_INTERLEAVEDATA)

Data pointer to pass to the RTSP interleave callback. See [*CURLOPT\_INTERLEAVEDATA(3)*](/man/os/curl/CURLOPT_INTERLEAVEDATA.3)

[CURLOPT\_INTERLEAVEFUNCTION](#CURLOPT_INTERLEAVEFUNCTION)

Callback for RTSP interleaved data. See [*CURLOPT\_INTERLEAVEFUNCTION(3)*](/man/os/curl/CURLOPT_INTERLEAVEFUNCTION.3)

[CURLOPT\_IOCTLDATA](#CURLOPT_IOCTLDATA)

**Deprecated option** Data pointer to pass to the I/O callback. See [*CURLOPT\_IOCTLDATA(3)*](/man/os/curl/CURLOPT_IOCTLDATA.3)

[CURLOPT\_IOCTLFUNCTION](#CURLOPT_IOCTLFUNCTION)

**Deprecated option** Callback for I/O operations. See [*CURLOPT\_IOCTLFUNCTION(3)*](/man/os/curl/CURLOPT_IOCTLFUNCTION.3)

[CURLOPT\_IPRESOLVE](#CURLOPT_IPRESOLVE)

IP version to use. See [*CURLOPT\_IPRESOLVE(3)*](/man/os/curl/CURLOPT_IPRESOLVE.3)

[CURLOPT\_ISSUERCERT](#CURLOPT_ISSUERCERT)

Issuer certificate. See [*CURLOPT\_ISSUERCERT(3)*](/man/os/curl/CURLOPT_ISSUERCERT.3)

[CURLOPT\_ISSUERCERT\_BLOB](#CURLOPT_ISSUERCERT_BLOB)

Issuer certificate memory buffer. See [*CURLOPT\_ISSUERCERT\_BLOB(3)*](/man/os/curl/CURLOPT_ISSUERCERT_BLOB.3)

[CURLOPT\_KEEP\_SENDING\_ON\_ERROR](#CURLOPT_KEEP_SENDING_ON_ERROR)

Keep sending on HTTP &gt;= 300 errors. [*CURLOPT\_KEEP\_SENDING\_ON\_ERROR(3)*](/man/os/curl/CURLOPT_KEEP_SENDING_ON_ERROR.3)

[CURLOPT\_KEYPASSWD](#CURLOPT_KEYPASSWD)

Client key password. See [*CURLOPT\_KEYPASSWD(3)*](/man/os/curl/CURLOPT_KEYPASSWD.3)

[CURLOPT\_KRBLEVEL](#CURLOPT_KRBLEVEL)

**OBSOLETE**. Kerberos security level. See [*CURLOPT\_KRBLEVEL(3)*](/man/os/curl/CURLOPT_KRBLEVEL.3)

[CURLOPT\_LOCALPORT](#CURLOPT_LOCALPORT)

Bind connection locally to this port. See [*CURLOPT\_LOCALPORT(3)*](/man/os/curl/CURLOPT_LOCALPORT.3)

[CURLOPT\_LOCALPORTRANGE](#CURLOPT_LOCALPORTRANGE)

Bind connection locally to port range. See [*CURLOPT\_LOCALPORTRANGE(3)*](/man/os/curl/CURLOPT_LOCALPORTRANGE.3)

[CURLOPT\_LOGIN\_OPTIONS](#CURLOPT_LOGIN_OPTIONS)

Login options. See [*CURLOPT\_LOGIN\_OPTIONS(3)*](/man/os/curl/CURLOPT_LOGIN_OPTIONS.3)

[CURLOPT\_LOW\_SPEED\_LIMIT](#CURLOPT_LOW_SPEED_LIMIT)

Low speed limit to abort transfer. See [*CURLOPT\_LOW\_SPEED\_LIMIT(3)*](/man/os/curl/CURLOPT_LOW_SPEED_LIMIT.3)

[CURLOPT\_LOW\_SPEED\_TIME](#CURLOPT_LOW_SPEED_TIME)

Time to be below the speed to trigger low speed abort. See [*CURLOPT\_LOW\_SPEED\_TIME(3)*](/man/os/curl/CURLOPT_LOW_SPEED_TIME.3)

[CURLOPT\_MAIL\_AUTH](#CURLOPT_MAIL_AUTH)

Authentication address. See [*CURLOPT\_MAIL\_AUTH(3)*](/man/os/curl/CURLOPT_MAIL_AUTH.3)

[CURLOPT\_MAIL\_FROM](#CURLOPT_MAIL_FROM)

Address of the sender. See [*CURLOPT\_MAIL\_FROM(3)*](/man/os/curl/CURLOPT_MAIL_FROM.3)

[CURLOPT\_MAIL\_RCPT](#CURLOPT_MAIL_RCPT)

Address of the recipients. See [*CURLOPT\_MAIL\_RCPT(3)*](/man/os/curl/CURLOPT_MAIL_RCPT.3)

[CURLOPT\_MAIL\_RCPT\_ALLOWFAILS](#CURLOPT_MAIL_RCPT_ALLOWFAILS)

Allow RCPT TO command to fail for some recipients. See [*CURLOPT\_MAIL\_RCPT\_ALLOWFAILS(3)*](/man/os/curl/CURLOPT_MAIL_RCPT_ALLOWFAILS.3)

[CURLOPT\_MAXAGE\_CONN](#CURLOPT_MAXAGE_CONN)

Limit the age (idle time) of connections for reuse. See [*CURLOPT\_MAXAGE\_CONN(3)*](/man/os/curl/CURLOPT_MAXAGE_CONN.3)

[CURLOPT\_MAXCONNECTS](#CURLOPT_MAXCONNECTS)

Maximum number of connections in the connection pool. See [*CURLOPT\_MAXCONNECTS(3)*](/man/os/curl/CURLOPT_MAXCONNECTS.3)

[CURLOPT\_MAXFILESIZE](#CURLOPT_MAXFILESIZE)

Maximum file size to get. See [*CURLOPT\_MAXFILESIZE(3)*](/man/os/curl/CURLOPT_MAXFILESIZE.3)

[CURLOPT\_MAXFILESIZE\_LARGE](#CURLOPT_MAXFILESIZE_LARGE)

Maximum file size to get. See [*CURLOPT\_MAXFILESIZE\_LARGE(3)*](/man/os/curl/CURLOPT_MAXFILESIZE_LARGE.3)

[CURLOPT\_MAXLIFETIME\_CONN](#CURLOPT_MAXLIFETIME_CONN)

Limit the age (since creation) of connections for reuse. See [*CURLOPT\_MAXLIFETIME\_CONN(3)*](/man/os/curl/CURLOPT_MAXLIFETIME_CONN.3)

[CURLOPT\_MAXREDIRS](#CURLOPT_MAXREDIRS)

Maximum number of redirects to follow. See [*CURLOPT\_MAXREDIRS(3)*](/man/os/curl/CURLOPT_MAXREDIRS.3)

[CURLOPT\_MAX\_RECV\_SPEED\_LARGE](#CURLOPT_MAX_RECV_SPEED_LARGE)

Cap the download speed to this. See [*CURLOPT\_MAX\_RECV\_SPEED\_LARGE(3)*](/man/os/curl/CURLOPT_MAX_RECV_SPEED_LARGE.3)

[CURLOPT\_MAX\_SEND\_SPEED\_LARGE](#CURLOPT_MAX_SEND_SPEED_LARGE)

Cap the upload speed to this. See [*CURLOPT\_MAX\_SEND\_SPEED\_LARGE(3)*](/man/os/curl/CURLOPT_MAX_SEND_SPEED_LARGE.3)

[CURLOPT\_MIMEPOST](#CURLOPT_MIMEPOST)

Post/send MIME data. See [*CURLOPT\_MIMEPOST(3)*](/man/os/curl/CURLOPT_MIMEPOST.3)

[CURLOPT\_MIME\_OPTIONS](#CURLOPT_MIME_OPTIONS)

Set MIME option flags. See [*CURLOPT\_MIME\_OPTIONS(3)*](/man/os/curl/CURLOPT_MIME_OPTIONS.3)

[CURLOPT\_NETRC](#CURLOPT_NETRC)

Enable .netrc parsing. See [*CURLOPT\_NETRC(3)*](/man/os/curl/CURLOPT_NETRC.3)

[CURLOPT\_NETRC\_FILE](#CURLOPT_NETRC_FILE)

.netrc filename. See [*CURLOPT\_NETRC\_FILE(3)*](/man/os/curl/CURLOPT_NETRC_FILE.3)

[CURLOPT\_NEW\_DIRECTORY\_PERMS](#CURLOPT_NEW_DIRECTORY_PERMS)

Mode for creating new remote directories. See [*CURLOPT\_NEW\_DIRECTORY\_PERMS(3)*](/man/os/curl/CURLOPT_NEW_DIRECTORY_PERMS.3)

[CURLOPT\_NEW\_FILE\_PERMS](#CURLOPT_NEW_FILE_PERMS)

Mode for creating new remote files. See [*CURLOPT\_NEW\_FILE\_PERMS(3)*](/man/os/curl/CURLOPT_NEW_FILE_PERMS.3)

[CURLOPT\_NOBODY](#CURLOPT_NOBODY)

Do not get the body contents. See [*CURLOPT\_NOBODY(3)*](/man/os/curl/CURLOPT_NOBODY.3)

[CURLOPT\_NOPROGRESS](#CURLOPT_NOPROGRESS)

Shut off the progress meter. See [*CURLOPT\_NOPROGRESS(3)*](/man/os/curl/CURLOPT_NOPROGRESS.3)

[CURLOPT\_NOPROXY](#CURLOPT_NOPROXY)

Filter out hosts from proxy use. [*CURLOPT\_NOPROXY(3)*](/man/os/curl/CURLOPT_NOPROXY.3)

[CURLOPT\_NOSIGNAL](#CURLOPT_NOSIGNAL)

Do not install signal handlers. See [*CURLOPT\_NOSIGNAL(3)*](/man/os/curl/CURLOPT_NOSIGNAL.3)

[CURLOPT\_OPENSOCKETDATA](#CURLOPT_OPENSOCKETDATA)

Data pointer to pass to the open socket callback. See [*CURLOPT\_OPENSOCKETDATA(3)*](/man/os/curl/CURLOPT_OPENSOCKETDATA.3)

[CURLOPT\_OPENSOCKETFUNCTION](#CURLOPT_OPENSOCKETFUNCTION)

Callback for socket creation. See [*CURLOPT\_OPENSOCKETFUNCTION(3)*](/man/os/curl/CURLOPT_OPENSOCKETFUNCTION.3)

[CURLOPT\_PASSWORD](#CURLOPT_PASSWORD)

Password. See [*CURLOPT\_PASSWORD(3)*](/man/os/curl/CURLOPT_PASSWORD.3)

[CURLOPT\_PATH\_AS\_IS](#CURLOPT_PATH_AS_IS)

Disable squashing /../ and /./ sequences in the path. See [*CURLOPT\_PATH\_AS\_IS(3)*](/man/os/curl/CURLOPT_PATH_AS_IS.3)

[CURLOPT\_PINNEDPUBLICKEY](#CURLOPT_PINNEDPUBLICKEY)

Set pinned SSL public key . See [*CURLOPT\_PINNEDPUBLICKEY(3)*](/man/os/curl/CURLOPT_PINNEDPUBLICKEY.3)

[CURLOPT\_PIPEWAIT](#CURLOPT_PIPEWAIT)

Wait on connection to pipeline on it. See [*CURLOPT\_PIPEWAIT(3)*](/man/os/curl/CURLOPT_PIPEWAIT.3)

[CURLOPT\_PORT](#CURLOPT_PORT)

Port number to connect to. See [*CURLOPT\_PORT(3)*](/man/os/curl/CURLOPT_PORT.3)

[CURLOPT\_POST](#CURLOPT_POST)

Make an HTTP POST. See [*CURLOPT\_POST(3)*](/man/os/curl/CURLOPT_POST.3)

[CURLOPT\_POSTFIELDS](#CURLOPT_POSTFIELDS)

Send a POST with this data - does not copy it. See [*CURLOPT\_POSTFIELDS(3)*](/man/os/curl/CURLOPT_POSTFIELDS.3)

[CURLOPT\_POSTFIELDSIZE](#CURLOPT_POSTFIELDSIZE)

The POST data is this big. See [*CURLOPT\_POSTFIELDSIZE(3)*](/man/os/curl/CURLOPT_POSTFIELDSIZE.3)

[CURLOPT\_POSTFIELDSIZE\_LARGE](#CURLOPT_POSTFIELDSIZE_LARGE)

The POST data is this big. See [*CURLOPT\_POSTFIELDSIZE\_LARGE(3)*](/man/os/curl/CURLOPT_POSTFIELDSIZE_LARGE.3)

[CURLOPT\_POSTQUOTE](#CURLOPT_POSTQUOTE)

Commands to run after transfer. See [*CURLOPT\_POSTQUOTE(3)*](/man/os/curl/CURLOPT_POSTQUOTE.3)

[CURLOPT\_POSTREDIR](#CURLOPT_POSTREDIR)

How to act on redirects after POST. See [*CURLOPT\_POSTREDIR(3)*](/man/os/curl/CURLOPT_POSTREDIR.3)

[CURLOPT\_PREQUOTE](#CURLOPT_PREQUOTE)

Commands to run immediately before transfer. See [*CURLOPT\_PREQUOTE(3)*](/man/os/curl/CURLOPT_PREQUOTE.3)

[CURLOPT\_PREREQDATA](#CURLOPT_PREREQDATA)

Data pointer to pass to the CURLOPT\_PREREQFUNCTION callback. See [*CURLOPT\_PREREQDATA(3)*](/man/os/curl/CURLOPT_PREREQDATA.3)

[CURLOPT\_PREREQFUNCTION](#CURLOPT_PREREQFUNCTION)

Callback to be called after a connection is established but before a request is made on that connection. See [*CURLOPT\_PREREQFUNCTION(3)*](/man/os/curl/CURLOPT_PREREQFUNCTION.3)

[CURLOPT\_PRE\_PROXY](#CURLOPT_PRE_PROXY)

Socks proxy to use. See [*CURLOPT\_PRE\_PROXY(3)*](/man/os/curl/CURLOPT_PRE_PROXY.3)

[CURLOPT\_PRIVATE](#CURLOPT_PRIVATE)

Private pointer to store. See [*CURLOPT\_PRIVATE(3)*](/man/os/curl/CURLOPT_PRIVATE.3)

[CURLOPT\_PROGRESSDATA](#CURLOPT_PROGRESSDATA)

Data pointer to pass to the progress meter callback. See [*CURLOPT\_PROGRESSDATA(3)*](/man/os/curl/CURLOPT_PROGRESSDATA.3)

[CURLOPT\_PROGRESSFUNCTION](#CURLOPT_PROGRESSFUNCTION)

**OBSOLETE** callback for progress meter. See [*CURLOPT\_PROGRESSFUNCTION(3)*](/man/os/curl/CURLOPT_PROGRESSFUNCTION.3)

[CURLOPT\_PROTOCOLS](#CURLOPT_PROTOCOLS)

**Deprecated option** Allowed protocols. See [*CURLOPT\_PROTOCOLS(3)*](/man/os/curl/CURLOPT_PROTOCOLS.3)

[CURLOPT\_PROTOCOLS\_STR](#CURLOPT_PROTOCOLS_STR)

Allowed protocols. See [*CURLOPT\_PROTOCOLS\_STR(3)*](/man/os/curl/CURLOPT_PROTOCOLS_STR.3)

[CURLOPT\_PROXY](#CURLOPT_PROXY)

Proxy to use. See [*CURLOPT\_PROXY(3)*](/man/os/curl/CURLOPT_PROXY.3)

[CURLOPT\_PROXYAUTH](#CURLOPT_PROXYAUTH)

HTTP proxy authentication methods. See [*CURLOPT\_PROXYAUTH(3)*](/man/os/curl/CURLOPT_PROXYAUTH.3)

[CURLOPT\_PROXYHEADER](#CURLOPT_PROXYHEADER)

Custom HTTP headers sent to proxy. See [*CURLOPT\_PROXYHEADER(3)*](/man/os/curl/CURLOPT_PROXYHEADER.3)

[CURLOPT\_PROXYPASSWORD](#CURLOPT_PROXYPASSWORD)

Proxy password. See [*CURLOPT\_PROXYPASSWORD(3)*](/man/os/curl/CURLOPT_PROXYPASSWORD.3)

[CURLOPT\_PROXYPORT](#CURLOPT_PROXYPORT)

Proxy port to use. See [*CURLOPT\_PROXYPORT(3)*](/man/os/curl/CURLOPT_PROXYPORT.3)

[CURLOPT\_PROXYTYPE](#CURLOPT_PROXYTYPE)

Proxy type. See [*CURLOPT\_PROXYTYPE(3)*](/man/os/curl/CURLOPT_PROXYTYPE.3)

[CURLOPT\_PROXYUSERNAME](#CURLOPT_PROXYUSERNAME)

Proxy username. See [*CURLOPT\_PROXYUSERNAME(3)*](/man/os/curl/CURLOPT_PROXYUSERNAME.3)

[CURLOPT\_PROXYUSERPWD](#CURLOPT_PROXYUSERPWD)

Proxy username and password. See [*CURLOPT\_PROXYUSERPWD(3)*](/man/os/curl/CURLOPT_PROXYUSERPWD.3)

[CURLOPT\_PROXY\_CAINFO](#CURLOPT_PROXY_CAINFO)

Proxy CA cert bundle. See [*CURLOPT\_PROXY\_CAINFO(3)*](/man/os/curl/CURLOPT_PROXY_CAINFO.3)

[CURLOPT\_PROXY\_CAINFO\_BLOB](#CURLOPT_PROXY_CAINFO_BLOB)

Proxy CA cert bundle memory buffer. See [*CURLOPT\_PROXY\_CAINFO\_BLOB(3)*](/man/os/curl/CURLOPT_PROXY_CAINFO_BLOB.3)

[CURLOPT\_PROXY\_CAPATH](#CURLOPT_PROXY_CAPATH)

Path to proxy CA cert bundle. See [*CURLOPT\_PROXY\_CAPATH(3)*](/man/os/curl/CURLOPT_PROXY_CAPATH.3)

[CURLOPT\_PROXY\_CRLFILE](#CURLOPT_PROXY_CRLFILE)

Proxy Certificate Revocation List. See [*CURLOPT\_PROXY\_CRLFILE(3)*](/man/os/curl/CURLOPT_PROXY_CRLFILE.3)

[CURLOPT\_PROXY\_ISSUERCERT](#CURLOPT_PROXY_ISSUERCERT)

Proxy issuer certificate. See [*CURLOPT\_PROXY\_ISSUERCERT(3)*](/man/os/curl/CURLOPT_PROXY_ISSUERCERT.3)

[CURLOPT\_PROXY\_ISSUERCERT\_BLOB](#CURLOPT_PROXY_ISSUERCERT_BLOB)

Proxy issuer certificate memory buffer. See [*CURLOPT\_PROXY\_ISSUERCERT\_BLOB(3)*](/man/os/curl/CURLOPT_PROXY_ISSUERCERT_BLOB.3)

[CURLOPT\_PROXY\_KEYPASSWD](#CURLOPT_PROXY_KEYPASSWD)

Proxy client key password. See [*CURLOPT\_PROXY\_KEYPASSWD(3)*](/man/os/curl/CURLOPT_PROXY_KEYPASSWD.3)

[CURLOPT\_PROXY\_PINNEDPUBLICKEY](#CURLOPT_PROXY_PINNEDPUBLICKEY)

Set the proxy's pinned SSL public key. See [*CURLOPT\_PROXY\_PINNEDPUBLICKEY(3)*](/man/os/curl/CURLOPT_PROXY_PINNEDPUBLICKEY.3)

[CURLOPT\_PROXY\_SERVICE\_NAME](#CURLOPT_PROXY_SERVICE_NAME)

Proxy authentication service name. [*CURLOPT\_PROXY\_SERVICE\_NAME(3)*](/man/os/curl/CURLOPT_PROXY_SERVICE_NAME.3)

[CURLOPT\_PROXY\_SSLCERT](#CURLOPT_PROXY_SSLCERT)

Proxy client cert. See [*CURLOPT\_PROXY\_SSLCERT(3)*](/man/os/curl/CURLOPT_PROXY_SSLCERT.3)

[CURLOPT\_PROXY\_SSLCERTTYPE](#CURLOPT_PROXY_SSLCERTTYPE)

Proxy client cert type. See [*CURLOPT\_PROXY\_SSLCERTTYPE(3)*](/man/os/curl/CURLOPT_PROXY_SSLCERTTYPE.3)

[CURLOPT\_PROXY\_SSLCERT\_BLOB](#CURLOPT_PROXY_SSLCERT_BLOB)

Proxy client cert memory buffer. See [*CURLOPT\_PROXY\_SSLCERT\_BLOB(3)*](/man/os/curl/CURLOPT_PROXY_SSLCERT_BLOB.3)

[CURLOPT\_PROXY\_SSLKEY](#CURLOPT_PROXY_SSLKEY)

Proxy client key. See [*CURLOPT\_PROXY\_SSLKEY(3)*](/man/os/curl/CURLOPT_PROXY_SSLKEY.3)

[CURLOPT\_PROXY\_SSLKEYTYPE](#CURLOPT_PROXY_SSLKEYTYPE)

Proxy client key type. See [*CURLOPT\_PROXY\_SSLKEYTYPE(3)*](/man/os/curl/CURLOPT_PROXY_SSLKEYTYPE.3)

[CURLOPT\_PROXY\_SSLKEY\_BLOB](#CURLOPT_PROXY_SSLKEY_BLOB)

Proxy client key. See [*CURLOPT\_PROXY\_SSLKEY\_BLOB(3)*](/man/os/curl/CURLOPT_PROXY_SSLKEY_BLOB.3)

[CURLOPT\_PROXY\_SSLVERSION](#CURLOPT_PROXY_SSLVERSION)

Proxy SSL version to use. See [*CURLOPT\_PROXY\_SSLVERSION(3)*](/man/os/curl/CURLOPT_PROXY_SSLVERSION.3)

[CURLOPT\_PROXY\_SSL\_CIPHER\_LIST](#CURLOPT_PROXY_SSL_CIPHER_LIST)

Proxy ciphers to use. See [*CURLOPT\_PROXY\_SSL\_CIPHER\_LIST(3)*](/man/os/curl/CURLOPT_PROXY_SSL_CIPHER_LIST.3)

[CURLOPT\_PROXY\_SSL\_OPTIONS](#CURLOPT_PROXY_SSL_OPTIONS)

Control proxy SSL behavior. See [*CURLOPT\_PROXY\_SSL\_OPTIONS(3)*](/man/os/curl/CURLOPT_PROXY_SSL_OPTIONS.3)

[CURLOPT\_PROXY\_SSL\_VERIFYHOST](#CURLOPT_PROXY_SSL_VERIFYHOST)

Verify the hostname in the proxy SSL certificate. See [*CURLOPT\_PROXY\_SSL\_VERIFYHOST(3)*](/man/os/curl/CURLOPT_PROXY_SSL_VERIFYHOST.3)

[CURLOPT\_PROXY\_SSL\_VERIFYPEER](#CURLOPT_PROXY_SSL_VERIFYPEER)

Verify the proxy SSL certificate. See [*CURLOPT\_PROXY\_SSL\_VERIFYPEER(3)*](/man/os/curl/CURLOPT_PROXY_SSL_VERIFYPEER.3)

[CURLOPT\_PROXY\_TLS13\_CIPHERS](#CURLOPT_PROXY_TLS13_CIPHERS)

Proxy TLS 1.3 cipher suites to use. See [*CURLOPT\_PROXY\_TLS13\_CIPHERS(3)*](/man/os/curl/CURLOPT_PROXY_TLS13_CIPHERS.3)

[CURLOPT\_PROXY\_TLSAUTH\_PASSWORD](#CURLOPT_PROXY_TLSAUTH_PASSWORD)

**Deprecated option**. Proxy TLS authentication password. See [*CURLOPT\_PROXY\_TLSAUTH\_PASSWORD(3)*](/man/os/curl/CURLOPT_PROXY_TLSAUTH_PASSWORD.3)

[CURLOPT\_PROXY\_TLSAUTH\_TYPE](#CURLOPT_PROXY_TLSAUTH_TYPE)

**Deprecated option**. Proxy TLS authentication methods. See [*CURLOPT\_PROXY\_TLSAUTH\_TYPE(3)*](/man/os/curl/CURLOPT_PROXY_TLSAUTH_TYPE.3)

[CURLOPT\_PROXY\_TLSAUTH\_USERNAME](#CURLOPT_PROXY_TLSAUTH_USERNAME)

**Deprecated option**. Proxy TLS authentication username. See [*CURLOPT\_PROXY\_TLSAUTH\_USERNAME(3)*](/man/os/curl/CURLOPT_PROXY_TLSAUTH_USERNAME.3)

[CURLOPT\_PROXY\_TRANSFER\_MODE](#CURLOPT_PROXY_TRANSFER_MODE)

Add transfer mode to URL over proxy. See [*CURLOPT\_PROXY\_TRANSFER\_MODE(3)*](/man/os/curl/CURLOPT_PROXY_TRANSFER_MODE.3)

[CURLOPT\_PUT](#CURLOPT_PUT)

**Deprecated option** Issue an HTTP PUT request. See [*CURLOPT\_PUT(3)*](/man/os/curl/CURLOPT_PUT.3)

[CURLOPT\_QUICK\_EXIT](#CURLOPT_QUICK_EXIT)

To be set by toplevel tools like "curl" to skip lengthy cleanups when they are about to call exit() anyway. See [*CURLOPT\_QUICK\_EXIT(3)*](/man/os/curl/CURLOPT_QUICK_EXIT.3)

[CURLOPT\_QUOTE](#CURLOPT_QUOTE)

Commands to run before transfer. See [*CURLOPT\_QUOTE(3)*](/man/os/curl/CURLOPT_QUOTE.3)

[CURLOPT\_RANDOM\_FILE](#CURLOPT_RANDOM_FILE)

**OBSOLETE** Provide source for entropy random data. See [*CURLOPT\_RANDOM\_FILE(3)*](/man/os/curl/CURLOPT_RANDOM_FILE.3)

[CURLOPT\_RANGE](#CURLOPT_RANGE)

Range requests. See [*CURLOPT\_RANGE(3)*](/man/os/curl/CURLOPT_RANGE.3)

[CURLOPT\_READDATA](#CURLOPT_READDATA)

Data pointer to pass to the read callback. See [*CURLOPT\_READDATA(3)*](/man/os/curl/CURLOPT_READDATA.3)

[CURLOPT\_READFUNCTION](#CURLOPT_READFUNCTION)

Callback for reading data. See [*CURLOPT\_READFUNCTION(3)*](/man/os/curl/CURLOPT_READFUNCTION.3)

[CURLOPT\_REDIR\_PROTOCOLS](#CURLOPT_REDIR_PROTOCOLS)

**Deprecated option** Protocols to allow redirects to. See [*CURLOPT\_REDIR\_PROTOCOLS(3)*](/man/os/curl/CURLOPT_REDIR_PROTOCOLS.3)

[CURLOPT\_REDIR\_PROTOCOLS\_STR](#CURLOPT_REDIR_PROTOCOLS_STR)

Protocols to allow redirects to. See [*CURLOPT\_REDIR\_PROTOCOLS\_STR(3)*](/man/os/curl/CURLOPT_REDIR_PROTOCOLS_STR.3)

[CURLOPT\_REFERER](#CURLOPT_REFERER)

Referer: header. See [*CURLOPT\_REFERER(3)*](/man/os/curl/CURLOPT_REFERER.3)

[CURLOPT\_REQUEST\_TARGET](#CURLOPT_REQUEST_TARGET)

Set the request target. [*CURLOPT\_REQUEST\_TARGET(3)*](/man/os/curl/CURLOPT_REQUEST_TARGET.3)

[CURLOPT\_RESOLVE](#CURLOPT_RESOLVE)

Provide fixed/fake name resolves. See [*CURLOPT\_RESOLVE(3)*](/man/os/curl/CURLOPT_RESOLVE.3)

[CURLOPT\_RESOLVER\_START\_DATA](#CURLOPT_RESOLVER_START_DATA)

Data pointer to pass to resolver start callback. See [*CURLOPT\_RESOLVER\_START\_DATA(3)*](/man/os/curl/CURLOPT_RESOLVER_START_DATA.3)

[CURLOPT\_RESOLVER\_START\_FUNCTION](#CURLOPT_RESOLVER_START_FUNCTION)

Callback to be called before a new resolve request is started. See [*CURLOPT\_RESOLVER\_START\_FUNCTION(3)*](/man/os/curl/CURLOPT_RESOLVER_START_FUNCTION.3)

[CURLOPT\_RESUME\_FROM](#CURLOPT_RESUME_FROM)

Resume a transfer. See [*CURLOPT\_RESUME\_FROM(3)*](/man/os/curl/CURLOPT_RESUME_FROM.3)

[CURLOPT\_RESUME\_FROM\_LARGE](#CURLOPT_RESUME_FROM_LARGE)

Resume a transfer. See [*CURLOPT\_RESUME\_FROM\_LARGE(3)*](/man/os/curl/CURLOPT_RESUME_FROM_LARGE.3)

[CURLOPT\_RTSP\_CLIENT\_CSEQ](#CURLOPT_RTSP_CLIENT_CSEQ)

Client CSEQ number. See [*CURLOPT\_RTSP\_CLIENT\_CSEQ(3)*](/man/os/curl/CURLOPT_RTSP_CLIENT_CSEQ.3)

[CURLOPT\_RTSP\_REQUEST](#CURLOPT_RTSP_REQUEST)

RTSP request. See [*CURLOPT\_RTSP\_REQUEST(3)*](/man/os/curl/CURLOPT_RTSP_REQUEST.3)

[CURLOPT\_RTSP\_SERVER\_CSEQ](#CURLOPT_RTSP_SERVER_CSEQ)

CSEQ number for RTSP Server-&gt;Client request. See [*CURLOPT\_RTSP\_SERVER\_CSEQ(3)*](/man/os/curl/CURLOPT_RTSP_SERVER_CSEQ.3)

[CURLOPT\_RTSP\_SESSION\_ID](#CURLOPT_RTSP_SESSION_ID)

RTSP session-id. See [*CURLOPT\_RTSP\_SESSION\_ID(3)*](/man/os/curl/CURLOPT_RTSP_SESSION_ID.3)

[CURLOPT\_RTSP\_STREAM\_URI](#CURLOPT_RTSP_STREAM_URI)

RTSP stream URI. See [*CURLOPT\_RTSP\_STREAM\_URI(3)*](/man/os/curl/CURLOPT_RTSP_STREAM_URI.3)

[CURLOPT\_RTSP\_TRANSPORT](#CURLOPT_RTSP_TRANSPORT)

RTSP Transport: header. See [*CURLOPT\_RTSP\_TRANSPORT(3)*](/man/os/curl/CURLOPT_RTSP_TRANSPORT.3)

[CURLOPT\_SASL\_AUTHZID](#CURLOPT_SASL_AUTHZID)

SASL authorization identity (identity to act as). See [*CURLOPT\_SASL\_AUTHZID(3)*](/man/os/curl/CURLOPT_SASL_AUTHZID.3)

[CURLOPT\_SASL\_IR](#CURLOPT_SASL_IR)

Enable SASL initial response. See [*CURLOPT\_SASL\_IR(3)*](/man/os/curl/CURLOPT_SASL_IR.3)

[CURLOPT\_SEEKDATA](#CURLOPT_SEEKDATA)

Data pointer to pass to the seek callback. See [*CURLOPT\_SEEKDATA(3)*](/man/os/curl/CURLOPT_SEEKDATA.3)

[CURLOPT\_SEEKFUNCTION](#CURLOPT_SEEKFUNCTION)

Callback for seek operations. See [*CURLOPT\_SEEKFUNCTION(3)*](/man/os/curl/CURLOPT_SEEKFUNCTION.3)

[CURLOPT\_SERVER\_RESPONSE\_TIMEOUT](#CURLOPT_SERVER_RESPONSE_TIMEOUT)

Timeout for server responses. See [*CURLOPT\_SERVER\_RESPONSE\_TIMEOUT(3)*](/man/os/curl/CURLOPT_SERVER_RESPONSE_TIMEOUT.3)

[CURLOPT\_SERVER\_RESPONSE\_TIMEOUT\_MS](#CURLOPT_SERVER_RESPONSE_TIMEOUT_MS)

Timeout for server responses. See [*CURLOPT\_SERVER\_RESPONSE\_TIMEOUT\_MS(3)*](/man/os/curl/CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.3)

[CURLOPT\_SERVICE\_NAME](#CURLOPT_SERVICE_NAME)

Authentication service name. [*CURLOPT\_SERVICE\_NAME(3)*](/man/os/curl/CURLOPT_SERVICE_NAME.3)

[CURLOPT\_SHARE](#CURLOPT_SHARE)

Share object to use. See [*CURLOPT\_SHARE(3)*](/man/os/curl/CURLOPT_SHARE.3)

[CURLOPT\_SOCKOPTDATA](#CURLOPT_SOCKOPTDATA)

Data pointer to pass to the sockopt callback. See [*CURLOPT\_SOCKOPTDATA(3)*](/man/os/curl/CURLOPT_SOCKOPTDATA.3)

[CURLOPT\_SOCKOPTFUNCTION](#CURLOPT_SOCKOPTFUNCTION)

Callback for sockopt operations. See [*CURLOPT\_SOCKOPTFUNCTION(3)*](/man/os/curl/CURLOPT_SOCKOPTFUNCTION.3)

[CURLOPT\_SOCKS5\_AUTH](#CURLOPT_SOCKS5_AUTH)

Socks5 authentication methods. See [*CURLOPT\_SOCKS5\_AUTH(3)*](/man/os/curl/CURLOPT_SOCKS5_AUTH.3)

[CURLOPT\_SOCKS5\_GSSAPI\_NEC](#CURLOPT_SOCKS5_GSSAPI_NEC)

Socks5 GSSAPI NEC mode. See [*CURLOPT\_SOCKS5\_GSSAPI\_NEC(3)*](/man/os/curl/CURLOPT_SOCKS5_GSSAPI_NEC.3)

[CURLOPT\_SOCKS5\_GSSAPI\_SERVICE](#CURLOPT_SOCKS5_GSSAPI_SERVICE)

**Deprecated option** Socks5 GSSAPI service name. See [*CURLOPT\_SOCKS5\_GSSAPI\_SERVICE(3)*](/man/os/curl/CURLOPT_SOCKS5_GSSAPI_SERVICE.3)

[CURLOPT\_SSH\_AUTH\_TYPES](#CURLOPT_SSH_AUTH_TYPES)

SSH authentication types. See [*CURLOPT\_SSH\_AUTH\_TYPES(3)*](/man/os/curl/CURLOPT_SSH_AUTH_TYPES.3)

[CURLOPT\_SSH\_COMPRESSION](#CURLOPT_SSH_COMPRESSION)

Enable SSH compression. See [*CURLOPT\_SSH\_COMPRESSION(3)*](/man/os/curl/CURLOPT_SSH_COMPRESSION.3)

[CURLOPT\_SSH\_HOSTKEYDATA](#CURLOPT_SSH_HOSTKEYDATA)

Custom pointer to pass to ssh host key callback. See [*CURLOPT\_SSH\_HOSTKEYDATA(3)*](/man/os/curl/CURLOPT_SSH_HOSTKEYDATA.3)

[CURLOPT\_SSH\_HOSTKEYFUNCTION](#CURLOPT_SSH_HOSTKEYFUNCTION)

Callback for checking host key handling. See [*CURLOPT\_SSH\_HOSTKEYFUNCTION(3)*](/man/os/curl/CURLOPT_SSH_HOSTKEYFUNCTION.3)

[CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_MD5](#CURLOPT_SSH_HOST_PUBLIC_KEY_MD5)

MD5 of host's public key. See [*CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_MD5(3)*](/man/os/curl/CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3)

[CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_SHA256](#CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256)

SHA256 of host's public key. See [*CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_SHA256(3)*](/man/os/curl/CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.3)

[CURLOPT\_SSH\_KEYDATA](#CURLOPT_SSH_KEYDATA)

Custom pointer to pass to ssh key callback. See [*CURLOPT\_SSH\_KEYDATA(3)*](/man/os/curl/CURLOPT_SSH_KEYDATA.3)

[CURLOPT\_SSH\_KEYFUNCTION](#CURLOPT_SSH_KEYFUNCTION)

Callback for known hosts handling. See [*CURLOPT\_SSH\_KEYFUNCTION(3)*](/man/os/curl/CURLOPT_SSH_KEYFUNCTION.3)

[CURLOPT\_SSH\_KNOWNHOSTS](#CURLOPT_SSH_KNOWNHOSTS)

Filename with known hosts. See [*CURLOPT\_SSH\_KNOWNHOSTS(3)*](/man/os/curl/CURLOPT_SSH_KNOWNHOSTS.3)

[CURLOPT\_SSH\_PRIVATE\_KEYFILE](#CURLOPT_SSH_PRIVATE_KEYFILE)

Filename of the private key. See [*CURLOPT\_SSH\_PRIVATE\_KEYFILE(3)*](/man/os/curl/CURLOPT_SSH_PRIVATE_KEYFILE.3)

[CURLOPT\_SSH\_PUBLIC\_KEYFILE](#CURLOPT_SSH_PUBLIC_KEYFILE)

Filename of the public key. See [*CURLOPT\_SSH\_PUBLIC\_KEYFILE(3)*](/man/os/curl/CURLOPT_SSH_PUBLIC_KEYFILE.3)

[CURLOPT\_SSLCERT](#CURLOPT_SSLCERT)

Client cert. See [*CURLOPT\_SSLCERT(3)*](/man/os/curl/CURLOPT_SSLCERT.3)

[CURLOPT\_SSLCERTTYPE](#CURLOPT_SSLCERTTYPE)

Client cert type. See [*CURLOPT\_SSLCERTTYPE(3)*](/man/os/curl/CURLOPT_SSLCERTTYPE.3)

[CURLOPT\_SSLCERT\_BLOB](#CURLOPT_SSLCERT_BLOB)

Client cert memory buffer. See [*CURLOPT\_SSLCERT\_BLOB(3)*](/man/os/curl/CURLOPT_SSLCERT_BLOB.3)

[CURLOPT\_SSLENGINE](#CURLOPT_SSLENGINE)

Use identifier with SSL engine. See [*CURLOPT\_SSLENGINE(3)*](/man/os/curl/CURLOPT_SSLENGINE.3)

[CURLOPT\_SSLENGINE\_DEFAULT](#CURLOPT_SSLENGINE_DEFAULT)

Default SSL engine. See [*CURLOPT\_SSLENGINE\_DEFAULT(3)*](/man/os/curl/CURLOPT_SSLENGINE_DEFAULT.3)

[CURLOPT\_SSLKEY](#CURLOPT_SSLKEY)

Client key. See [*CURLOPT\_SSLKEY(3)*](/man/os/curl/CURLOPT_SSLKEY.3)

[CURLOPT\_SSLKEYTYPE](#CURLOPT_SSLKEYTYPE)

Client key type. See [*CURLOPT\_SSLKEYTYPE(3)*](/man/os/curl/CURLOPT_SSLKEYTYPE.3)

[CURLOPT\_SSLKEY\_BLOB](#CURLOPT_SSLKEY_BLOB)

Client key memory buffer. See [*CURLOPT\_SSLKEY\_BLOB(3)*](/man/os/curl/CURLOPT_SSLKEY_BLOB.3)

[CURLOPT\_SSLVERSION](#CURLOPT_SSLVERSION)

SSL version to use. See [*CURLOPT\_SSLVERSION(3)*](/man/os/curl/CURLOPT_SSLVERSION.3)

[CURLOPT\_SSL\_CIPHER\_LIST](#CURLOPT_SSL_CIPHER_LIST)

Ciphers to use. See [*CURLOPT\_SSL\_CIPHER\_LIST(3)*](/man/os/curl/CURLOPT_SSL_CIPHER_LIST.3)

[CURLOPT\_SSL\_CTX\_DATA](#CURLOPT_SSL_CTX_DATA)

Data pointer to pass to the SSL context callback. See [*CURLOPT\_SSL\_CTX\_DATA(3)*](/man/os/curl/CURLOPT_SSL_CTX_DATA.3)

[CURLOPT\_SSL\_CTX\_FUNCTION](#CURLOPT_SSL_CTX_FUNCTION)

Callback for SSL context logic. See [*CURLOPT\_SSL\_CTX\_FUNCTION(3)*](/man/os/curl/CURLOPT_SSL_CTX_FUNCTION.3)

[CURLOPT\_SSL\_EC\_CURVES](#CURLOPT_SSL_EC_CURVES)

Set key exchange curves. See [*CURLOPT\_SSL\_EC\_CURVES(3)*](/man/os/curl/CURLOPT_SSL_EC_CURVES.3)

[CURLOPT\_SSL\_ENABLE\_ALPN](#CURLOPT_SSL_ENABLE_ALPN)

Enable use of ALPN. See [*CURLOPT\_SSL\_ENABLE\_ALPN(3)*](/man/os/curl/CURLOPT_SSL_ENABLE_ALPN.3)

[CURLOPT\_SSL\_ENABLE\_NPN](#CURLOPT_SSL_ENABLE_NPN)

**OBSOLETE** Enable use of NPN. See [*CURLOPT\_SSL\_ENABLE\_NPN(3)*](/man/os/curl/CURLOPT_SSL_ENABLE_NPN.3)

[CURLOPT\_SSL\_FALSESTART](#CURLOPT_SSL_FALSESTART)

**Deprecated option** Enable TLS False Start. See [*CURLOPT\_SSL\_FALSESTART(3)*](/man/os/curl/CURLOPT_SSL_FALSESTART.3)

[CURLOPT\_SSL\_OPTIONS](#CURLOPT_SSL_OPTIONS)

Control SSL behavior. See [*CURLOPT\_SSL\_OPTIONS(3)*](/man/os/curl/CURLOPT_SSL_OPTIONS.3)

[CURLOPT\_SSL\_SESSIONID\_CACHE](#CURLOPT_SSL_SESSIONID_CACHE)

Disable SSL session-id cache. See [*CURLOPT\_SSL\_SESSIONID\_CACHE(3)*](/man/os/curl/CURLOPT_SSL_SESSIONID_CACHE.3)

[CURLOPT\_SSL\_SIGNATURE\_ALGORITHMS](#CURLOPT_SSL_SIGNATURE_ALGORITHMS)

TLS signature algorithms to use. See [*CURLOPT\_SSL\_SIGNATURE\_ALGORITHMS(3)*](/man/os/curl/CURLOPT_SSL_SIGNATURE_ALGORITHMS.3)

[CURLOPT\_SSL\_VERIFYHOST](#CURLOPT_SSL_VERIFYHOST)

Verify the hostname in the SSL certificate. See [*CURLOPT\_SSL\_VERIFYHOST(3)*](/man/os/curl/CURLOPT_SSL_VERIFYHOST.3)

[CURLOPT\_SSL\_VERIFYPEER](#CURLOPT_SSL_VERIFYPEER)

Verify the SSL certificate. See [*CURLOPT\_SSL\_VERIFYPEER(3)*](/man/os/curl/CURLOPT_SSL_VERIFYPEER.3)

[CURLOPT\_SSL\_VERIFYSTATUS](#CURLOPT_SSL_VERIFYSTATUS)

Verify the SSL certificate's status. See [*CURLOPT\_SSL\_VERIFYSTATUS(3)*](/man/os/curl/CURLOPT_SSL_VERIFYSTATUS.3)

[CURLOPT\_STDERR](#CURLOPT_STDERR)

Redirect stderr to another stream. See [*CURLOPT\_STDERR(3)*](/man/os/curl/CURLOPT_STDERR.3)

[CURLOPT\_STREAM\_DEPENDS](#CURLOPT_STREAM_DEPENDS)

**Deprecated option** This HTTP/2 stream depends on another. See [*CURLOPT\_STREAM\_DEPENDS(3)*](/man/os/curl/CURLOPT_STREAM_DEPENDS.3)

[CURLOPT\_STREAM\_DEPENDS\_E](#CURLOPT_STREAM_DEPENDS_E)

**Deprecated option** This HTTP/2 stream depends on another exclusively. See [*CURLOPT\_STREAM\_DEPENDS\_E(3)*](/man/os/curl/CURLOPT_STREAM_DEPENDS_E.3)

[CURLOPT\_STREAM\_WEIGHT](#CURLOPT_STREAM_WEIGHT)

Set this HTTP/2 stream's weight. See [*CURLOPT\_STREAM\_WEIGHT(3)*](/man/os/curl/CURLOPT_STREAM_WEIGHT.3)

[CURLOPT\_SUPPRESS\_CONNECT\_HEADERS](#CURLOPT_SUPPRESS_CONNECT_HEADERS)

Suppress proxy CONNECT response headers from user callbacks. See [*CURLOPT\_SUPPRESS\_CONNECT\_HEADERS(3)*](/man/os/curl/CURLOPT_SUPPRESS_CONNECT_HEADERS.3)

[CURLOPT\_TCP\_FASTOPEN](#CURLOPT_TCP_FASTOPEN)

Enable TCP Fast Open. See [*CURLOPT\_TCP\_FASTOPEN(3)*](/man/os/curl/CURLOPT_TCP_FASTOPEN.3)

[CURLOPT\_TCP\_KEEPALIVE](#CURLOPT_TCP_KEEPALIVE)

Enable TCP keep-alive. See [*CURLOPT\_TCP\_KEEPALIVE(3)*](/man/os/curl/CURLOPT_TCP_KEEPALIVE.3)

[CURLOPT\_TCP\_KEEPCNT](#CURLOPT_TCP_KEEPCNT)

Maximum number of keep-alive probes. See [*CURLOPT\_TCP\_KEEPCNT(3)*](/man/os/curl/CURLOPT_TCP_KEEPCNT.3)

[CURLOPT\_TCP\_KEEPIDLE](#CURLOPT_TCP_KEEPIDLE)

Idle time before sending keep-alive. See [*CURLOPT\_TCP\_KEEPIDLE(3)*](/man/os/curl/CURLOPT_TCP_KEEPIDLE.3)

[CURLOPT\_TCP\_KEEPINTVL](#CURLOPT_TCP_KEEPINTVL)

Interval between keep-alive probes. See [*CURLOPT\_TCP\_KEEPINTVL(3)*](/man/os/curl/CURLOPT_TCP_KEEPINTVL.3)

[CURLOPT\_TCP\_NODELAY](#CURLOPT_TCP_NODELAY)

Disable the Nagle algorithm. See [*CURLOPT\_TCP\_NODELAY(3)*](/man/os/curl/CURLOPT_TCP_NODELAY.3)

[CURLOPT\_TELNETOPTIONS](#CURLOPT_TELNETOPTIONS)

TELNET options. See [*CURLOPT\_TELNETOPTIONS(3)*](/man/os/curl/CURLOPT_TELNETOPTIONS.3)

[CURLOPT\_TFTP\_BLKSIZE](#CURLOPT_TFTP_BLKSIZE)

TFTP block size. See [*CURLOPT\_TFTP\_BLKSIZE(3)*](/man/os/curl/CURLOPT_TFTP_BLKSIZE.3)

[CURLOPT\_TFTP\_NO\_OPTIONS](#CURLOPT_TFTP_NO_OPTIONS)

Do not send TFTP options requests. See [*CURLOPT\_TFTP\_NO\_OPTIONS(3)*](/man/os/curl/CURLOPT_TFTP_NO_OPTIONS.3)

[CURLOPT\_TIMECONDITION](#CURLOPT_TIMECONDITION)

Make a time conditional request. See [*CURLOPT\_TIMECONDITION(3)*](/man/os/curl/CURLOPT_TIMECONDITION.3)

[CURLOPT\_TIMEOUT](#CURLOPT_TIMEOUT)

Timeout for the entire request. See [*CURLOPT\_TIMEOUT(3)*](/man/os/curl/CURLOPT_TIMEOUT.3)

[CURLOPT\_TIMEOUT\_MS](#CURLOPT_TIMEOUT_MS)

Millisecond timeout for the entire request. See [*CURLOPT\_TIMEOUT\_MS(3)*](/man/os/curl/CURLOPT_TIMEOUT_MS.3)

[CURLOPT\_TIMEVALUE](#CURLOPT_TIMEVALUE)

Time value for the time conditional request. See [*CURLOPT\_TIMEVALUE(3)*](/man/os/curl/CURLOPT_TIMEVALUE.3)

[CURLOPT\_TIMEVALUE\_LARGE](#CURLOPT_TIMEVALUE_LARGE)

Time value for the time conditional request. See [*CURLOPT\_TIMEVALUE\_LARGE(3)*](/man/os/curl/CURLOPT_TIMEVALUE_LARGE.3)

[CURLOPT\_TLS13\_CIPHERS](#CURLOPT_TLS13_CIPHERS)

TLS 1.3 cipher suites to use. See [*CURLOPT\_TLS13\_CIPHERS(3)*](/man/os/curl/CURLOPT_TLS13_CIPHERS.3)

[CURLOPT\_TLSAUTH\_PASSWORD](#CURLOPT_TLSAUTH_PASSWORD)

**Deprecated option**. TLS authentication password. See [*CURLOPT\_TLSAUTH\_PASSWORD(3)*](/man/os/curl/CURLOPT_TLSAUTH_PASSWORD.3)

[CURLOPT\_TLSAUTH\_TYPE](#CURLOPT_TLSAUTH_TYPE)

**Deprecated option**. TLS authentication methods. See [*CURLOPT\_TLSAUTH\_TYPE(3)*](/man/os/curl/CURLOPT_TLSAUTH_TYPE.3)

[CURLOPT\_TLSAUTH\_USERNAME](#CURLOPT_TLSAUTH_USERNAME)

**Deprecated option**. TLS authentication username. See [*CURLOPT\_TLSAUTH\_USERNAME(3)*](/man/os/curl/CURLOPT_TLSAUTH_USERNAME.3)

[CURLOPT\_TRAILERDATA](#CURLOPT_TRAILERDATA)

Custom pointer passed to the trailing headers callback. See [*CURLOPT\_TRAILERDATA(3)*](/man/os/curl/CURLOPT_TRAILERDATA.3)

[CURLOPT\_TRAILERFUNCTION](#CURLOPT_TRAILERFUNCTION)

Set callback for sending trailing headers. See [*CURLOPT\_TRAILERFUNCTION(3)*](/man/os/curl/CURLOPT_TRAILERFUNCTION.3)

[CURLOPT\_TRANSFERTEXT](#CURLOPT_TRANSFERTEXT)

Use text transfer. See [*CURLOPT\_TRANSFERTEXT(3)*](/man/os/curl/CURLOPT_TRANSFERTEXT.3)

[CURLOPT\_TRANSFER\_ENCODING](#CURLOPT_TRANSFER_ENCODING)

Request Transfer-Encoding. See [*CURLOPT\_TRANSFER\_ENCODING(3)*](/man/os/curl/CURLOPT_TRANSFER_ENCODING.3)

[CURLOPT\_UNIX\_SOCKET\_PATH](#CURLOPT_UNIX_SOCKET_PATH)

Path to a Unix domain socket. See [*CURLOPT\_UNIX\_SOCKET\_PATH(3)*](/man/os/curl/CURLOPT_UNIX_SOCKET_PATH.3)

[CURLOPT\_UNRESTRICTED\_AUTH](#CURLOPT_UNRESTRICTED_AUTH)

Do not restrict authentication to original host. [*CURLOPT\_UNRESTRICTED\_AUTH(3)*](/man/os/curl/CURLOPT_UNRESTRICTED_AUTH.3)

[CURLOPT\_UPKEEP\_INTERVAL\_MS](#CURLOPT_UPKEEP_INTERVAL_MS)

Sets the interval at which connection upkeep are performed. See [*CURLOPT\_UPKEEP\_INTERVAL\_MS(3)*](/man/os/curl/CURLOPT_UPKEEP_INTERVAL_MS.3)

[CURLOPT\_UPLOAD](#CURLOPT_UPLOAD)

Upload data. See [*CURLOPT\_UPLOAD(3)*](/man/os/curl/CURLOPT_UPLOAD.3)

[CURLOPT\_UPLOAD\_BUFFERSIZE](#CURLOPT_UPLOAD_BUFFERSIZE)

Set upload buffer size. See [*CURLOPT\_UPLOAD\_BUFFERSIZE(3)*](/man/os/curl/CURLOPT_UPLOAD_BUFFERSIZE.3)

[CURLOPT\_UPLOAD\_FLAGS](#CURLOPT_UPLOAD_FLAGS)

Set upload flags. See [*CURLOPT\_UPLOAD\_FLAGS(3)*](/man/os/curl/CURLOPT_UPLOAD_FLAGS.3)

[CURLOPT\_URL](#CURLOPT_URL)

URL to work on. See [*CURLOPT\_URL(3)*](/man/os/curl/CURLOPT_URL.3)

[CURLOPT\_USERAGENT](#CURLOPT_USERAGENT)

User-Agent: header. See [*CURLOPT\_USERAGENT(3)*](/man/os/curl/CURLOPT_USERAGENT.3)

[CURLOPT\_USERNAME](#CURLOPT_USERNAME)

Username. See [*CURLOPT\_USERNAME(3)*](/man/os/curl/CURLOPT_USERNAME.3)

[CURLOPT\_USERPWD](#CURLOPT_USERPWD)

Username and password. See [*CURLOPT\_USERPWD(3)*](/man/os/curl/CURLOPT_USERPWD.3)

[CURLOPT\_USE\_SSL](#CURLOPT_USE_SSL)

Use TLS/SSL. See [*CURLOPT\_USE\_SSL(3)*](/man/os/curl/CURLOPT_USE_SSL.3)

[CURLOPT\_VERBOSE](#CURLOPT_VERBOSE)

Display verbose information. See [*CURLOPT\_VERBOSE(3)*](/man/os/curl/CURLOPT_VERBOSE.3)

[CURLOPT\_WILDCARDMATCH](#CURLOPT_WILDCARDMATCH)

Transfer multiple files according to a filename pattern. See [*CURLOPT\_WILDCARDMATCH(3)*](/man/os/curl/CURLOPT_WILDCARDMATCH.3)

[CURLOPT\_WRITEDATA](#CURLOPT_WRITEDATA)

Data pointer to pass to the write callback. See [*CURLOPT\_WRITEDATA(3)*](/man/os/curl/CURLOPT_WRITEDATA.3)

[CURLOPT\_WRITEFUNCTION](#CURLOPT_WRITEFUNCTION)

Callback for writing data. See [*CURLOPT\_WRITEFUNCTION(3)*](/man/os/curl/CURLOPT_WRITEFUNCTION.3)

[CURLOPT\_WS\_OPTIONS](#CURLOPT_WS_OPTIONS)

Set WebSocket options. See [*CURLOPT\_WS\_OPTIONS(3)*](/man/os/curl/CURLOPT_WS_OPTIONS.3)

[CURLOPT\_XFERINFODATA](#CURLOPT_XFERINFODATA)

Data pointer to pass to the progress meter callback. See [*CURLOPT\_XFERINFODATA(3)*](/man/os/curl/CURLOPT_XFERINFODATA.3)

[CURLOPT\_XFERINFOFUNCTION](#CURLOPT_XFERINFOFUNCTION)

Callback for progress meter. See [*CURLOPT\_XFERINFOFUNCTION(3)*](/man/os/curl/CURLOPT_XFERINFOFUNCTION.3)

[CURLOPT\_XOAUTH2\_BEARER](#CURLOPT_XOAUTH2_BEARER)

OAuth2 bearer token. See [*CURLOPT\_XOAUTH2\_BEARER(3)*](/man/os/curl/CURLOPT_XOAUTH2_BEARER.3)

# [PROTOCOLS](#PROTOCOLS)

This functionality affects all supported protocols

# [EXAMPLE](#EXAMPLE)

```
int main(void)
{


  CURL *curl = curl_easy_init();


  if(curl) {


    CURLcode result;


    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");


    result = curl_easy_perform(curl);


    curl_easy_cleanup(curl);


  }
}
```

# [AVAILABILITY](#AVAILABILITY)

Added in curl 7.1

# [RETURN VALUE](#RETURN_VALUE)

This function returns a CURLcode indicating success or error.

CURLE\_OK (0) means everything was OK, non-zero means an error occurred, see [*libcurl-errors(3)*](/man/os/curl/libcurl-errors.3). If [*CURLOPT\_ERRORBUFFER(3)*](/man/os/curl/CURLOPT_ERRORBUFFER.3) was set with [*curl\_easy\_setopt(3)*](/man/os/curl/curl_easy_setopt.3) there can be an error message stored in the error buffer when non-zero is returned.

Strings passed on to libcurl must be shorter than 8000000 bytes, otherwise [*curl\_easy\_setopt(3)*](/man/os/curl/curl_easy_setopt.3) returns **CURLE\_BAD\_FUNCTION\_ARGUMENT** (added in 7.65.0).

**CURLE\_BAD\_FUNCTION\_ARGUMENT** 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 *CURLE\_UNKNOWN\_OPTION*. If support for the option was disabled at compile-time, it returns *CURLE\_NOT\_BUILT\_IN*.

# [SEE ALSO](#SEE_ALSO)

[**curl\_easy\_cleanup**(3)](/man/os/curl/curl_easy_cleanup.3), [**curl\_easy\_getinfo**(3)](/man/os/curl/curl_easy_getinfo.3), [**curl\_easy\_init**(3)](/man/os/curl/curl_easy_init.3), [**curl\_easy\_option\_by\_id**(3)](/man/os/curl/curl_easy_option_by_id.3), [**curl\_easy\_option\_by\_name**(3)](/man/os/curl/curl_easy_option_by_name.3), [**curl\_easy\_option\_next**(3)](/man/os/curl/curl_easy_option_next.3), [**curl\_easy\_reset**(3)](/man/os/curl/curl_easy_reset.3), [**curl\_multi\_setopt**(3)](/man/os/curl/curl_multi_setopt.3)

2026-10-19 libcurl

---

Document: curl_easy_setopt(3) from curl 8.23.0-r1 (Chainguard OS)
Source: https://github.com/curl/curl.git
