Your First GET Request

Enough theory — let's send something. This lesson walks through building your very first request in Postman: a plain GET against the RecipeBox /recipes endpoint, reading what comes back, and then narrowing the result down with a query parameter.

Step 1: Create a New Request

  1. In Postman, click the + tab (or "New" → "HTTP Request") to open a blank request tab.
  2. Leave the method dropdown on GET — it's the default, and it's what we want here.
  3. Click into the URL bar and type:
GET https://api.recipebox.example.com/recipes

Click Send.

Step 2: Read the Response

The response panel below the request fills in with three things worth checking every single time, before you even look at the body:

  • Status: 200 OK — the request succeeded.
  • Time: something like 84 ms — how long the round trip took.
  • Size: the response payload size.

Then the body itself — since /recipes with no ID returns the whole list, the body is a JSON array of recipe objects, not a single object like the earlier examples:

// Response — 200 OK
[
  {
    "id": 1,
    "title": "Masala Chai",
    "category": "Beverage",
    "prepMinutes": 10,
    "isPublished": true
  },
  {
    "id": 2,
    "title": "Paneer Butter Masala",
    "category": "Dinner",
    "prepMinutes": 20,
    "isPublished": true
  },
  {
    "id": 3,
    "title": "Vegetable Biryani",
    "category": "Dinner",
    "prepMinutes": 45,
    "isPublished": false
  }
]
Note: Notice id: 3, Vegetable Biryani, has "isPublished": false. A real RecipeBox API would likely hide unpublished recipes from a public listing entirely, or only show them to the recipe's own author. If you ever see a draft recipe show up in a listing it shouldn't, that's exactly the kind of thing API testing catches that a UI test might not, since the mobile app's list screen might visually filter it out even though the raw API response leaked it.

Step 3: Narrow the Results with a Query Parameter

Now let's ask for only the Dinner recipes. You could type ?category=Dinner directly onto the end of the URL, but Postman gives you a friendlier way through the Params tab:

  1. Click the Params tab, just below the URL bar.
  2. In the empty row, type category under the Key column.
  3. Type Dinner under the Value column.
  4. Watch the URL bar — Postman automatically updates it to:
GET https://api.recipebox.example.com/recipes?category=Dinner

Click Send again.

The response is now filtered down to just the recipes whose category is "Dinner":

// Response — 200 OK
[
  {
    "id": 2,
    "title": "Paneer Butter Masala",
    "category": "Dinner",
    "prepMinutes": 20,
    "isPublished": true
  },
  {
    "id": 3,
    "title": "Vegetable Biryani",
    "category": "Dinner",
    "prepMinutes": 45,
    "isPublished": false
  }
]

Worth trying yourself: what happens if you send ?category=Lunch and no recipe has that category — do you get an empty array [] with 200, or does the API respond with 404? Both are defensible designs, but only one matches what this particular API's documentation promises — and that's exactly the kind of question a good tester asks rather than assumes.

Up next: Reading data is only half the picture. Head to POST, PUT & DELETE Requests to start creating, replacing, and removing recipes.