How to Run curl in Windows

To run curl in Windows, open Command Prompt, PowerShell or Terminal and type a command such as curl.exe https://example.com. Windows 10 (version 1803 and later) and Windows 11 include curl, so you don’t need to install anything. In Windows PowerShell, type curl.exe rather than just curl, because “curl” there can point to a different built-in command with different options.

Quick Answer

Open Terminal > curl.exe followed by a URL. Add -o filename to save, -I for headers only, -L to follow redirects.

Steps to Run curl

  1. Right-click Start and open Terminal (or search for Command Prompt).
  2. Check it’s installed: curl.exe –version.
  3. Fetch a page: curl.exe https://example.com.
  4. Save to a file: curl.exe -L -o page.html https://example.com.
  5. See only headers: curl.exe -I https://example.com.
Terminal running curl.exe commands to fetch headers and download a file
Use curl.exe in PowerShell to avoid the built-in alias.

Common curl Options

Option What it does
-o name Save output to a file
-O Save using the file name from the URL
-L Follow redirects
-I Show response headers only
-X POST -d “key=value” Send a POST request with form data
-H “Header: value” Add a request header

curl vs. curl.exe in PowerShell

In Windows PowerShell 5.1, the version built into Windows, curl is an alias for the Invoke-WebRequest cmdlet, which uses different options and output. Typing curl.exe always runs the real curl program. In Command Prompt, plain curl works fine. Newer PowerShell 7 releases removed the alias, but using curl.exe everywhere keeps your commands consistent.

Send Data to an API

curl is often used to test web APIs. In Command Prompt, a JSON POST request looks like this:

curl.exe -X POST -H "Content-Type: application/json" -d "{\"name\":\"test\"}" https://example.com/api

Quoting is the most common stumbling block on Windows: Command Prompt needs double quotes on the outside and escaped double quotes inside. A simpler option is to put the JSON in a file and send it with -d @data.json, which works the same way in every shell. Add -H "Authorization: Bearer token" when an API needs a key, and keep real keys out of scripts you share.

Download Files Reliably

  • curl.exe -L -O https://example.com/file.zip saves the file with its original name, following redirects.
  • Add -C - to resume an interrupted download.
  • Add --progress-bar (or -#) for a simple progress bar.
  • Add -f so curl reports an error instead of saving an error page when the server returns a failure code.

Only download files from sites you trust, and scan anything unexpected with Windows Security before opening it.

New to the command line? See how to open Terminal on Windows.

Troubleshooting

  • “Invoke-WebRequest” errors: You typed curl in Windows PowerShell; use curl.exe.
  • Quotes break in PowerShell: Use single quotes around JSON, or run the command in Command Prompt.
  • Certificate errors: Check the URL and your date and time. Avoid turning off certificate checks.
  • Opening the shells: See opening PowerShell and opening Command Prompt.

Frequently Asked Questions

Do I need to install curl?

Not on current Windows 10 and 11. Older versions need a download from the official curl site.

Can I update the built-in curl?

It updates with Windows. You can install a newer build separately if you need new features.

Is curl safe?

Yes, but only download and run files from sources you trust.

Summary

  1. Open Terminal or Command Prompt.
  2. Type curl.exe and a URL.
  3. Add options such as -o, -L or -I.
  4. Use curl.exe, not curl, in Windows PowerShell.