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
- Right-click Start and open Terminal (or search for Command Prompt).
- Check it’s installed: curl.exe –version.
- Fetch a page: curl.exe https://example.com.
- Save to a file: curl.exe -L -o page.html https://example.com.
- See only headers: curl.exe -I https://example.com.

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.zipsaves 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
-fso 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
- Open Terminal or Command Prompt.
- Type curl.exe and a URL.
- Add options such as -o, -L or -I.
- Use curl.exe, not curl, in Windows PowerShell.

Kermit Matthews is a freelance writer based in Philadelphia, Pennsylvania with more than a decade of experience writing technology guides. He has a Bachelor’s and Master’s degree in Computer Science and has spent much of his professional career in IT management.
He specializes in writing content about iPhones, Android devices, Microsoft Office, and many other popular applications and devices.