The Best cURL Hosting: Who's The Best For Your Site? [Updated: 2020]

Disclosure: Your support helps keep the site running! We earn a referral fee for some of the services we recommend on this page. Learn more

Compare cURL Hosting

Designed for developers, cURL is a command-line utility and library that simplifies data transfer over the web. Most hosting services include cURL, but some make it easier to build an application on cURL.

Before selecting a web host new customers should verify that cURL is enabled or can be installed by the host. Existing Linux server customers can verify that cURL is available by looking for the line, cURL support enabled in the php.ini file. Windows servers automatically include support for cURL.

Later in this post, we do an in-depth discussion on each host. For now, here are the best 5 hosts for cURL:

  1. SiteGround - Choose from four PHP versions plus SSH access
  2. A2 Hosting
  3. InMotion Hosting
  4. HostPapa
  5. HostGator

How Did We Pick the Best Hosts for cURL?

We shortlisted the web hosts that offered solid support for building custom web applications and a selection of PHP modules.

Next, we combined this list with feedback from real customers, using our massive database of genuine reviews.

Compare cURL Hosting

compare curl hosting

What You'll Learn

It's inside your Mac. It's used by BMW, Microsoft, Blackberry, and Cisco among many other global giants.

It's become indispensable to developers and is used by an estimated half a billion people.

What is cURL and what is it used for?

We'll cover these questions and more, including what to look for in a cURL host.

And I'll make a few recommendations for cURL hosts as well.


What Is cURL?

cURL is a well-established Linux utility that's often advertised by web hosts.

cURL allows users to quickly access the contents of a file, obtained via a URL, from within a PHP script.

This sounds simple, yet cURL is extremely powerful.

It's indispensable for developers, and, due to its multi-purpose nature, it's often a prerequisite demanded by other applications and scripts.

cURL homepage
cURL homepage screenshot via WhoIsHostingThis

PEOPLE'S CHOICE: #1 HOST FOR curl Apr 2021
StartUp plan

$3.95 / mo

Entry VPS plan

$5 / mo

R-1000 plan

$13.99 / mo

Linux Hatchling plan

$2.75 / mo

EcoSite Starter plan

$2.95 / mo

Bronze Reseller plan

$19.95 / mo

2 GB VPS plan

$59 / mo

Basic VPS Hosting plan

$19.99 / mo

Reseller Hosting Silver plan

$19.95 / mo

Single Site Hosting plan

$0.80 / mo

cURL's History

cURL was originally developed in 1997, with its name being coined the following year. It stands for Client URL Request Library or Curl URL Request Library, and it's distributed as part of the operating system on a huge range of devices.

What is libcurl?

The project, which also includes libcurl, is lead by Swedish developer Daniel Stenberg and run by a large team of volunteers.

Stenberg started off developing for the Commodore 64 and is now part of the Mozilla project, employed to work on the Firefox browser.

libcurl homepage

libcurl homepage screenshot via WhoIsHostingThis

How Many People Use cURL?

The team behind cURL says that it's impossible to say how many people are using their tool.

At the last count, in mid-2012, Stenberg estimated that it's being used by more than 550 million people.

This figure includes users of Debian, users of iOS devices, people who have purchased certain TVs and DVD players, and players of games like Second Life.

What cURL Does

cURL is a file transfer tool with a simple purpose: to access HTTP content from a PHP script or the command-line.

The former is arguably the more common usage of cURL, since it lets a script pull in content or evaluate the content of another file on the web.

cURL: a Command-Line Tool

cURL command-line

cURL command-line screenshot via WhoIsHostingThis

cURL downloads or sends data using a URL. It is a command-line only tool, and its developers clearly state that it will never get a graphical user interface.

If used properly, cURL is a very powerful way to pull data into a PHP script.

cURL vs. wget

If you've transferred files using the command-line, you've probably come across wget. While wget is designed to transfer large numbers of files, cURL is really good at transferring one at a time.

Note that cURL has no recursive mode, which backs up that statement.

web hosting coupon

Looking for a great deal on cURL hosting?
SiteGround's servers have cURL, as well as zlib, zip, and simple_xml installed. Our readers have rated SiteGround the #1 host. Save up to 67% on their plans by using this special discount link.

