---
name: "curl_easy_setopt"
section: "3"
platform: "linux"
package: "curl"
version: "8.23.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/curl_easy_setopt"
---

# curl\_easy\_setopt(3)

set options for a curl easy handle

## NAME

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

## SYNOPSIS

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

## DESCRIPTION

*[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)* 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)](/curl_easy_setopt/3.md)* calls in the setup phase.

The *handle* argument is the return code from a *[curl\_easy\_init(3)](/curl_easy_init/3.md)* or *[curl\_easy\_duphandle(3)](/curl_easy_duphandle/3.md)* 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)](/curl_easy_reset/3.md)*.

Changing options with *[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)* 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 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)](/curl_easy_setopt/3.md)* returns. The only exception to this rule is really *[CURLOPT\_POSTFIELDS(3)](/CURLOPT_POSTFIELDS/3.md)*, but the alternative that copies the string *[CURLOPT\_COPYPOSTFIELDS(3)](/CURLOPT_COPYPOSTFIELDS/3.md)* 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

- CURLOPT\_ABSTRACT\_UNIX\_SOCKET

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

- CURLOPT\_ACCEPTTIMEOUT\_MS

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

- CURLOPT\_ACCEPT\_ENCODING

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

- CURLOPT\_ADDRESS\_SCOPE

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

- CURLOPT\_ALTSVC

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

- CURLOPT\_ALTSVC\_CTRL

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

- CURLOPT\_APPEND

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

- CURLOPT\_AUTOREFERER

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

- CURLOPT\_AWS\_SIGV4

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

- CURLOPT\_BUFFERSIZE

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

- CURLOPT\_CAINFO

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

- CURLOPT\_CAINFO\_BLOB

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

- CURLOPT\_CAPATH

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

- CURLOPT\_CA\_CACHE\_TIMEOUT

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

- CURLOPT\_CERTINFO

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

- CURLOPT\_CHUNK\_BGN\_FUNCTION

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

- CURLOPT\_CHUNK\_DATA

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

- CURLOPT\_CHUNK\_END\_FUNCTION

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

- CURLOPT\_CLOSESOCKETDATA

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

- CURLOPT\_CLOSESOCKETFUNCTION

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

- CURLOPT\_CONNECTTIMEOUT

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

- CURLOPT\_CONNECTTIMEOUT\_MS

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

- CURLOPT\_CONNECT\_ONLY

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

- CURLOPT\_CONNECT\_TO

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

- CURLOPT\_CONV\_FROM\_NETWORK\_FUNCTION

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

- CURLOPT\_CONV\_FROM\_UTF8\_FUNCTION

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

- CURLOPT\_CONV\_TO\_NETWORK\_FUNCTION

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

- CURLOPT\_COOKIE

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

- CURLOPT\_COOKIEFILE

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

- CURLOPT\_COOKIEJAR

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

- CURLOPT\_COOKIELIST

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

- CURLOPT\_COOKIESESSION

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

- CURLOPT\_COPYPOSTFIELDS

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

- CURLOPT\_CRLF

  Convert newlines. See *[CURLOPT\_CRLF(3)](/CURLOPT_CRLF/3.md)*

- CURLOPT\_CRLFILE

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

- CURLOPT\_CURLU

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

- CURLOPT\_CUSTOMREQUEST

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

- CURLOPT\_DEBUGDATA

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

- CURLOPT\_DEBUGFUNCTION

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

- CURLOPT\_DEFAULT\_PROTOCOL

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

- CURLOPT\_DIRLISTONLY

  List only. See *[CURLOPT\_DIRLISTONLY(3)](/CURLOPT_DIRLISTONLY/3.md)*

- CURLOPT\_DISALLOW\_USERNAME\_IN\_URL

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

- CURLOPT\_DNS\_CACHE\_TIMEOUT

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

- CURLOPT\_DNS\_INTERFACE

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

- CURLOPT\_DNS\_LOCAL\_IP4

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

- CURLOPT\_DNS\_LOCAL\_IP6

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

- CURLOPT\_DNS\_SERVERS

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

- CURLOPT\_DNS\_SHUFFLE\_ADDRESSES

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

- CURLOPT\_DNS\_USE\_GLOBAL\_CACHE

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

- CURLOPT\_DOH\_SSL\_VERIFYHOST

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

- CURLOPT\_DOH\_SSL\_VERIFYPEER

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

- CURLOPT\_DOH\_SSL\_VERIFYSTATUS

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

