# Write pre-request scripts to add dynamic behavior in Postman You can use pre-request scripts in Postman to run JavaScript before a request runs. By including code in the **Pre-request** tab for a request, collection, or folder, you can carry out pre-processing such as setting variable values, parameters, headers, and body data. You can also use pre-request scripts to debug code, for example, by logging output to the Postman Console. ## Pre-request scripting example The following is an example of using pre-request scripts: * You have a series of requests in a collection and are running them in a sequence, such as when using the [Collection Runner](/docs/collections/running-collections/intro-to-collection-runs/). * The second request is dependent on a value returned from the first request. * The value needs to be processed before you pass it to the second request. * The first request sets the data value from a response field to a variable in its post-response script. * The second request retrieves the value and processes it in its pre-request script, then sets the processed value to a variable. This variable is then referenced in the second request, for example, in its parameters. ## Scripting before your request runs To include code you want to run before Postman sends a request, do the following: 1. Click **Collections** in the sidebar. 2. Open the request, then select the **Scripts** tab. 3. Click the **Pre-request** tab. 4. Enter the JavaScript you need to process before the request runs, then click Save icon **Save**. 5. Click **Send** to send the request. The code runs before Postman sends the request to the API. ![Pre-Request Code](https://assets.postman.com/postman-docs/v11/pre-request-script-v11-12.jpg) To make your code more readable, click Pretty icon **Beautify** in the lower right of the code editor. ## Add documentation to pre-request scripts Postman supports JSDoc for documenting JavaScript functions in your pre-request scripts. Documentation added to your functions using JSDoc display in a popup window when you call your functions. You can use the official [JSDoc documentation](https://jsdoc.app/) to learn how to add documentation to your pre-request scripts. The following example has documentation for the `logger` function using JSDoc. The documentation explains what the function does, and defines what the `data` parameter is used for and that it accepts a string data type. ```js /** * This function prints a string to the Postman Console. * @param {string} data - The text to print to the Postman Console. */ function logger (data) { console.log(`Logging information to the console, ${data}`) } ``` ## Reuse pre-request scripts You can add pre-request scripts to entire collections and folders within collections. In both cases, your pre-request script will run before every request in the collection or direct child request in the folder. This enables you to define commonly used pre-processing or debugging steps you need to run for multiple requests. You can define a pre-request script when you first create a collection or folder, or at any time after that. You can also [store pre-request scripts in the Postman Package Library](/docs/tests-and-scripts/write-scripts/packages/package-library/). This lets you maintain commonly used scripts in a single location, share them with your team, and reuse them in your internal workspaces. To add pre-request scripts to a collection or folder, do the following: 1. Click **Collections** in the sidebar. 2. Select a collection or folder. 3. Click the **Scripts** tab. 4. Click the **Pre-request** tab. Enter code that will run before every request in the collection or direct child request in the folder. 5. Click Save icon **Save**. ## Next steps After learning the basics of writing pre-request scripts, you can extend your scripts: * To learn more about how to use the `pm` object, visit the [Postman JavaScript reference](/docs/tests-and-scripts/write-scripts/postman-sandbox-reference/overview/). * For more information about storing and reusing commonly used scripts, learn about [the package library](/docs/tests-and-scripts/write-scripts/packages/package-library/) in Postman.