The best examples of API testing with Postman: practical examples for real teams
Let’s start with what you actually run in Postman. Below are real examples of API testing with Postman: practical examples that mirror production use cases, not toy “hello world” endpoints.
Each scenario includes:
- The kind of API you’re testing
- The request setup
- The Postman test snippets
- Why teams use this pattern in 2024–2025
Example of testing a login API with token extraction
Modern apps live on token‑based auth. One of the best examples of API testing with Postman is validating a login endpoint and reusing the token across your collection.
Scenario: Test /auth/login and store the JWT for later requests.
Request: POST https://api.example.com/auth/login
Body (JSON):
{
"email": "test.user@example.com",
"password": "CorrectHorseBatteryStaple123!"
}
Tests tab in Postman:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Response has JWT token", function () {
const jsonData = pm.response.json();
pm.expect(jsonData).to.have.property("token");
pm.expect(jsonData.token).to.be.a("string");
});
// Save token to an environment variable for reuse
const token = pm.response.json().token;
pm.environment.set("authToken", token);
Later requests (for example, GET /users/me) use this variable in the Authorization header:
Authorization: Bearer {{authToken}}
This is a classic example of chaining requests in Postman: one request authenticates, the next ones inherit the token. It mirrors how end users log in and then navigate your app.
Example of validating CRUD APIs for a user service
Another one of the best examples of API testing with Postman: practical examples is a full CRUD flow. Instead of isolated calls, you build a mini‑scenario that creates, reads, updates, and deletes the same resource.
Flow:
- Create a user
- Fetch that user
- Update the user
- Delete the user
- Confirm the user is gone
Create user
POST /users
Body:
{
"name": "Jamie QA",
"email": "jamie.qa+{{timestamp}}@example.com"
}
Pre‑request script to generate a timestamp:
pm.variables.set("timestamp", Date.now());
Tests:
pm.test("Create user returns 201", function () {
pm.response.to.have.status(201);
});
const user = pm.response.json();
pm.environment.set("userId", user.id);
Get user
GET /users/{{userId}}
Tests:
pm.test("User can be retrieved", function () {
pm.response.to.have.status(200);
const user = pm.response.json();
pm.expect(user).to.have.property("email");
});
Update user
PATCH /users/{{userId}}
Body:
{
"name": "Jamie QA Updated"
}
Tests:
pm.test("User name updated", function () {
pm.response.to.have.status(200);
const user = pm.response.json();
pm.expect(user.name).to.eql("Jamie QA Updated");
});
Delete user and confirm deletion
DELETE /users/{{userId}}
pm.test("User deleted", function () {
pm.response.to.have.status(204);
});
Then GET /users/{{userId}} again:
pm.test("Deleted user not found", function () {
pm.response.to.have.status(404);
});
Examples include this kind of CRUD chain because it exposes data integrity problems, race conditions, and authorization bugs far better than single isolated calls.
Examples of API testing with Postman: practical examples for validation & error handling
Input validation and error messages are where many APIs quietly fail. Here are real examples of API testing with Postman focused on validation.
Invalid payload example
POST /users with missing email:
{
"name": "No Email User"
}
Tests:
pm.test("Validation fails with 400", function () {
pm.response.to.have.status(400);
});
pm.test("Error response structure is consistent", function () {
const body = pm.response.json();
pm.expect(body).to.have.property("error");
pm.expect(body.error).to.have.property("code");
pm.expect(body.error).to.have.property("message");
});
Boundary value example of API testing with Postman
For a pageSize parameter that should be between 1 and 100, send:
GET /items?pageSize=1000
pm.test("Page size out of range returns 400", function () {
pm.response.to.have.status(400);
});
Then a valid request:
GET /items?pageSize=100
pm.test("Max allowed page size works", function () {
pm.response.to.have.status(200);
const body = pm.response.json();
pm.expect(body.items.length).to.be.at.most(100);
});
In 2024–2025, with privacy and data quality under more scrutiny (see, for example, API security guidance from NIST and OWASP’s API Security Top 10 at owasp.org), these validation tests are no longer “nice to have.” They’re a baseline for any serious API.
Example of testing pagination and sorting behavior
Pagination bugs show up only when your dataset grows. This is where examples of API testing with Postman: practical examples can save you from embarrassing production issues.
GET /products?page=1&pageSize=20&sort=price_asc
Tests:
pm.test("Pagination returns expected page size", function () {
pm.response.to.have.status(200);
const body = pm.response.json();
pm.expect(body.items.length).to.be.at.most(20);
});
pm.test("Items are sorted by price ascending", function () {
const items = pm.response.json().items;
for (let i = 1; i < items.length; i++) {
pm.expect(items[i].price).to.be.at.least(items[i - 1].price);
}
});
You can clone this request and change page to 2, 3, or higher, then assert that IDs don’t repeat. These real examples show how a few lines of JavaScript in Postman can catch subtle data‑layer flaws.
Examples include performance and latency checks with Postman
No, Postman is not JMeter. But it’s perfectly fine for quick sanity checks on response times, especially in CI.
GET /health
Tests:
pm.test("Health endpoint responds quickly", function () {
pm.expect(pm.response.responseTime).to.be.below(300); // milliseconds
});
For higher‑traffic endpoints:
pm.test("Search API responds under 800ms", function () {
pm.expect(pm.response.responseTime).to.be.below(800);
});
In 2024–2025, user expectations for latency are only getting tighter, and performance guidance from organizations like NIST keeps pushing teams toward measurable SLOs. Postman tests like these give you a quick red/green signal in every pipeline run.
Example of API testing with Postman in a CI/CD pipeline (Newman)
The most underrated examples of API testing with Postman: practical examples are the ones that run without anyone opening the app. That’s where Newman, Postman’s CLI runner, comes in.
After exporting your collection and environment, a simple command like this runs all your tests:
newman run MyCollection.json \
-e StagingEnvironment.json \
--reporters cli,junit \
--reporter-junit-export newman-results.xml
You can wire this into GitHub Actions, GitLab CI, Jenkins, or Azure DevOps. For example, a GitHub Actions job:
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install -g newman
- run: |
newman run MyCollection.json \
-e StagingEnvironment.json \
--reporters cli,junit \
--reporter-junit-export newman-results.xml
This is a straightforward example of turning manual Postman checks into automated regression tests. As more teams adopt CI/CD in 2024–2025, these real examples are becoming the default, not the exception.
Examples of API testing with Postman: practical examples for third‑party integrations
Third‑party APIs fail in interesting ways: rate limits, timeouts, partial outages. Here’s how to model that in Postman.
Rate limit example
GET https://api.thirdparty.com/v1/data
Simulate hitting the rate limit by calling the request repeatedly (you can use Postman’s Collection Runner).
Tests:
if (pm.response.code === 429) {
pm.test("Rate limit response has Retry-After header", function () {
pm.expect(pm.response.headers.has("Retry-After")).to.be.true;
});
} else {
pm.test("Non-rate-limited call succeeds", function () {
pm.response.to.have.status(200);
});
}
Timeout / fallback example
If your service calls a third‑party API but should degrade gracefully, you can expose an internal endpoint like /integrations/status and test it with Postman:
pm.test("Integration status reports degraded state", function () {
const body = pm.response.json();
pm.expect(body.integrations.payment.status).to.be.oneOf(["ok", "degraded", "down"]);
});
Examples include this pattern because it forces teams to think about resilience instead of assuming external APIs always behave.
Example of contract testing with JSON schema in Postman
Contract testing isn’t just a buzzword from 2024 conference talks. You can implement a light version right inside Postman using JSON schema validation.
GET /orders/{{orderId}}
Tests:
const schema = {
"type": "object",
"required": ["id", "status", "total", "items"],
"properties": {
"id": { "type": "string" },
"status": { "type": "string" },
"total": { "type": "number" },
"items": {
"type": "array",
"items": {
"type": "object",
"required": ["sku", "quantity"],
"properties": {
"sku": { "type": "string" },
"quantity": { "type": "integer", "minimum": 1 }
}
}
}
}
};
pm.test("Order schema is valid", function () {
pm.response.to.have.jsonSchema(schema);
});
This is one of the best examples of API testing with Postman when multiple teams depend on the same API. A breaking change to the contract shows up immediately in your test results.
Security‑focused examples of API testing with Postman: practical examples
Postman is not a full security scanner, but it’s perfectly good for repeatable checks aligned with high‑level guidance like OWASP and NIST.
Example of missing auth check
Try hitting a protected endpoint without auth:
GET /admin/users
Tests:
pm.test("Admin endpoint requires auth", function () {
pm.expect([401, 403]).to.include(pm.response.code);
});
Example of testing for verbose error messages
GET /users/INVALID_ID
pm.test("Error message does not leak stack traces", function () {
const body = pm.response.text();
pm.expect(body).to.not.include("Exception");
pm.expect(body).to.not.include("Traceback");
});
Security guidelines from organizations like CISA and OWASP stress limiting information leakage. These real examples of API testing with Postman make that expectation executable.
FAQ: common questions about examples of API testing with Postman
Q: What are some simple examples of API testing with Postman I can start with today?
A: Start with three basics: a login test that stores a token, a CRUD flow for your primary resource (for example, POST /items, GET /items/{id}, DELETE /items/{id}), and a health check with a response‑time assertion. Those examples of API testing with Postman: practical examples will already catch a surprising number of regressions.
Q: Can you give an example of using Postman tests in a CI pipeline?
A: Export your collection and environment, install Newman in your pipeline, and run newman run as part of your build. Treat failures as build failures. The CI example above with GitHub Actions is a good template; you can adapt it to Jenkins or GitLab with minimal changes.
Q: Are these examples enough for performance testing?
A: No. The performance examples of API testing with Postman are good for smoke checks, not full load testing. For sustained load and concurrency, pair Postman with tools like k6, JMeter, or Locust, and use your Postman tests as a reference for request payloads and expected behavior.
Q: How do I organize many real examples of API testing with Postman across environments?
A: Use collections to group related endpoints (for example, “User Service” or “Billing"), and environments for dev, staging, and production‑like setups. Store base URLs and secrets as environment variables. That way, the same practical examples run everywhere just by switching environments.
Q: Where can I learn more about API quality and security best practices beyond Postman itself?
A: For security, start with OWASP’s API Security Top 10 at owasp.org. For software quality and testing principles, NIST’s publications at csrc.nist.gov and software quality pages at nist.gov are worth bookmarking. They give you the theory; the examples of API testing with Postman: practical examples in this article help you turn that theory into repeatable tests.
Related Topics
Examples of load testing with Postman: 3 practical examples you can actually use
The best examples of API testing with Postman: practical examples for real teams
Practical examples of examples of debugging API requests in Postman
Practical examples of POST request with JSON in Postman: 3 core examples and more
Practical examples of examples of using Postman to test a RESTful API
Examples of Chaining Requests in Postman: 3 Practical Patterns You’ll Actually Use
Explore More Testing APIs with Postman
Discover more examples and insights in this category.
View All Testing APIs with Postman