- CURLOPT\_DOH\_URL

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

- CURLOPT\_ECH

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

- CURLOPT\_EGDSOCKET

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

- CURLOPT\_ERRORBUFFER

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

- CURLOPT\_EXPECT\_100\_TIMEOUT\_MS

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

- CURLOPT\_FAILONERROR

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

- CURLOPT\_FILETIME

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

- CURLOPT\_FNMATCH\_DATA

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

- CURLOPT\_FNMATCH\_FUNCTION

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

- CURLOPT\_FOLLOWLOCATION

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

- CURLOPT\_FORBID\_REUSE

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

- CURLOPT\_FRESH\_CONNECT

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

- CURLOPT\_FTPPORT

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

- CURLOPT\_FTPSSLAUTH

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

- CURLOPT\_FTP\_ACCOUNT

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

- CURLOPT\_FTP\_ALTERNATIVE\_TO\_USER

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

- CURLOPT\_FTP\_CREATE\_MISSING\_DIRS

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

- CURLOPT\_FTP\_FILEMETHOD

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

- CURLOPT\_FTP\_SKIP\_PASV\_IP

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

- CURLOPT\_FTP\_SSL\_CCC

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

- CURLOPT\_FTP\_USE\_EPRT

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

- CURLOPT\_FTP\_USE\_EPSV

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

- CURLOPT\_FTP\_USE\_PRET

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

- CURLOPT\_GSSAPI\_DELEGATION

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

- CURLOPT\_HAPPY\_EYEBALLS\_TIMEOUT\_MS

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

- CURLOPT\_HAPROXYPROTOCOL

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

- CURLOPT\_HAPROXY\_CLIENT\_IP

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

- CURLOPT\_HEADER

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

- CURLOPT\_HEADERDATA

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

- CURLOPT\_HEADERFUNCTION

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

- CURLOPT\_HEADEROPT

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

- CURLOPT\_HSTS

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

- CURLOPT\_HSTSREADDATA

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

- CURLOPT\_HSTSREADFUNCTION

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

- CURLOPT\_HSTSWRITEDATA

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

- CURLOPT\_HSTSWRITEFUNCTION

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

- CURLOPT\_HSTS\_CTRL

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

- CURLOPT\_HTTP09\_ALLOWED

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

- CURLOPT\_HTTP200ALIASES

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

- CURLOPT\_HTTPAUTH

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

- CURLOPT\_HTTPGET

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

- CURLOPT\_HTTPHEADER

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

- CURLOPT\_HTTPPOST

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

- CURLOPT\_HTTPPROXYTUNNEL

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

- CURLOPT\_HTTPSIG\_ALGORITHM

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

- CURLOPT\_HTTPSIG\_HEADERS

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

- CURLOPT\_HTTPSIG\_KEY

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

- CURLOPT\_HTTPSIG\_KEYID

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

- CURLOPT\_HTTP\_CONTENT\_DECODING

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

- CURLOPT\_HTTP\_TRANSFER\_DECODING

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

- CURLOPT\_HTTP\_VERSION

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

- CURLOPT\_IGNORE\_CONTENT\_LENGTH

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

- CURLOPT\_INFILESIZE

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

- CURLOPT\_INFILESIZE\_LARGE

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

- CURLOPT\_INTERFACE

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

- CURLOPT\_INTERLEAVEDATA

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

- CURLOPT\_INTERLEAVEFUNCTION

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

- CURLOPT\_IOCTLDATA

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

- CURLOPT\_IOCTLFUNCTION

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

- CURLOPT\_IPRESOLVE

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

- CURLOPT\_ISSUERCERT

  Issuer certificate. See *[CURLOPT\_ISSUERCERT(3)](/CURLOPT_ISSUERCERT/3.md)*

- CURLOPT\_ISSUERCERT\_BLOB

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

- CURLOPT\_KEEP\_SENDING\_ON\_ERROR

  Keep sending on HTTP \>= 300 errors. *[CURLOPT\_KEEP\_SENDING\_ON\_ERROR(3)](/CURLOPT_KEEP_SENDING_ON_ERROR/3.md)*

- CURLOPT\_KEYPASSWD

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

- CURLOPT\_KRBLEVEL

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

- CURLOPT\_LOCALPORT

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

- CURLOPT\_LOCALPORTRANGE

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

- CURLOPT\_LOGIN\_OPTIONS

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

- CURLOPT\_LOW\_SPEED\_LIMIT

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

