Published
- 3 min read
Creating a Postman Pre-Request Script for Token Capture

Automating Token Capture in Postman Pre-Request Scripts
In API testing and development, managing authentication tokens can be a repetitive and time-consuming task. This post will guide you through creating a Postman pre-request script that automatically obtains an access token from an authentication server using the client credentials grant flow. By implementing this script, you’ll streamline your API testing process and ensure your requests always use fresh, valid tokens.
Understanding the Process
Before we dive into the code, let’s break down the steps our script will follow:
- Define client credentials
- Construct the token request
- Send the request to the authentication server
- Extract the access token from the response
- Set the token as an environment variable
Now, let’s implement each step in our pre-request script.
Step 1: Define Client Credentials
First, we need to specify the client ID and secret required for authentication:
// Set your credentials
const clientId = 'your_client_id_here';
const clientSecret = 'your_client_secret_here';
Security Tip: Instead of hardcoding these values, consider using Postman environment variables to store sensitive information.
Step 2: Construct the Token Request
Next, we’ll prepare the request URL, headers, and body:
// Set the URL and request parameters
const tokenUrl = 'https://your-auth-server.com/oauth2/token';
const headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' + btoa(clientId + ':' + clientSecret)
};
// Set the request body
const body = {
mode: 'urlencoded',
urlencoded: [{ key: 'grant_type', value: 'client_credentials' }]
};
Step 3: Send the Request
Now we’ll use Postman’s pm.sendRequest
function to make the token request:
// Send the POST request
pm.sendRequest({
url: tokenUrl,
method: 'POST',
header: headers,
body: body
}, function (error, response) {
if (error) {
console.error('Error fetching token:', error);
return;
}
// Continue to step 4 if successful
});
Step 4: Extract the Access Token
Upon receiving a successful response, we’ll parse it and extract the access token:
// Extract the access token from the response
const jsonResponse = response.json();
if (jsonResponse && jsonResponse.access_token) {
const accessToken = jsonResponse.access_token;
// Continue to step 5
} else {
console.error('Failed to retrieve access token');
}
Step 5: Set the Token as an Environment Variable
Finally, we’ll save the token as a Postman environment variable:
// Set the access token as an environment variable
pm.environment.set('accessToken', accessToken);
console.log('Access Token saved successfully');
Putting It All Together
Here’s the complete pre-request script:
// Set your credentials
const clientId = 'your_client_id_here';
const clientSecret = 'your_client_secret_here';
// Set the URL and request parameters
const tokenUrl = 'https://your-auth-server.com/oauth2/token';
const headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic ' + btoa(clientId + ':' + clientSecret)
};
// Set the request body
const body = {
mode: 'urlencoded',
urlencoded: [{ key: 'grant_type', value: 'client_credentials' }]
};
// Send the POST request
pm.sendRequest({
url: tokenUrl,
method: 'POST',
header: headers,
body: body
}, function (error, response) {
if (error) {
console.error('Error fetching token:', error);
return;
}
// Extract the access token from the response
const jsonResponse = response.json();
if (jsonResponse && jsonResponse.access_token) {
const accessToken = jsonResponse.access_token;
// Set the access token as an environment variable
pm.environment.set('accessToken', accessToken);
console.log('Access Token saved successfully');
} else {
console.error('Failed to retrieve access token');
}
});
Conclusion
By implementing this pre-request script in Postman, you’ve automated the process of obtaining and setting access tokens for your API requests. This not only saves time but also ensures that your requests always use up-to-date tokens, enhancing the security and reliability of your API testing workflow.
Remember to adjust the tokenUrl
, clientId
, and clientSecret
to match your specific authentication server and credentials. Happy API testing!