Pre-request Scripts
A pre-request script runs before the HTTP request is sent. Use it to prepare dynamic data, fetch tokens, or modify variables.
Common Use Cases
Set a dynamic timestamp
rm.environment.set('timestamp', Date.now().toString())
Generate a unique request ID
rm.environment.set('requestId', rm.variables.replaceIn('{{$randomUUID}}'))
Compute an HMAC signature
const crypto = require('crypto')
const secret = rm.environment.get('signingSecret')
const payload = rm.environment.get('requestBody')
const sig = crypto.createHmac('sha256', secret).update(payload).digest('hex')
rm.environment.set('signature', sig)
Set variables based on environment
const env = rm.environment.get('envName')
if (env === 'production') {
rm.environment.set('logLevel', 'error')
} else {
rm.environment.set('logLevel', 'debug')
}
Accessing Variables
// Get a variable (checks environment → collection vars → globals)
const baseUrl = rm.variables.get('baseUrl')
// Get specifically from environment
const token = rm.environment.get('accessToken')
// Get from collection variables
const version = rm.collectionVariables.get('apiVersion')
// Get from globals
const globalKey = rm.globals.get('globalKey')
Setting Variables
// Persist to environment (saved to DB)
rm.environment.set('key', 'value')
rm.collectionVariables.set('key', 'value')
rm.globals.set('key', 'value')
// Request-scoped (available for this request only, not saved to DB)
rm.variables.set('key', 'value')
Setting a token for auth
A common pattern is to select a token in a pre-request script and use it in Bearer auth:
const token = rm.environment.get("platformUserToken") || rm.environment.get("platformToken");
rm.variables.set("activeToken", token);
// Now use {{activeToken}} in your Bearer Token auth field
Logging
Use console.log() for debugging — output appears in the Electron DevTools console:
console.log('token:', rm.environment.get('accessToken'))