Skip to main content

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'))