- CURLOPT\_LOW\_SPEED\_TIME

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

- CURLOPT\_MAIL\_AUTH

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

- CURLOPT\_MAIL\_FROM

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

- CURLOPT\_MAIL\_RCPT

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

- CURLOPT\_MAIL\_RCPT\_ALLOWFAILS

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

- CURLOPT\_MAXAGE\_CONN

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

- CURLOPT\_MAXCONNECTS

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

- CURLOPT\_MAXFILESIZE

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

- CURLOPT\_MAXFILESIZE\_LARGE

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

- CURLOPT\_MAXLIFETIME\_CONN

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

- CURLOPT\_MAXREDIRS

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

- CURLOPT\_MAX\_RECV\_SPEED\_LARGE

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

- CURLOPT\_MAX\_SEND\_SPEED\_LARGE

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

- CURLOPT\_MIMEPOST

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

- CURLOPT\_MIME\_OPTIONS

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

- CURLOPT\_NETRC

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

- CURLOPT\_NETRC\_FILE

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

- CURLOPT\_NEW\_DIRECTORY\_PERMS

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

- CURLOPT\_NEW\_FILE\_PERMS

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

- CURLOPT\_NOBODY

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

- CURLOPT\_NOPROGRESS

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

- CURLOPT\_NOPROXY

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

- CURLOPT\_NOSIGNAL

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

- CURLOPT\_OPENSOCKETDATA

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

- CURLOPT\_OPENSOCKETFUNCTION

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

- CURLOPT\_PASSWORD

  Password. See *[CURLOPT\_PASSWORD(3)](/CURLOPT_PASSWORD/3.md)*

- CURLOPT\_PATH\_AS\_IS

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

- CURLOPT\_PINNEDPUBLICKEY

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

- CURLOPT\_PIPEWAIT

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

- CURLOPT\_PORT

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

- CURLOPT\_POST

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

- CURLOPT\_POSTFIELDS

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

- CURLOPT\_POSTFIELDSIZE

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

- CURLOPT\_POSTFIELDSIZE\_LARGE

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

- CURLOPT\_POSTQUOTE

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

- CURLOPT\_POSTREDIR

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

- CURLOPT\_PREQUOTE

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

- CURLOPT\_PREREQDATA

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

- CURLOPT\_PREREQFUNCTION

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

- CURLOPT\_PRE\_PROXY

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

- CURLOPT\_PRIVATE

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

- CURLOPT\_PROGRESSDATA

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

- CURLOPT\_PROGRESSFUNCTION

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

- CURLOPT\_PROTOCOLS

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

- CURLOPT\_PROTOCOLS\_STR

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

- CURLOPT\_PROXY

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

- CURLOPT\_PROXYAUTH

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

- CURLOPT\_PROXYHEADER

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

- CURLOPT\_PROXYPASSWORD

  Proxy password. See *[CURLOPT\_PROXYPASSWORD(3)](/CURLOPT_PROXYPASSWORD/3.md)*

- CURLOPT\_PROXYPORT

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

- CURLOPT\_PROXYTYPE

  Proxy type. See *[CURLOPT\_PROXYTYPE(3)](/CURLOPT_PROXYTYPE/3.md)*

- CURLOPT\_PROXYUSERNAME

  Proxy username. See *[CURLOPT\_PROXYUSERNAME(3)](/CURLOPT_PROXYUSERNAME/3.md)*

- CURLOPT\_PROXYUSERPWD

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

- CURLOPT\_PROXY\_CAINFO

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

- CURLOPT\_PROXY\_CAINFO\_BLOB

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

- CURLOPT\_PROXY\_CAPATH

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

- CURLOPT\_PROXY\_CRLFILE

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

- CURLOPT\_PROXY\_ISSUERCERT

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

- CURLOPT\_PROXY\_ISSUERCERT\_BLOB

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

- CURLOPT\_PROXY\_KEYPASSWD

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

- CURLOPT\_PROXY\_PINNEDPUBLICKEY

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

- CURLOPT\_PROXY\_SERVICE\_NAME

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

- CURLOPT\_PROXY\_SSLCERT

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

- CURLOPT\_PROXY\_SSLCERTTYPE

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

- CURLOPT\_PROXY\_SSLCERT\_BLOB

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

- CURLOPT\_PROXY\_SSLKEY

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

- CURLOPT\_PROXY\_SSLKEYTYPE

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

- CURLOPT\_PROXY\_SSLKEY\_BLOB

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

