curl

curl is a command-line tool for transferring data to or from a server using URLs, paired with libcurl, the library that does the actual transfer work and that many other programs embed. Its own GitHub README describes curl as a command-line tool for transferring data specified with URLs and libcurl as the library curl uses to do its job, made available for use by other software. Because it speaks HTTP and many other protocols and is installed nearly everywhere, curl became the default way developers manually exercise a web API.

According to curl’s own history page, the project traces back to late 1996, when Daniel Stenberg was building an IRC bot and needed to fetch currency-exchange rates from a web page. He took over an existing small tool, HttpGet, which the Brazilian developer Rafael Sagula had first released on November 11, 1996, and released his own modified version 0.2 in December 1996, becoming the maintainer.

The tool was renamed twice as its scope outgrew its name. Once FTP support arrived in August 1997 the HTTP-only name HttpGet no longer fit, so it became urlget. When upload capability was added the name changed again, and on March 20, 1998 the project was released as curl, the name it still carries.

A pivotal step came in 2000, when, as the history page records, the code underwent a major internal overhaul to provide a proper library interface. That work produced libcurl, letting any application gain curl’s transfer abilities by linking the library rather than shelling out to the command-line tool. The licensing also settled toward a permissive MIT-style license, which encouraged wide adoption.

Over the following decades curl grew to support a long list of protocols and modern transports, including HTTP/2, HTTP/3, and WebSocket, while remaining a single small binary. It ships with countless operating systems and is bundled into phones, cars, and appliances, making it one of the most widely deployed pieces of software in the world and a near-universal reference point in API documentation, which frequently shows requests as curl command lines.

Sources

Last verified June 8, 2026