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

Recent Posts

  • Eclipse JKube 1.19 is now available!
  • 2025 Year in Review: The Year of AI
  • Synology DS224+: How to upgrade hard drives in RAID 1
  • Fabric8 Kubernetes Client 7.5 is now available!
  • Boosting My Developer Productivity with AI in 2025

Categories

  • Artificial Intelligence
  • Backend Development
  • Cloud Native
  • Engineering Insights
  • Frontend Development
  • JavaScript
  • Legacy
  • Operations
  • Personal
  • Pet projects
  • Quality Engineering
  • Tools

Archives

  • February 2026
  • January 2026
  • December 2025
  • October 2025
  • September 2025
  • July 2025
  • 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
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 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
  • October 2017
  • August 2017
  • July 2017
  • January 2017
  • December 2015
  • November 2015
  • December 2014
  • November 2014
  • October 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: 2026-01-25
Versión en Español

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

You can also check my other cURL guides for GET requests, PUT requests, and DELETE requests.

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

HTTP POST request with authentication

When posting data to protected endpoints, you'll need to provide authentication credentials along with your request.

Basic authentication

For HTTP Basic authentication, use the -u, --user command-line option:

curl -X POST -u username:password -d '{"field":"value"}' -H "Content-Type: application/json" https://api.marcnuri.com/data

Bearer token authentication

For APIs that use Bearer tokens (OAuth 2.0, JWT, etc.), add an Authorization header:

curl -X POST -H "Authorization: Bearer your-token-here" -d '{"field":"value"}' -H "Content-Type: application/json" https://api.marcnuri.com/data

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 - 2026 Marc Nuri