Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/microsoft/playwright/llms.txt

Use this file to discover all available pages before exploring further.

The Response class represents responses received by pages. Responses are emitted when the page receives an HTTP response for a request.

Methods

url

Returns the URL of the response.
const url = response.url();
console.log(url);
Returns: string

ok

Returns whether the response was successful (status in the range 200-299).
if (response.ok()) {
  console.log('Success!');
}
Returns: boolean

status

Returns the HTTP status code.
const status = response.status();
console.log(status); // 200, 404, etc.
Returns: number

statusText

Returns the HTTP status text.
const text = response.statusText();
console.log(text); // 'OK', 'Not Found', etc.
Returns: string

headers

Returns the response headers.
const headers = response.headers();
console.log(headers['content-type']);
Returns: Object
This method returns provisional headers. Use allHeaders() for actual headers received over the network.

allHeaders

Returns all response headers.
const headers = await response.allHeaders();
console.log(headers);
Returns: Promise<Object>

headersArray

Returns the response headers as an array of objects.
const headers = await response.headersArray();
console.log(headers); // [{ name: 'content-type', value: 'application/json' }, ...]
Returns: Promise<Array<{name: string, value: string}>>

headerValue

Returns the value of a specific header.
const contentType = await response.headerValue('content-type');
console.log(contentType);
name
string
required
The header name (case-insensitive)
Returns: Promise<string | null>

headerValues

Returns all values of a specific header.
const cookies = await response.headerValues('set-cookie');
console.log(cookies);
name
string
required
The header name (case-insensitive)
Returns: Promise<string[]>

body

Returns the response body as a Buffer.
const buffer = await response.body();
console.log(buffer);
Returns: Promise<Buffer>

text

Returns the response body as text.
const text = await response.text();
console.log(text);
Returns: Promise<string>

json

Parses the response body as JSON.
const data = await response.json();
console.log(data);
Returns: Promise<object>

request

Returns the request that initiated this response.
const request = response.request();
console.log(request.url());
Returns: Request

frame

Returns the frame that initiated the request.
const frame = response.frame();
console.log(frame.url());
Returns: Frame

fromServiceWorker

Returns whether the response was served by a service worker.
if (response.fromServiceWorker()) {
  console.log('Served by service worker');
}
Returns: boolean

finished

Waits for the response to finish loading.
await response.finished();
console.log('Response finished loading');
Returns: Promise<null>

serverAddr

Returns the server IP address and port.
const addr = await response.serverAddr();
if (addr) {
  console.log(`${addr.ipAddress}:${addr.port}`);
}
Returns: Promise<{ipAddress: string, port: number} | null>

securityDetails

Returns SSL and other security information.
const details = await response.securityDetails();
if (details) {
  console.log('Protocol:', details.protocol);
  console.log('Issuer:', details.issuer);
}
Returns: Promise<Object | null>

httpVersion

Returns the HTTP version.
const version = await response.httpVersion();
console.log(version); // 'HTTP/1.1', 'HTTP/2', etc.
Returns: Promise<string>

Example Usage

Monitor API Responses

page.on('response', async response => {
  if (response.url().includes('/api/')) {
    console.log('API Response:', response.status());
    const data = await response.json();
    console.log('Data:', data);
  }
});

Check Response Status

page.on('response', response => {
  if (!response.ok()) {
    console.log('Failed response:', response.url(), response.status());
  }
});

Extract Response Headers

page.on('response', async response => {
  const contentType = await response.headerValue('content-type');
  console.log('Content-Type:', contentType);
});

Wait for Specific Response

const response = await page.waitForResponse(resp => 
  resp.url().includes('/api/data') && resp.status() === 200
);
const data = await response.json();
console.log(data);

Build docs developers (and LLMs) love