A logo showing the text blog.marcnuri.com
Español
Home»Tools»cURL: POST request examples

Recent Posts

  • Fabric8 Kubernetes Client 7.2 is now available!
  • Connecting to an MCP Server from JavaScript using AI SDK
  • Connecting to an MCP Server from JavaScript using LangChain.js
  • The Future of Developer Tools: Adapting to Machine-Based Developers
  • Connecting to a Model Context Protocol (MCP) Server from Java using LangChain4j

Categories

  • Artificial Intelligence
  • Front-end
  • Go
  • Industry and business
  • Java
  • JavaScript
  • Legacy
  • Operations
  • Personal
  • Pet projects
  • Tools

Archives

  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • August 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • February 2020
  • January 2020
  • December 2019
  • October 2019
  • September 2019
  • July 2019
  • March 2019
  • November 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • December 2017
  • July 2017
  • January 2017
  • December 2015
  • November 2015
  • December 2014
  • March 2014
  • February 2011
  • November 2008
  • June 2008
  • May 2008
  • April 2008
  • January 2008
  • November 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007

cURL: POST request examples

2021-08-28 in Tools tagged curl / HTTP / Quickie by Marc Nuri | Last updated: 2021-08-29
Versión en Español

cURL HTTP POST request examples with my most frequently used command-line options.

HTTP POST request

The most basic command you can execute with cURL is an HTTP POST request without a body.

To tell cURL to use a POST request method we can use the -X, --request command-line option, the following command will perform the request and output the response body:

curl -X POST https://blog.marcnuri.com

HTTP POST request with data

Whenever you perform a POST request, it's very likely that you need to send some type of data along with it.

To send some data with the POST request we can use the -d, --data command-line option. This will cause curl to send data the same way it does when you fill a browser HTML form and press the submit button. It will also cause cURL to add the Content-Type header with an application/x-www-form-urlencoded value.

curl -X POST -d "field=value&tool=curl" https://postman-echo.com/post

HTTP POST request to upload a file

To upload a file using cURL you can use the -F, --form command-line option. Similar to the --data option, this lets cURL simulate a user sending a filled in HTTP form by pressing the submit button.

In this case, cURL adds the Content-Type header, but with a multipart/form-data value instead.

curl -X POST -F "field=@/path/to/file.txt" https://postman-echo.com/post

Notice the @ symbol before the path to the file. This forces cURL to attach the file as a file upload.

You can use this method to send data for as many fields as you want:

curl -X POST -F "field=@/path/to/file.txt" -F "tool=curl" -F "other-file=@/path/to/other" https://postman-echo.com/post

Upload a file with a custom filename

If you want to change the name of the file you're uploading you can achieve this by tweaking a little the value of the field you provide for the cURL command. You need to add ;filename= followed by the name of the file you want to use instead just after the path to the file you are attaching.

curl -X POST -F 'field=@"/path/to/file.txt";filename="other-name.txt' https://postman-echo.com/post

HTTP POST request with JSON data

To perform an HTTP POST request with JSON content in the request body you can use the -d, --data options in combination with a custom Content-Type header (-H, --header).

curl -X POST -d '{"field":"value"}' -H "Content-Type: application/json" https://postman-echo.com/post

JSON from file

In case you want to load the JSON content from a file instead of providing it via command-line, you can load it using the @ symbol followed by the path to the file that contains the JSON data:

curl -X POST -d "@file-with-json.json" -H "Content-Type: application/json" https://postman-echo.com/post

Summary

These are some of the common cURL POST HTTP request examples I use on a daily basis. I hope they may come in useful for you too.

References

  • The book: Everything curl
  • cURL Man Page
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Post navigation
cURL: PUT request examplesHow to disable wildcard imports in IntelliJ IDEA
© 2007 - 2025 Marc Nuri