Skip to main content
The rq.iterationData object provides access to data from CSV or JSON files when running collections with the Collection Runner. Each iteration of the collection run receives a different row (CSV) or object (JSON) from the data file, allowing you to parameterize your requests dynamically.
This feature is only available when running collections with a data file attached. For single request executions or collection runs without data files, rq.iterationData will be empty.

Methods

rq.iterationData.get(key)

Retrieves the value for a specific key from the current iteration’s data. Parameters:
  • key (string): The name of the variable/column to retrieve
Returns: The value associated with the key, or undefined if the key doesn’t exist Example:
// For a CSV with columns: city, temperature
const city = rq.iterationData.get("city");
const temp = rq.iterationData.get("temperature");

console.log(`Weather in ${city}: ${temp}°C`);
// Output: Weather in Vancouver: 10°C

rq.iterationData.has(key)

Checks if a specific key exists in the current iteration’s data. Parameters:
  • key (string): The name of the variable/column to check
Returns: true if the key exists, false otherwise Example:
if (rq.iterationData.has("userId")) {
    const userId = rq.iterationData.get("userId");
    console.log("User ID:", userId);
} else {
    console.log("No user ID in this iteration");
}

rq.iterationData.toObject()

Returns all data from the current iteration as a JavaScript object. Returns: An object containing all key-value pairs from the current iteration Example:
const allData = rq.iterationData.toObject();
console.log("Current iteration data:", allData);
// Output: Current iteration data: { city: "Vancouver", temperature: 10 }

Use Cases

Using Data File Values in Requests

// Pre-request script
// Assuming CSV has columns: username, password
const username = rq.iterationData.get("username");
const password = rq.iterationData.get("password");

// Set as environment variables to use in request
rq.environment.set("currentUser", username);
rq.environment.set("currentPassword", password);
Then in your request body:
{
  "username": "{{currentUser}}",
  "password": "{{currentPassword}}"
}

Conditional Logic Based on Data

// Pre-request script
const userType = rq.iterationData.get("userType");

if (userType === "admin") {
    rq.request.headers.push({
        key: "X-Admin-Token",
        value: "admin-secret-token"
    });
} else {
    rq.request.headers.push({
        key: "X-User-Token",
        value: "user-token"
    });
}

Validating Response Against Expected Data

// Post-response script
const expectedStatus = rq.iterationData.get("expectedStatus");
const actualStatus = rq.response.code;

rq.test(`Status code matches expected (${expectedStatus})`, function() {
    rq.expect(actualStatus).to.equal(parseInt(expectedStatus));
});

Collecting Results from Multiple Iterations

// Post-response script
const results = rq.collectionVariables.get("results") || [];
const currentData = rq.iterationData.toObject();

results.push({
    iteration: rq.info.iteration,
    input: currentData,
    output: rq.response.json(),
    status: rq.response.code
});

rq.collectionVariables.set("results", results);

// On last iteration, log all results
if (rq.info.iteration === rq.info.iterationCount - 1) {
    console.log("All results:", JSON.stringify(results, null, 2));
}

Dynamic URL Construction

// Pre-request script
const endpoint = rq.iterationData.get("endpoint");
const id = rq.iterationData.get("id");

// Modify the request URL
rq.request.url = `https://api.example.com/${endpoint}/${id}`;

Data File Format Examples

CSV Format

city,temperature,humidity
Vancouver,10,75
Austin,24,60
London,12,80
Accessing in script:
const city = rq.iterationData.get("city");        // "Vancouver"
const temp = rq.iterationData.get("temperature"); // 10
const humidity = rq.iterationData.get("humidity"); // 75

JSON Format

[
  { "city": "Vancouver", "temperature": 10, "humidity": 75 },
  { "city": "Austin", "temperature": 24, "humidity": 60 },
  { "city": "London", "temperature": 12, "humidity": 80 }
]
Accessing in script:
const city = rq.iterationData.get("city");        // "Vancouver"
const temp = rq.iterationData.get("temperature"); // 10
const humidity = rq.iterationData.get("humidity"); // 75

Notes

  • rq.iterationData is read-only and cannot be modified
  • Data is automatically loaded from the attached CSV or JSON file
  • Each iteration receives a different row/object from the data file
  • For single request executions, rq.iterationData will be empty
  • Values are automatically type-converted (numbers remain numbers, strings remain strings)
  • Missing keys return undefined when accessed with get()