cURL

cURL

Command line tool for transferring data with URLs

Description

An API call is failing and you need to see what the server actually returned — not the browser rendering of it, but the status line, the headers and the body byte for byte. A packet capture tool is too heavy for that and writing a script is too slow.

One curl line does it. Maintained continuously since 1996, it speaks more than twenty protocols, from HTTP/3 down to FTP, SMTP and MQTT. Add -v for the full exchange, -I for headers only, -o to save to a file; resume, cookies, proxies, client certificates and rate limits are all flags. The libcurl library underneath ships inside cars, televisions, routers, printers and countless applications, with an estimated twenty billion installations. Windows 10 and most Linux distributions include it already.

Features



Protocols in depth: HTTP/1.1, HTTP/2 and HTTP/3 plus FTP, SFTP, SMTP, IMAP, LDAP, MQTT and WebSocket, all through one flag vocabulary.

Built for debugging: -v prints the handshake and every header, and -w formats timing and status metrics — usually enough to find the problem.

Resume and throttle: -C - continues an interrupted download and --limit-rate caps bandwidth, which makes it safe in background scripts.

Authentication and proxies: Basic, Bearer, NTLM and Kerberos auth, HTTP and SOCKS proxies, client certificates and custom CA bundles.

Embeddable as libcurl: The same capability as a C library with bindings in nearly every language, underpinning a great deal of other software.