- CURLOPT\_PROXY\_SSLVERSION

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

- CURLOPT\_PROXY\_SSL\_CIPHER\_LIST

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

- CURLOPT\_PROXY\_SSL\_OPTIONS

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

- CURLOPT\_PROXY\_SSL\_VERIFYHOST

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

- CURLOPT\_PROXY\_SSL\_VERIFYPEER

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

- CURLOPT\_PROXY\_TLS13\_CIPHERS

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

- CURLOPT\_PROXY\_TLSAUTH\_PASSWORD

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

- CURLOPT\_PROXY\_TLSAUTH\_TYPE

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

- CURLOPT\_PROXY\_TLSAUTH\_USERNAME

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

- CURLOPT\_PROXY\_TRANSFER\_MODE

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

- CURLOPT\_PUT

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

- 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)](/CURLOPT_QUICK_EXIT/3.md)*

- CURLOPT\_QUOTE

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

- CURLOPT\_RANDOM\_FILE

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

- CURLOPT\_RANGE

  Range requests. See *[CURLOPT\_RANGE(3)](/CURLOPT_RANGE/3.md)*

- CURLOPT\_READDATA

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

- CURLOPT\_READFUNCTION

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

- CURLOPT\_REDIR\_PROTOCOLS

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

- CURLOPT\_REDIR\_PROTOCOLS\_STR

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

- CURLOPT\_REFERER

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

- CURLOPT\_REQUEST\_TARGET

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

- CURLOPT\_RESOLVE

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

- CURLOPT\_RESOLVER\_START\_DATA

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

- CURLOPT\_RESOLVER\_START\_FUNCTION

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

- CURLOPT\_RESUME\_FROM

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

- CURLOPT\_RESUME\_FROM\_LARGE

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

- CURLOPT\_RTSP\_CLIENT\_CSEQ

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

- CURLOPT\_RTSP\_REQUEST

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

- CURLOPT\_RTSP\_SERVER\_CSEQ

  CSEQ number for RTSP Server-\>Client request. See *[CURLOPT\_RTSP\_SERVER\_CSEQ(3)](/CURLOPT_RTSP_SERVER_CSEQ/3.md)*

- CURLOPT\_RTSP\_SESSION\_ID

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

- CURLOPT\_RTSP\_STREAM\_URI

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

- CURLOPT\_RTSP\_TRANSPORT

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

- CURLOPT\_SASL\_AUTHZID

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

- CURLOPT\_SASL\_IR

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

- CURLOPT\_SEEKDATA

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

- CURLOPT\_SEEKFUNCTION

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

- CURLOPT\_SERVER\_RESPONSE\_TIMEOUT

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

- CURLOPT\_SERVER\_RESPONSE\_TIMEOUT\_MS

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

- CURLOPT\_SERVICE\_NAME

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

- CURLOPT\_SHARE

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

- CURLOPT\_SOCKOPTDATA

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

- CURLOPT\_SOCKOPTFUNCTION

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

- CURLOPT\_SOCKS5\_AUTH

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

- CURLOPT\_SOCKS5\_GSSAPI\_NEC

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

- CURLOPT\_SOCKS5\_GSSAPI\_SERVICE

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

- CURLOPT\_SSH\_AUTH\_TYPES

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

- CURLOPT\_SSH\_COMPRESSION

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

- CURLOPT\_SSH\_HOSTKEYDATA

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

- CURLOPT\_SSH\_HOSTKEYFUNCTION

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

- CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_MD5

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

- CURLOPT\_SSH\_HOST\_PUBLIC\_KEY\_SHA256

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

- CURLOPT\_SSH\_KEYDATA

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

- CURLOPT\_SSH\_KEYFUNCTION

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

- CURLOPT\_SSH\_KNOWNHOSTS

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

- CURLOPT\_SSH\_PRIVATE\_KEYFILE

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

- CURLOPT\_SSH\_PUBLIC\_KEYFILE

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

- CURLOPT\_SSLCERT

  Client cert. See *[CURLOPT\_SSLCERT(3)](/CURLOPT_SSLCERT/3.md)*

- CURLOPT\_SSLCERTTYPE

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

- CURLOPT\_SSLCERT\_BLOB

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

- CURLOPT\_SSLENGINE

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

- CURLOPT\_SSLENGINE\_DEFAULT

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

- CURLOPT\_SSLKEY

  Client key. See *[CURLOPT\_SSLKEY(3)](/CURLOPT_SSLKEY/3.md)*

