---
title: "cookies([urls]) | Grafana k6 documentation"
description: "Retrieves context cookies."
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# cookies(\[urls])

Returns a list of [cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/) from the [browser context](/docs/k6/latest/javascript-api/k6-browser/browsercontext/) filtered by the provided `urls`. If no `urls` are provided, all cookies are returned.

Expand table

| Parameter | Type  | Description                                                                                                                                                                                           |
|-----------|-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| urls      | array | A string array of URLs to filter the [cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/) in the [browser context](/docs/k6/latest/javascript-api/k6-browser/browsercontext/). |

### Returns

Expand table

| Type                     | Description                                                                                                           |
|--------------------------|-----------------------------------------------------------------------------------------------------------------------|
| `Promise<Array<Cookie>>` | A Promise that fulfills with an array of [cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/). |

> Note
> 
> [Cookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/cookie/) can be added with [BrowserContext.addCookies](/docs/k6/latest/javascript-api/k6-browser/browsercontext/addcookies/).

### Example

JavaScript ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```javascript
import { browser } from 'k6/browser';

export const options = {
  scenarios: {
    ui: {
      executor: 'shared-iterations',
      options: {
        browser: {
          type: 'chromium',
        },
      },
    },
  },
};

export default async function () {
  const context = await browser.newContext();
  const page = await context.newPage();

  try {
    // get cookies from the browser context
    let cookies = await context.cookies();
    console.log('initial cookies length:', cookies.length); // prints 0

    // let's add more cookies to filter by urls
    await context.addCookies([
      { name: 'foo', value: 'foovalue', sameSite: 'Strict', url: 'http://foo.com' },
      { name: 'bar', value: 'barvalue', sameSite: 'Lax', url: 'https://bar.com' },
      { name: 'baz', value: 'bazvalue', sameSite: 'Lax', url: 'https://baz.com' },
    ]);

    // get all cookies
    cookies = await context.cookies();
    console.log('filtered cookies length:', cookies.length); // prints 3

    // get cookies filtered by urls
    cookies = await context.cookies('http://foo.com', 'https://baz.com');
    console.log('filtered cookies length:', cookies.length); // prints 2

    // the first filtered cookie
    console.log("1st cookie's name :", cookies[0].name); // prints foo
    console.log("1st cookie's value:", cookies[0].value); // prints foovalue
    // the first filtered cookie
    console.log("2nd cookie's name :", cookies[1].name); // prints baz
    console.log("2nd cookie's value:", cookies[1].value); // prints bazvalue
  } finally {
    await page.close();
  }
}
```
