CURLOPT_ABSTRACT_UNIX_SOCKET Enables the use of an abstract Unix domain socket instead of establishing a TCP connection to a host and sets the path to the given string CURLOPT_UNIX_SOCKET_PATH . These two options share the same storage and therefore only one of them can be set per handle. Available since PHP 7.3.0 and cURL 7.53.0

CURLOPT_CAINFO The name of a file holding one or more certificates to verify the peer with. This only makes sense when used in combination with CURLOPT_SSL_VERIFYPEER . Might require an absolute path.

CURLOPT_CAPATH A directory that holds multiple CA certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER .

CURLOPT_COOKIE The contents of the "Cookie: " header to be used in the HTTP request. Note that multiple cookies are separated with a semicolon followed by a space (e.g., " fruit=apple; colour=red ")

CURLOPT_COOKIEFILE The name of the file containing the cookie data. The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file. If the name is an empty string, no cookies are loaded, but cookie handling is still enabled.

CURLOPT_COOKIEJAR The name of a file to save all internal cookies to when the handle is closed, e.g. after a call to curl_close.

CURLOPT_COOKIELIST A cookie string (i.e. a single line in Netscape/Mozilla format, or a regular HTTP-style Set-Cookie header) adds that single cookie to the internal cookie store. "ALL" erases all cookies held in memory. "SESS" erases all session cookies held in memory. "FLUSH" writes all known cookies to the file specified by CURLOPT_COOKIEJAR . "RELOAD" loads all cookies from the files specified by CURLOPT_COOKIEFILE . Available since PHP 5.5.0 and cURL 7.14.1.

CURLOPT_CUSTOMREQUEST A custom request method to use instead of "GET" or "HEAD" when doing a HTTP request. This is useful for doing "DELETE" or other, more obscure HTTP requests. Valid values are things like "GET" , "POST" , "CONNECT" and so on; i.e. Do not enter a whole HTTP request line here. For instance, entering "GET /index.html HTTP/1.0\r

\r

" would be incorrect. Note: Don't do this without making sure the server supports the custom request method first.

CURLOPT_DEFAULT_PROTOCOL The default protocol to use if the URL is missing a scheme name. Added in cURL 7.45.0. Available since PHP 7.0.7.

CURLOPT_DNS_INTERFACE Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address). Added in cURL 7.33.0. Available since PHP 7.0.7.

CURLOPT_DNS_LOCAL_IP4 Set the local IPv4 address that the resolver should bind to. The argument should contain a single numerical IPv4 address as a string. Added in cURL 7.33.0. Available since PHP 7.0.7.

CURLOPT_DNS_LOCAL_IP6 Set the local IPv6 address that the resolver should bind to. The argument should contain a single numerical IPv6 address as a string. Added in cURL 7.33.0. Available since PHP 7.0.7.

CURLOPT_EGDSOCKET Like CURLOPT_RANDOM_FILE , except a filename to an Entropy Gathering Daemon socket.

CURLOPT_ENCODING The contents of the "Accept-Encoding: " header. This enables decoding of the response. Supported encodings are "identity" , "deflate" , and "gzip" . If an empty string, "" , is set, a header containing all supported encoding types is sent. Added in cURL 7.10.

CURLOPT_FTPPORT The value which will be used to get the IP address to use for the FTP "PORT" instruction. The "PORT" instruction tells the remote server to connect to our specified IP address. The string may be a plain IP address, a hostname, a network interface name (under Unix), or just a plain '-' to use the systems default IP address.

CURLOPT_INTERFACE The name of the outgoing network interface to use. This can be an interface name, an IP address or a host name.

CURLOPT_KEYPASSWD The password required to use the CURLOPT_SSLKEY or CURLOPT_SSH_PRIVATE_KEYFILE private key. Added in cURL 7.16.1.

CURLOPT_KRB4LEVEL The KRB4 (Kerberos 4) security level. Any of the following values (in order from least to most powerful) are valid: "clear" , "safe" , "confidential" , "private". . If the string does not match one of these, "private" is used. Setting this option to NULL will disable KRB4 security. Currently KRB4 security only works with FTP transactions.

CURLOPT_LOGIN_OPTIONS Can be used to set protocol specific login options, such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*", and should be used in conjunction with the CURLOPT_USERNAME option. Added in cURL 7.34.0. Available since PHP 7.0.7.

CURLOPT_PINNEDPUBLICKEY Set the pinned public key. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";". Added in cURL 7.39.0. Available since PHP 7.0.7.