- CURLOPT\_SSLKEYTYPE

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

- CURLOPT\_SSLKEY\_BLOB

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

- CURLOPT\_SSLVERSION

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

- CURLOPT\_SSL\_CIPHER\_LIST

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

- CURLOPT\_SSL\_CTX\_DATA

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

- CURLOPT\_SSL\_CTX\_FUNCTION

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

- CURLOPT\_SSL\_EC\_CURVES

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

- CURLOPT\_SSL\_ENABLE\_ALPN

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

- CURLOPT\_SSL\_ENABLE\_NPN

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

- CURLOPT\_SSL\_FALSESTART

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

- CURLOPT\_SSL\_OPTIONS

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

- CURLOPT\_SSL\_SESSIONID\_CACHE

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

- CURLOPT\_SSL\_SIGNATURE\_ALGORITHMS

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

- CURLOPT\_SSL\_VERIFYHOST

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

- CURLOPT\_SSL\_VERIFYPEER

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

- CURLOPT\_SSL\_VERIFYSTATUS

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

- CURLOPT\_STDERR

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

- CURLOPT\_STREAM\_DEPENDS

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

- CURLOPT\_STREAM\_DEPENDS\_E

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

- CURLOPT\_STREAM\_WEIGHT

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

- CURLOPT\_SUPPRESS\_CONNECT\_HEADERS

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

- CURLOPT\_TCP\_FASTOPEN

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

- CURLOPT\_TCP\_KEEPALIVE

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

- CURLOPT\_TCP\_KEEPCNT

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

- CURLOPT\_TCP\_KEEPIDLE

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

- CURLOPT\_TCP\_KEEPINTVL

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

- CURLOPT\_TCP\_NODELAY

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

- CURLOPT\_TELNETOPTIONS

  TELNET options. See *[CURLOPT\_TELNETOPTIONS(3)](/CURLOPT_TELNETOPTIONS/3.md)*

- CURLOPT\_TFTP\_BLKSIZE

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

- CURLOPT\_TFTP\_NO\_OPTIONS

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

- CURLOPT\_TIMECONDITION

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

- CURLOPT\_TIMEOUT

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

- CURLOPT\_TIMEOUT\_MS

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

- CURLOPT\_TIMEVALUE

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

- CURLOPT\_TIMEVALUE\_LARGE

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

- CURLOPT\_TLS13\_CIPHERS

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

- CURLOPT\_TLSAUTH\_PASSWORD

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

- CURLOPT\_TLSAUTH\_TYPE

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

- CURLOPT\_TLSAUTH\_USERNAME

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

- CURLOPT\_TRAILERDATA

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

- CURLOPT\_TRAILERFUNCTION

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

- CURLOPT\_TRANSFERTEXT

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

- CURLOPT\_TRANSFER\_ENCODING

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

- CURLOPT\_UNIX\_SOCKET\_PATH

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

- CURLOPT\_UNRESTRICTED\_AUTH

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

- CURLOPT\_UPKEEP\_INTERVAL\_MS

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

- CURLOPT\_UPLOAD

  Upload data. See *[CURLOPT\_UPLOAD(3)](/CURLOPT_UPLOAD/3.md)*

- CURLOPT\_UPLOAD\_BUFFERSIZE

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

- CURLOPT\_UPLOAD\_FLAGS

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

- CURLOPT\_URL

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

- CURLOPT\_USERAGENT

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

- CURLOPT\_USERNAME

  Username. See *[CURLOPT\_USERNAME(3)](/CURLOPT_USERNAME/3.md)*

- CURLOPT\_USERPWD

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

- CURLOPT\_USE\_SSL

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

- CURLOPT\_VERBOSE

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

- CURLOPT\_WILDCARDMATCH

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

- CURLOPT\_WRITEDATA

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

- CURLOPT\_WRITEFUNCTION

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

- CURLOPT\_WS\_OPTIONS

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

- CURLOPT\_XFERINFODATA

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

- CURLOPT\_XFERINFOFUNCTION

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

- CURLOPT\_XOAUTH2\_BEARER

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

## PROTOCOLS

This functionality affects all supported protocols

## 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

Added in curl 7.1

## 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)](/libcurl-errors/3.md)*. If *[CURLOPT\_ERRORBUFFER(3)](/CURLOPT_ERRORBUFFER/3.md)* was set with *[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)* 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)](/curl_easy_setopt/3.md)* 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

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