In this article, we'll explore how to leverage cURL to perform a POST request to a server by using a proxy server. By doing so, we can obtain data while maintaining anonymity and add a level of security through the proxy.

Performing a POST request with cURL involves specifying:

  • the target URL
  • the data to be sent
  • and any additional parameters such as:
    • headers
    • authentication tokens

Additionally, we can configure cURL to use a proxy server to anonymize our request and hide our true IP address.

cURL Example

Let's illustrate this concept with a practical example. Testing the cURL with the current IP address can be done by:

curl && echo

cURL and proxy

Assume we want to retrieve geolocation data for some IP address using the IPinfo API and a proxy server located at "". We can achieve this with the following cURL command:

curl -x -d '{"ip": ""}'

In this command:

  • -x specifies the proxy server and port to use.
  • -d '{"ip": ""}' sends the IP address "" as JSON data in the POST request body.
  • is the target URL for the POST request.

Free proxy lists

To get free proxy samples we can use the following resources:

cURL and http proxy

Below you can find several examples of cURL command using http addresses obtained from the resources above:

curl -x && echo

curl -x && echo

curl -x && echo

the result is:


cURL and socks5 proxy

To use socks5 proxy we need to add parameter --socks5:

curl --socks5 && echo



cURL, proxy, user and password

Finally to use the cURL command with user and password use the following syntax:

curl -x --socks5 --proxy-user theuser:thepass -L

or we can use alternative syntax:

curl -x http://<user>:<pass>@<proxyhost>:<port>/ -o <filename> -L <link>


In this short post you learn how to use cURL commands with different proxy types. You also learn how to find free proxies for testing purposes.

Before using any of those read the terms of use of any of them.