Skip to main content

The rq.response object provides access to all details of the API response in your Requestly scripts. You can use these properties and methods primarily in post-response scripts to process, validate, and extract data from API responses.

Properties and Methods

rq.response.body

The body of the response as a string. Example:
console.log("Response Body:", rq.response.body);

rq.response.responseTime

The time taken by the request to complete, in milliseconds. Example:
console.log("Response Time:", rq.response.responseTime);

rq.response.headers

An list of header rows each having key, value for each custom header you create. Example:
console.log("Response Headers:", JSON.stringify(rq.response.headers));

rq.response.code

The HTTP status code of the response. Example:
console.log("Response Code:", rq.response.code);
rq.test("Status is 200", () => {
  rq.response.to.have.status(200);
});

rq.response.json()

Parses the response body as JSON and returns it as a JavaScript object. Example:
console.log("Response JSON:", JSON.stringify(rq.response.json()));

rq.response.text()

Returns the response body as a plain string. Example:
console.log("Response Body as String:", rq.response.text());

Common Use Cases

Validate Response Code

Check if the API returned the expected status code:
if (rq.response.code !== 200) {
  console.error("Unexpected Response Code:", rq.response.code);
} else {
  console.log("Request successful!");
}

Extract Data from JSON Response

Parse the response and extract specific fields:
const responseData = rq.response.json();
const userId = responseData.id;
const userName = responseData.name;

console.log("User ID:", userId);
console.log("User Name:", userName);

// Store extracted data for use in other requests
rq.environment.set("user_id", userId);

Check Response Time

Monitor API performance:
if (rq.response.responseTime > 1000) {
  console.warn("Slow response detected:", rq.response.responseTime + "ms");
} else {
  console.log("Response time OK:", rq.response.responseTime + "ms");
}

Extract Authentication Token

Get auth token from response and save it:
const responseData = rq.response.json();
if (responseData.token) {
  rq.environment.set("authToken", responseData.token);
  console.log("Auth token saved successfully");
}

Access Response Headers

rq.response.headers.forEach((header) => {
  console.log(`${header.key}: ${header.value}`);
});

Validate Response Structure

const data = rq.response.json();
if (data.error) {
  console.error("API Error:", data.error);
} else if (!data.id) {
  console.error("Missing expected field: id");
} else {
  console.log("Response validation passed");
}