[Home](./index.md) > [puppeteer](./puppeteer.md) > [Page](./puppeteer.page.md) > [waitForRequest](./puppeteer.page.waitforrequest.md)
## Page.waitForRequest() method
Signature:
```typescript
waitForRequest(urlOrPredicate: string | ((req: HTTPRequest) => boolean | Promise), options?: {
timeout?: number;
}): Promise;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| urlOrPredicate | string \| ((req: [HTTPRequest](./puppeteer.httprequest.md)) => boolean \| Promise<boolean>) | A URL or predicate to wait for |
| options | { timeout?: number; } | Optional waiting parameters |
Returns:
Promise<[HTTPRequest](./puppeteer.httprequest.md)>
Promise which resolves to the matched response
## Remarks
Optional Waiting Parameters have:
- `timeout`: Maximum wait time in milliseconds, defaults to `30` seconds, pass `0` to disable the timeout. The default value can be changed by using the [Page.setDefaultTimeout()](./puppeteer.page.setdefaulttimeout.md) method.
## Example
```js
const firstResponse = await page.waitForResponse(
'https://example.com/resource'
);
const finalResponse = await page.waitForResponse(
(response) =>
response.url() === 'https://example.com' && response.status() === 200
);
const finalResponse = await page.waitForResponse(async (response) => {
return (await response.text()).includes('');
});
return finalResponse.ok();
```