Advanced cURL Features

cURL can also connect to data sources and transfer files using FTP, connect via SSL and send a username and password to gain access to a file that requires a login.

SSL code isn't built into cURL but requires a compatible library. Support is included for OpenSSL, mbed TLS (formerly known as PolarSSL), axTLS, yassl and more.

cURL uses

How Web Applications Use cURL

The best use case for cURL is grabbing a whole file from a remote server.

Code that handles a file interactively or only needs to examine part of it should use a different approach. Apart from this, cURL is very versatile.

cURL: the File Transfer Swiss Army Knife

The developer will write a callback function which is invoked as the data comes in. It can write the data to a file, forward it to another server, or process it in any way necessary.

Setting up a progress indicator as a file is downloaded is a straightforward programming task.

With appropriate coding, the user of a web application can continue using it for other tasks and get a notification when the file is completely downloaded.

Can I Use cURL to Upload Files?

It's possible to upload as well as downloading files with cURL, though using it this way is less common.

It can upload by FTP, a POST request, or other ways.

Most servers on the web accept only authenticated uploads, and cURL can handle several authentication methods.

Understanding libcurl

While the cURL application does the actual copying, libcurl is the bundle of instructions that helps it to connect to the data source.

Written in C, libcurl is essentially a protocol library that includes:

  • FTP, FTPS, and SFTP
  • HTTP and HTTPS
  • LDAP and LDAPS
  • Gopher
  • IMAP, POP3, and SMTP

There are many other protocols besides these, facilitating practically any type of file transfer.

cURL Library

The library is highly versatile, supporting HTTP POST and GET requests, multiple types of authentication, proxy tunneling, and IPv6 addresses. It can be set up to deal with firewalls.

The libcurl library is cross-platform compatible, so it can be transplanted into any cURL installation on practically any device.

What's more, libcurl is free and can be used as part of other applications, even if those applications are not open source.

How to Get libcurl

There are several ways to get libcurl:

  1. Pre-installed from your hosting provider
  2. Installed from a package manager on a private server
  3. Compiled from source
  4. Downloading the source via git
  5. Installing all the dependencies to build curl and then compiling it.

Calling libcurl

Two ways of calling libcurl are available: East and Multi.

The Easy interface is a straightforward way to get a file with a minimum of code. The Multi interface allows multiple transfers in parallel. Coding is a bit more complicated.

Support for libcurl isn't limited to PHP. Almost every popular language has an interface for issuing cURL requests.

LanguageLibrary or interface
Javacurl-java (incomplete)
PerlWWW-curl, perl6-net-curl
Visual Basiclibcurl-vb

Working in combination, cURL and libcurl give developers a fast and simple way to pull content into PHP pages.

cURL Hosting Requirements

If you want to install a script like Zen Cart, you will need to ensure your host is running cURL.

Some applications need it to check for updates, and some WordPress plugins need cURL support to function correctly.

  • On Linux, cURL is installed in two parts; as a Linux module and an extension for PHP. Your host should be able to install both parts quickly if it's not already present.
  • On Windows, the cURL extension is automatically installed with the rest of the WAMP stack, so your host should not need to do anything more.

If you're stuck with a host that doesn't have cURL enabled, ask them — it never hurts to try.

There are alternative ways to achieve the same results, but it may rule out many of your options when you're developing and expanding your website.

Summary of cURL features:

  • Simple, widely supported way to transfer remote files programmatically
  • Supports HTTP, HTTPS, FTP, and other protocols
  • Support for authentication

web hosting deals

Undecided on cURL hosts?
A2 Hosting came in #1 in our recent speed and performance tests. And they have cURL compiled directly into PHP. (You get a choice of 5 versions of PHP). Right now you can save up to 50% on their dev-friendly plans. Use this special discount link to get the deal.

Other features in Technologies

