POST JSON data using cURL

David Y.
jump to solution

The Problem

How do I send a POST request containing JSON data using cURL?

I have tried the following request:

curl -X POST \
  -d '{"user_id": 1, "verified": true}' \
  https://example.com/api/method

However, this returns an HTTP 415 Unsupported Media Type error.

The Solution

Most web endpoints that accept JSON data will expect to receive requests with the Content-Type: application/json header. By default, cURL adds the header Content-Type: application/x-www-form-urlencoded when data is provided with a request. Therefore, we need to manually specify this header in our cURL request using the -H/--header flag:

curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"user_id": 1, "verified": true}' \
  https://example.com/api/method

More information about cURL can be found by perusing its manual page, which is accessible on the cURL website or through the command man curl.

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry