Bird
Raised Fist0
Postmantesting~15 mins

API key authentication in Postman - Build an Automation Script

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Verify API key authentication for accessing user profile endpoint
Preconditions (3)
Step 1: Open Postman and create a new GET request
Step 2: Enter the user profile API endpoint URL in the request URL field
Step 3: In the Headers tab, add a new header with key 'x-api-key' and value as the valid API key
Step 4: Send the request
Step 5: Observe the response status code and body
Step 6: Remove the API key header
Step 7: Send the request again without the API key
Step 8: Observe the response status code and body
✅ Expected Result: When the API key is included, the response status code is 200 and the user profile data is returned. When the API key is missing, the response status code is 401 Unauthorized with an error message.
Automation Requirements - Postman test scripts
Assertions Needed:
Verify response status code is 200 when API key is present
Verify response body contains expected user profile fields
Verify response status code is 401 when API key is missing
Verify response body contains error message for missing API key
Best Practices:
Use environment variables to store API key securely
Use pre-request scripts to set headers dynamically
Write clear and concise test assertions in the Tests tab
Avoid hardcoding sensitive data in the request
Automated Solution
Postman
pm.test('Status code is 200 with API key', function () {
    pm.response.to.have.status(200);
});
pm.test('Response has user profile fields', function () {
    const jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property('id');
    pm.expect(jsonData).to.have.property('name');
    pm.expect(jsonData).to.have.property('email');
});

The first test checks that the response status code is 200, which means the request with the API key was successful.

The second test verifies that the response body contains the expected user profile fields: id, name, and email. This confirms that the API returned the correct data.

These tests should be placed in the Tests tab of the Postman request that includes the API key in the header.

To test the missing API key scenario, create a separate request without the API key header and add tests to verify the 401 status and error message.

Common Mistakes - 3 Pitfalls
Hardcoding the API key directly in the request headers
Not checking the response status code before parsing the response body
Writing tests only for the successful case and ignoring error scenarios
Bonus Challenge

Now add data-driven testing with 3 different API keys: one valid, one invalid, and one empty

Show Hint

Practice

(1/5)
1. What is the main purpose of using an API key in Postman when testing an API?
easy
A. To authenticate and authorize access to the API
B. To format the API response data
C. To change the API endpoint URL
D. To speed up the API response time

Solution

  1. Step 1: Understand API key role

    An API key is used to identify and authorize the client making the request.
  2. Step 2: Identify purpose in Postman

    In Postman, the API key is added to authenticate requests so the server knows who is calling.
  3. Final Answer:

    To authenticate and authorize access to the API -> Option A
  4. Quick Check:

    API key = Authentication [OK]
Hint: API key controls access, not data format or speed [OK]
Common Mistakes:
  • Confusing API key with response formatting
  • Thinking API key changes URL
  • Assuming API key improves speed
2. Which of the following is the correct way to add an API key in Postman headers?
easy
A. Key: Accept, Value: application/xml
B. Key: api_key, Value: <API_KEY>
C. Key: Content-Type, Value: application/json
D. Key: Authorization, Value: Bearer <API_KEY>

Solution

  1. Step 1: Identify standard header for API key

    Many APIs use the Authorization header with a Bearer token format for API keys.
  2. Step 2: Check other options

    api_key is not a standard header key; Content-Type and Accept relate to data format, not authentication.
  3. Final Answer:

    Key: Authorization, Value: Bearer <API_KEY> -> Option D
  4. Quick Check:

    Authorization header = API key location [OK]
Hint: Use Authorization: Bearer <API_KEY> for API key in headers [OK]
Common Mistakes:
  • Using Content-Type or Accept headers for API key
  • Using non-standard header names like api_key
  • Omitting Bearer prefix when required
3. Consider this Postman request setup:
GET https://api.example.com/data?api_key=12345

What will happen if the API key is missing from the query parameters?
medium
A. The API will return a 404 Not Found error
B. The API will return a 401 Unauthorized error
C. The API will return data without restrictions
D. The API will return a 500 Internal Server Error

Solution

  1. Step 1: Understand API key role in authentication

    API keys are used to verify the client. Missing keys usually cause authentication failure.
  2. Step 2: Identify typical server response

    When authentication fails, servers commonly respond with 401 Unauthorized status.
  3. Final Answer:

    The API will return a 401 Unauthorized error -> Option B
  4. Quick Check:

    Missing API key = 401 Unauthorized [OK]
Hint: Missing API key usually causes 401 Unauthorized error [OK]
Common Mistakes:
  • Assuming API returns data without key
  • Confusing 404 Not Found with authentication errors
  • Thinking server crashes with missing key
4. You set the API key in Postman as a header: api_key: 12345. The API still returns 401 Unauthorized. What is the most likely issue?
medium
A. The API key value is too short
B. The API endpoint URL is wrong
C. The API key header name is incorrect; it should be Authorization
D. Postman does not support headers for API keys

Solution

  1. Step 1: Check header naming conventions

    Most APIs expect the API key in the Authorization header, not api_key.
  2. Step 2: Verify Postman supports headers

    Postman fully supports headers, so the issue is likely the header name, not Postman itself.
  3. Final Answer:

    The API key header name is incorrect; it should be Authorization -> Option C
  4. Quick Check:

    Correct header name = Authorization [OK]
Hint: Use Authorization header, not api_key, for API keys [OK]
Common Mistakes:
  • Using wrong header name
  • Blaming Postman for header issues
  • Ignoring API key format requirements
5. You want to securely test an API in Postman using an API key. Which combination of steps ensures best security practice?
hard
A. Add the API key in headers, use HTTPS, and keep the key private
B. Add the API key in URL query parameters and share the collection publicly
C. Use HTTP protocol and add API key in request body
D. Store the API key in environment variables and disable SSL verification

Solution

  1. Step 1: Use HTTPS for secure communication

    HTTPS encrypts data, protecting the API key from being intercepted.
  2. Step 2: Add API key in headers and keep it private

    Headers are safer than URL parameters; keeping the key private prevents leaks.
  3. Final Answer:

    Add the API key in headers, use HTTPS, and keep the key private -> Option A
  4. Quick Check:

    HTTPS + headers + privacy = secure API key use [OK]
Hint: Use HTTPS and headers; never expose API key publicly [OK]
Common Mistakes:
  • Putting API key in URL query parameters publicly
  • Using HTTP instead of HTTPS
  • Disabling SSL verification in Postman