Request Tester

Build and send HTTP requests via proxy — import/export cURL, edit headers, cookies and body

If you're debugging a scraper or poking at an API, this saves you from writing throwaway curl commands. Send requests from the browser — optionally through a proxy — and see the full response: status, headers, body, redirect chain. Paste a cURL command to fill every field instantly, or build the request by hand and copy it back out as cURL. Cloudflare, DataDome and PerimeterX are detected automatically, so you know what protection you're up against before writing a single line of scraping code.

via Germany · datacenter · HTTP
:
:
Parsistent Proxies
Your Proxies

Add proxies in Proxy Manager below

One proxy per line:

How to use

  1. 1Import a cURL command (optional)Already have a cURL command from your browser's DevTools (Copy as cURL) or another tool? Paste it on the cURL tab and every field — URL, method, headers, cookies and body — is filled automatically.
  2. 2Enter a URLThe address of the page or API endpoint you want to send a request to.
  3. 3Select a methodGET, POST, PUT, DELETE, PATCH, and others. GET for loading pages and data, POST for sending data to the server.
  4. 4Add headersAt minimum, add a User-Agent so the site treats the request as coming from a browser. Add Cookie, Authorization, and any other headers as needed.
  5. 5Add a request bodyFor POST, PUT, and PATCH, add the body in the Body section. Available formats: JSON, Form, and Raw.
  6. 6Select a proxyUse the free proxies or connect your own via Proxy Manager — HTTP, SOCKS4, SOCKS5, including with auth. Supported formats are described in the Format popup.
  7. 7Click SendThe full response appears: status code, headers, body, redirect chain. If an antibot system is detected, it will be labeled.

Examples

Simple GET request to a public API
GET https://api.github.com/users/octocat
Inspect the response structure, codes, and headers — confirm needed data is available before writing a parser.
GET with a custom User-Agent
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
When a site blocks the request — add a real User-Agent and see if the response changes.
POST with JSON body
POST /api/login Body: {"email":"test@example.com","password":"test"}
Test an auth endpoint — check the body format and response structure before writing the scraper.
Request via HTTP proxy
Proxy: http://user:pass@proxy.example.com:8080
Confirm the proxy works — check if the IP changed in the response headers.
Tracking redirects
GET http://example.com (Follow redirects: on)
View the full 301/302 redirect chain to the final URL — useful when scraping shortened links.
Request to an authenticated API
GET /api/user/profile Authorization: Bearer eyJhbGci...
Test a protected endpoint — paste the token in the Authorization header and check the response before writing code.
Hidden JSON endpoint on a site
GET /api/catalog?page=1 Accept: application/json
Check whether the site returns data via a JSON API directly — faster than HTML parsing and gives a clean structure.
Import a request from a cURL command
curl 'https://api.example.com/v1/users' -H 'Authorization: Bearer ...' -H 'Cookie: session=abc'
Paste a cURL command on the cURL tab — URL, method, headers, cookies and body fill in automatically, then tweak and send.
Edit cookies one by one
Cookie: session_id=abc123; cf_clearance=xyz; theme=dark
Expand the Cookie header into individual rows — toggle, edit or delete each cookie separately without touching the rest.

When to use for web scraping

When writing a scraper, the most common question is "why does my code get different HTML than I see in the browser?" There are several possible reasons: the browser executes JavaScript and builds the DOM, the site returns different content based on User-Agent or cookies, or Cloudflare/DataDome is blocking automated requests. Request Tester shows exactly what your scraper will see: the raw HTTP response without browser rendering. Compare responses with different headers, test proxy behavior, confirm the right cookies are sent — all without writing a single line of code. Antibot systems are detected automatically: if the site is protected by Cloudflare, DataDome, or PerimeterX — it will be noted in the result, and you can immediately decide how to handle it.

FAQ

Why do I see different HTML than in the browser?
The browser executes JavaScript and renders the DOM tree after loading. Request Tester returns the raw HTTP response — the same thing your Python or Node.js scraper will get. If content is added via JS, it won't be in the raw response. In that case, you need a tool with JS rendering support — Playwright, Puppeteer, or a cloud browser.
Does the tool send requests from my IP?
No. All requests go only through proxies — your IP is not visible to the site. By default, the platform's free proxies are used; add your own via Proxy Manager.
What format should I use for my proxies?
URI format is supported: http://host:port, http://user:pass@host:port, socks5://host:port, socks5://user:pass@host:port. SOCKS4 follows the same pattern via socks4://. All formats with examples are listed in the Format popup in Proxy Manager.
How is it different from curl?
Functionally — almost the same for basic requests. The difference is convenience: here you see the formatted response immediately in the browser, no need to remember curl flag syntax, and antibot systems are automatically identified. For scripting and automation, curl is preferable; for debugging and exploration — this tool is faster.
Can I import a cURL command?
Yes. Open the cURL tab, paste a command (for example, copied from your browser's DevTools via Copy as cURL), and click Fill fields. The URL, method, headers, cookies and body are parsed and filled in automatically — no need to retype anything. Both copy styles from Chrome DevTools work: Copy as cURL (bash) and Copy as cURL (cmd), the Windows caret-escaped format.
Can I export my request as cURL?
Yes. The cURL tab shows a ready-to-run cURL command generated live from the current URL, method, headers, cookies and body, with a Copy button. If you've selected one of your own proxies it's included via -x; Parsistent's built-in proxies run server-side and are intentionally left out of the generated command.
Which cURL flags are recognized on import?
URL (first argument or --url), -X/--request (method), -H/--header (headers), -d/--data/--data-raw/--data-binary/--data-ascii (body, multiple joined with &), --data-urlencode (URL-encoded body), -F/--form (multipart — simplified to a raw body with a warning), -b/--cookie (Cookie header), -u/--user (Basic Authorization header), -A/--user-agent and -e/--referer (their headers). Flags like --compressed, -k, -L, -s, -i, -v are ignored, and -x/--proxy is ignored because the tool has its own proxy selector. Body type (JSON / Form / Raw) is detected automatically from the Content-Type header or the body shape.
How do I add a proxy to a cURL command?
Add the -x flag: curl -x http://user:pass@host:port 'https://target' for HTTP proxies, or -x socks5://user:pass@host:port for SOCKS5 (use socks5h:// instead if you want DNS resolved through the proxy). When you select one of your own proxies, the generated cURL on the cURL tab already includes it. Parsistent's own proxies are applied on the server and intentionally not embedded in the generated command — copy the command and add your own -x if you need it outside the tool.
How do I pass cookies in a request?
Add a Cookie header in the Headers section — for example Cookie: session_id=abc123; user_pref=dark, copied from the browser's DevTools on the Network → Request Headers tab. You can then expand the Cookie header into per-cookie rows and toggle, edit or delete each cookie individually; only the enabled ones are sent.
The site blocked my request — what should I do?
The tool automatically identifies the antibot system and shows its name in the result — Cloudflare, DataDome, or PerimeterX. Try switching proxies: different proxies have different reputations, and what's blocked through one may pass through another. If that doesn't help — try other approaches.
Why does the request time out?
The default timeout is 15 seconds. If the site takes longer, the request is interrupted. This happens on slow sites or sites that intentionally delay requests. Also check that the URL is correct and the site is accessible.

Related tools