CURLOPT_POSTFIELDS The full data to post in a HTTP "POST" operation. To post a file, prepend a filename with @ and use the full path. The filetype can be explicitly specified by following the filename with the type in the format ' ;type=mimetype '. This parameter can either be passed as a urlencoded string like ' para1=val1¶2=val2&... ' or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data . As of PHP 5.2.0, value must be an array if files are passed to this option with the @ prefix. @ prefix is deprecated and files can be sent using @ prefix can be disabled for safe passing of values beginning with @ by setting the CURLOPT_SAFE_UPLOAD option to TRUE . As of PHP 5.5.0, theprefix is deprecated and files can be sent using CURLFile . Theprefix can be disabled for safe passing of values beginning withby setting theoption to

CURLOPT_PRIVATE Any data that should be associated with this cURL handle. This data can subsequently be retrieved with the CURLINFO_PRIVATE option of curl_getinfo() Added in cURL 7.10.3.

CURLOPT_PRE_PROXY Set a string CURLOPT_PROXY option for the upcoming request. The preproxy can only be a SOCKS proxy and it should be prefixed with [scheme]:// to specify which kind of socks is used. A numerical IPv6 address must be written within [brackets]. Setting the preproxy to an empty string explicitly disables the use of a preproxy. To specify port number in this string, append :[port] to the end of the host name. The proxy's port number may optionally be specified with the separate option CURLOPT_PROXYPORT . Defaults to using port 1080 for proxies if a port is not specified. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY The HTTP proxy to tunnel requests through.

CURLOPT_PROXY_SERVICE_NAME The proxy authentication service name. Added in cURL 7.34.0. Available since PHP 7.0.7.

CURLOPT_PROXY_CAINFO The path to proxy Certificate Authority (CA) bundle. Set the path as a string Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_CAPATH The directory holding multiple CA certificates to verify the HTTPS proxy with. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_CRLFILE Set the file name with the concatenation of CRL (Certificate Revocation List) in PEM format to use in the certificate validation that occurs during the SSL exchange. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_KEYPASSWD Set the string be used as the password required to use the CURLOPT_PROXY_SSLKEY private key. You never needed a passphrase to load a certificate but you need one to load your private key. This option is for connecting to an HTTPS proxy, not an HTTPS server. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_PINNEDPUBLICKEY Set the pinned public key for HTTPS proxy. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";" Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_SSLCERT The file name of your client certificate used to connect to the HTTPS proxy. The default format is "P12" on Secure Transport and "PEM" on other engines, and can be changed with CURLOPT_PROXY_SSLCERTTYPE . With NSS or Secure Transport, this can also be the nickname of the certificate you wish to authenticate with as it is named in the security database. If you want to use a file from the current directory, please precede it with "./" prefix, in order to avoid confusion with a nickname. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_SSLCERTTYPE The format of your client certificate used when connecting to an HTTPS proxy. Supported formats are "PEM" and "DER", except with Secure Transport. OpenSSL (versions 0.9.3 and later) and Secure Transport (on iOS 5 or later, or OS X 10.7 or later) also support "P12" for PKCS#12-encoded files. Defaults to "PEM". Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_SSL_CIPHER_LIST The list of ciphers to use for the connection to the HTTPS proxy. The list must be syntactically correct, it consists of one or more cipher strings separated by colons. Commas or spaces are also acceptable separators but colons are normally used, !, - and + can be used as operators. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_TLS13_CIPHERS The list of cipher suites to use for the TLS 1.3 connection to a proxy. The list must be syntactically correct, it consists of one or more cipher suite strings separated by colons. This option is currently used only when curl is built to use OpenSSL 1.1.1 or later. If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the CURLOPT_PROXY_SSL_CIPHER_LIST option. Available since PHP 7.3.0 and libcurl >= cURL 7.61.0. Available when built with OpenSSL >= 1.1.1.

CURLOPT_PROXY_SSLKEY The file name of your private key used for connecting to the HTTPS proxy. The default format is "PEM" and can be changed with CURLOPT_PROXY_SSLKEYTYPE . (iOS and Mac OS X only) This option is ignored if curl was built against Secure Transport. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0. Available if built TLS enabled.