cURL Frequently Asked Questions

  • What is cURL?

    cURL is a completely free software project consisting of libcurl — a C-based client-side URL transfer library, and curl — a command line tool for transferring files using URL syntax.

    A similar tool is Wget. It is able to recursively download a large number of files, cURL is made to do a single-shot transfer of data. cURL offers uploading and sending capabilities, while Wget only offers plain HTTP POST support. Also, cURL builds and runs on lots more platforms then Wget.

  • What exactly is cURL used for?

    The most common use of cURL is to access HTTP content from a PHP script or command line. It enables a script to use the contents of another file on the web.

    One example would be a C program that uses the cURL library to send data to a PHP script on a web server, where the script then stores the data in a MySQL database.

  • Which transfer protocols does cURL support?

    cURL supports the following transfer protocols: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. Libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos), file transfer resume, HTTP proxy tunneling and more.

  • How can I use cURL in my favorite programming language?

    Numerous interfaces are available for more than 40 languages, including: Ada95, Basic, C, C++, Ch, Cocoa, D, Dylan, Eiffel, Euphoria, Ferite, Gambas, glib/GTK+, Haskell, ILE/RPG, Java, Lisp, Lua, Mono, .NET, Object-Pascal, O'Caml, Pascal, Perl, PHP, PostgreSQL, Python, R, Rexx, Ruby, Scheme, S-Lang, Smalltalk, SP-Forth, SPL, Tcl, Visual Basic, Visual FoxPro, Q, wxwidgets and XBLite and more. There are also custom bindings to the libcurl library made by other projects and people, outside of the cURL project.

  • What about platform support for cURL?

    cURL is highly portable, it builds and works on many different platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, and DOS.

  • What are the hosting requirements for cURL?

    On Windows hosting, cURL is automatically installed with the WAMP software stack. Linux hosting installs cURL in two parts, as a module within Apache and an extension for PHP. Most hosting providers today already have cURL installed on their servers. If not, your host should be able to install cURL quickly.

  • Can You limit cURL bandwidth usage?

    Yes, cURL allows you to limit the transfer rate. You can specify the maximum transfer rate for cURL which is useful if you do not want your transfers to use up your entire bandwidth allocation. The specified limit affects both downloads and uploads from cURL.

  • Are there any compatibility issues I should be aware of?

    Not really, at least not with the latest version of cURL. There was an issue with PayPal when it discontinued support for SSL 3.0 in December 2014, but that was only the case with outdated version of cURL.

  • Are ASP, XML, or XHTML supported by cURL?

    Yes, they are all supported, it does not matter how the page was generated. cURL does not even know which language or technology is used to generate a page.

  • What are the most common hosting problems associated with cURL?

    If you simply try to access an HTTPS resource (SSL or TLS-protected resource) in PHP using cURL, you're likely to run into some difficulties. The problem is that cURL has not been configured to trust the server's HTTPS certificate, and by default, cURL is set-up to not trust any certification authorities (CA).

    There are two ways around this problem. First, you can simply configure cURL to accept any server (peer) certificate. This isn't optimal from a security point of view, but if you're not passing sensitive information back and forth, this is probably okay. The second option involves setting the CURLOPT_CAINFO parameter. This is used to point towards a CA certificate that cURL should trust.

  • Is cURL free? Will it add to my hosting bill?

    Both cURL and libcurl are open-source and are published under the MIT/X derivate license. It means that you are free to modify and redistribute all contents of cURL distributed archives. You may also freely use cURL and libcurl in your commercial projects. Using cURL should not cause any additional hosting costs.

  • What about Keep-Alive or persistent connections?

    cURL and libcurl both support persistent connections while transferring multiple files from the same server. cURL will attempt to reuse the connection for all URLs specified in the command.

  • I am concerned about security. Will using cURL cause security issues?

    No, cURL is configured by default to use secure requests over SSL/TLS. Configuring the location of an up-to-date, trusted certificate bundle is essential in keeping cURL transfers safe.

  • How important are cURL updates?

    Like all vital software components, it is always a good idea to choose a host that offers timely updates. In this respect, cURL is no exception.

Gary McGath

About Gary McGath

Gary McGath spent years as a software developer before turning to writing. In addition to writing many articles on technology, he's the author of two crowdfunded e-books. His tech passions include data security and digital preservation.

Connect with Gary


Thanks for your comment. It will show here once it has been approved.

Your email address will not be published. Required fields are marked *