GET reads data. POST creates it. When you fill a signup form and click "Register" — that's a POST request. When you add an item to cart — POST. When you place an order — POST. Any time you're creating something new on the server, it's POST.
POST requests carry a body. That body is the data you want to create. Think of it like filling an application form — the URL says WHERE to submit, the body says WHAT to submit.
Open a new request tab (click "+")
Change the method from GET to POST using the dropdown
Enter the URL: https://jsonplaceholder.typicode.com/posts
Click the "Body" tab below the URL bar
Select "raw" (not form-data or x-www-form-urlencoded)
In the dropdown next to raw, change "Text" to "JSON"
Type the JSON body (see below)
Click Send
{
"title": "My First Postman Post",
"body": "Created while learning API testing at TesterRank",
"userId": 1
}You should get this response:
{
"title": "My First Postman Post",
"body": "Created while learning API testing at TesterRank",
"userId": 1,
"id": 101
}Notice two things. First, the status code is 201 Created — not 200. That's correct for resource creation. Second, the response includes id: 101 — the server assigned an ID to your new resource.
Key Point: POST returns 201 Created on success, not 200. The response usually contains the created resource with a server-assigned ID. Always verify both.
When you select "raw" and "JSON" for the body, Postman automatically adds the Content-Type: application/json header. Click the Headers tab — you'll see it listed there. This header tells the server "the data I'm sending is JSON." Without it, the server wouldn't know how to parse your body.
If your POST request gets a 400 or 415 error, the first thing to check is Content-Type. Missing or wrong Content-Type is the #1 reason POST requests fail for beginners.
| Format | Content-Type | When to Use |
|---|---|---|
| raw > JSON | application/json | Most REST APIs. This is your default. |
| form-data | multipart/form-data | File uploads, image uploads |
| x-www-form-urlencoded | application/x-www-form-urlencoded | Legacy forms, some OAuth token endpoints |
| raw > XML | application/xml | SOAP APIs, legacy systems |
| binary | application/octet-stream | Sending raw file bytes |
Don't confuse form-data with JSON. If an API expects JSON and you send form-data, you'll get a 400 or 415 error. Read the API docs to know which format to use. 90% of the time, it's JSON.
# Create a new user
POST https://jsonplaceholder.typicode.com/users
Body:
{
"name": "Rahul Verma",
"username": "rahulv",
"email": "rahul@example.com",
"phone": "9876543210"
}
# Create a new comment
POST https://jsonplaceholder.typicode.com/comments
Body:
{
"postId": 1,
"name": "Great post!",
"email": "tester@example.com",
"body": "Really helpful content. Thanks!"
}Q: What is the difference between GET and POST?
A: GET retrieves data — it's read-only, has no body, and is safe (doesn't change server state). POST creates new resources — it carries a JSON body, changes server state, and returns 201 on success. GET is idempotent (same result every time). POST is not — calling it 5 times creates 5 resources. In testing, GET is for reading and validating data. POST is for testing creation flows.
Key Point: POST creates resources. Set body to raw JSON, check for 201 status, verify the returned ID. Content-Type: application/json is mandatory.