CURLOPT_PROXY_SSLKEYTYPE The format of your private key. Supported formats are "PEM", "DER" and "ENG". Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_TLSAUTH_PASSWORD The password to use for the TLS authentication method specified with the CURLOPT_PROXY_TLSAUTH_TYPE option. Requires that the CURLOPT_PROXY_TLSAUTH_USERNAME option to also be set. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_TLSAUTH_TYPE The method of the TLS authentication used for the HTTPS connection. Supported method is "SRP". Note: Secure Remote Password (SRP) authentication for TLS provides mutual authentication if both sides have a shared secret. To use TLS-SRP, you must also set the CURLOPT_PROXY_TLSAUTH_USERNAME and CURLOPT_PROXY_TLSAUTH_PASSWORD options. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXY_TLSAUTH_USERNAME Tusername to use for the HTTPS proxy TLS authentication method specified with the CURLOPT_PROXY_TLSAUTH_TYPE option. Requires that the CURLOPT_PROXY_TLSAUTH_PASSWORD option to also be set. Available since PHP 7.3.0 and libcurl >= cURL 7.52.0.

CURLOPT_PROXYUSERPWD A username and password formatted as "[username]:[password]" to use for the connection to the proxy.

CURLOPT_RANDOM_FILE A filename to be used to seed the random number generator for SSL.

CURLOPT_RANGE Range(s) of data to retrieve in the format "X-Y" where X or Y are optional. HTTP transfers also support several intervals, separated with commas in the format "X-Y,N-M" .

CURLOPT_REFERER The contents of the "Referer: " header to be used in a HTTP request.

CURLOPT_SERVICE_NAME The authentication service name. Added in cURL 7.43.0. Available since PHP 7.0.7.

CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 A string containing 32 hexadecimal digits. The string should be the MD5 checksum of the remote host's public key, and libcurl will reject the connection to the host unless the md5sums match. This option is only for SCP and SFTP transfers. Added in cURL 7.17.1.

CURLOPT_SSH_PUBLIC_KEYFILE The file name for your public key. If not used, libcurl defaults to $HOME/.ssh/id_dsa.pub if the HOME environment variable is set, and just "id_dsa.pub" in the current directory if HOME is not set. Added in cURL 7.16.1.

CURLOPT_SSH_PRIVATE_KEYFILE The file name for your private key. If not used, libcurl defaults to $HOME/.ssh/id_dsa if the HOME environment variable is set, and just "id_dsa" in the current directory if HOME is not set. If the file is password-protected, set the password with CURLOPT_KEYPASSWD . Added in cURL 7.16.1.

CURLOPT_SSL_CIPHER_LIST A list of ciphers to use for SSL. For example, RC4-SHA and TLSv1 are valid cipher lists.

CURLOPT_SSLCERT The name of a file containing a PEM formatted certificate.

CURLOPT_SSLCERTPASSWD The password required to use the CURLOPT_SSLCERT certificate.

CURLOPT_SSLCERTTYPE The format of the certificate. Supported formats are "PEM" (default), "DER" , and "ENG" . As of OpenSSL 0.9.3, "P12" (for PKCS#12-encoded files) is also supported. Added in cURL 7.9.3.

CURLOPT_SSLENGINE The identifier for the crypto engine of the private SSL key specified in CURLOPT_SSLKEY .

CURLOPT_SSLENGINE_DEFAULT The identifier for the crypto engine used for asymmetric crypto operations.

CURLOPT_SSLKEY The name of a file containing a private SSL key.

CURLOPT_SSLKEYPASSWD The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY . Note: Since this option contains a sensitive password, remember to keep the PHP script it is contained within safe.

CURLOPT_SSLKEYTYPE The key type of the private SSL key specified in CURLOPT_SSLKEY . Supported key types are "PEM" (default), "DER" , and "ENG" .

CURLOPT_TLS13_CIPHERS The list of cipher suites to use for the TLS 1.3 connection. The list must be syntactically correct, it consists of one or more cipher suite strings separated by colons. This option is currently used only when curl is built to use OpenSSL 1.1.1 or later. If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the CURLOPT_SSL_CIPHER_LIST option. Available since PHP 7.3.0 and libcurl >= cURL 7.61.0. Available when built with OpenSSL >= 1.1.1.

CURLOPT_UNIX_SOCKET_PATH Enables the use of Unix domain sockets as connection endpoint and sets the path to the given string Added in cURL 7.40.0. Available since PHP 7.0.7.

CURLOPT_URL The URL to fetch. This can also be set when initializing a session with curl_init()

CURLOPT_USERAGENT The contents of the "User-Agent: " header to be used in a HTTP request.

CURLOPT_USERNAME The user name to use in authentication. Added in cURL 7.19.1. Available since PHP 5.5.0.

CURLOPT_USERPWD A username and password formatted as "[username]:[password]" to use for the connection.