Recommended Free Tools
Use curl URL to make a basic HTTP GET request from a terminal. Add options to inspect response headers, send request headers or a body, upload a file, or diagnose a failure. curl transfers data; it does not render a webpage like a browser or interpret an API response for you.
Make a basic GET request
Open a terminal and run:
curl https://example.com/
A request to a URL uses GET by default. curl writes the response body to standard output, so the result may appear directly in your terminal. To save it to a named file, use -o:
curl https://example.com/ -o response.html
Use -O to save the response under the filename specified by the remote URL:
curl -O https://example.com/manual.pdf
The server decides what it returns. A successful transfer does not mean the response is HTML, valid JSON, or otherwise suitable for your intended use.
#1 Best Overall
Inspect status, headers, and response content
Request headers only with HEAD
curl -I https://example.com/
-I makes a HEAD request, which asks for response headers without the response body. Some servers do not support HEAD or handle it differently from GET, so a failed HEAD request does not necessarily mean GET will fail.
Include response headers with the body
curl -i https://example.com/
-i keeps the usual request method and includes the returned headers in the output alongside the body. This is distinct from -I, which changes the request to HEAD.
Write response headers to a file
curl -D headers.txt https://example.com/
-D saves response headers separately, while the response body continues to go to standard output unless you also save it with -o.
Add request headers
Use -H or --header to send a header. For example, to tell an API you prefer JSON:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
curl -H 'Accept: application/json' https://api.example.com/items
Headers communicate information such as the response format you prefer or credentials required by an API. Follow that API’s documentation for the exact header names and values it accepts. curl also allows an empty header value to suppress a header it would otherwise send; avoid copying empty-header overrides unless you intend that effect.
Send data with POST
Submit form-style data
curl -d 'name=Sam&role=editor' https://api.example.com/items
-d (also called --data) sends a POST body and uses application/x-www-form-urlencoded by default. Encode values appropriately when they contain characters with special meaning in URLs or form data. The endpoint determines which fields and formats it accepts.
Submit JSON
curl -H 'Content-Type: application/json' -d '{"name":"Sam"}' https://api.example.com/items
The content type describes the format of the body you are sending. Set it to match the body and the API contract; specifying JSON does not guarantee the server accepts that field or operation.
Preserve the body bytes
Use --data-binary when exact byte preservation, including newlines, matters. It also defaults to the form content type, so explicitly set another Content-Type when the endpoint expects a different format.
Choose a method that matches the transfer
Prefer the option that performs the transfer you mean to make:
-Irequests headers using HEAD.-dsends data in a POST request.-Tor--upload-fileuploads a file; for HTTP, this typically uses PUT.
An HTTP upload works only if the server is configured to accept it. -X or --request changes the method string curl sends; it does not make curl adopt the behavior associated with that method. For example, -X HEAD alone does not make a proper HEAD transfer. Use -I for that.
Rank #2
- We have reserved a 0.6in (1.5cm) white margin for you, which is convenient for you to frame with a photo frame
- Canvas posters are different from paper posters in that they will not deteriorate due to environmental factors such as humidity.
- Because everyones monitor is different, the poster may have a slight color difference
- Let it enhance your art space and decorate your home
- If you like the same series of posters, welcome to click on my shop to buy
Follow redirects with care
Use -L or --location when you want curl to follow a redirect:
curl -L https://example.com/
Redirects can change where a request goes. A custom method set with -X can remain in use across redirects, potentially causing an unintended request to the destination. Sensitive headers or credentials may also be exposed to another server in relevant redirect configurations. Check the destination before forwarding credentials or cookies, and do not use --location-trusted casually.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesDiagnose a failed request
See the request and response details
curl -v https://example.com/
Verbose mode displays protocol details that help identify what curl sent and what the server returned. For a more detailed trace, write an ASCII trace to a file:
curl --trace-ascii trace.txt https://example.com/
Check the response status and headers rather than assuming that a completed transfer means the server accepted the request. Verbose and trace output can contain tokens, cookies, credentials, personal information, and other private data. Protect these files and redact sensitive values before sharing them.
Common symptoms and next checks
- The terminal shows a large response: curl writes the body to standard output by default. Save it with
-o filenameor use-Ofor the remote filename. - A HEAD request fails but the URL otherwise works: the server may reject HEAD. Try a normal GET and inspect it with
-iif you need headers and body together. - The API rejects a POST: verify the method, body format, content type, required fields, authentication, and permissions against the API’s contract.
- An upload is rejected: confirm that the server accepts uploads and that the endpoint expects the method and file format you sent.
- A redirected request behaves unexpectedly: inspect the redirect destination and avoid carrying custom methods or sensitive headers to an unintended host.
Use curl for HTTP, not browser rendering
curl requests and transfers server responses. It does not display a page as a browser would, run a browser-based interaction flow, or automatically understand the application’s data. If your goal is to inspect the actual rendered appearance of a webpage, use a browser or a screenshot service rather than treating raw HTML or a response body as a visual capture.
Or skip the browser setup
If the goal is a webpage screenshot rather than a raw HTTP response, ScreenshotNeo offers a screenshot API and MCP server. A one-request example is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before capture; bot checks, blank pages, and failed loads are not billed. Its MCP server lets AI agents take screenshots, and 1,000 screenshots a month are free with no card; paid plans start at $5 for 3,000. Sign up for free.
Check your installed curl version
Option availability and behavior can vary by curl version and build. For version-specific details, check curl --help or the installed man page. The official curl HTTP scripting guide, curl tutorial, curl man page, and curl known risks guidance provide further details. The project describes Everything curl as a free online book, also available as a PDF.
Frequently Asked Questions
Does curl render HTML like a web browser?
No. It transfers the server response; it does not render the page as a browser does.
Where can I check which curl options my installation supports?
Use curl --help or consult the man page installed for your curl version and build.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




