How to POST JSON using cURL?

You can send JSON with a POST request using cURL using the -X option with POST and the -d option (data).

Here is a sample command that sends a POST request to our hosted version of HTTPBin with JSON data:

curl -X POST \
    -d '{"name":"John Doe","age":30,"city":"New York"}'

Note that your JSON data must be enclosed in single quotes.

What is cURL?

cURL is an open-source command-line tool used to transfer data to and from a server. It is extremely versatile and supports various protocols including HTTP, FTP, SMTP, and many others. It is generally used to test and interact with APIs, download files, and perform various other tasks involving network communication.

What is a POST request?

An HTTP POST request is like filling out a form and handing it in at an office. In the online world, it's when you submit information, such as filling out a contact form or posting a comment on a website. Your web browser (the client) packages up the data you've entered and sends it over to the server with a message that says, "Here's some new info, please process and store it accordingly." The server then takes care of the data, either saving it or letting you know if there was an issue. POST requests are part of the HTTP protocol, which governs the way web clients and servers exchange information.

What is JSON?

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

Related curl web scraping questions: