# Geolocation targeting

You can specify a location for your Headless Browser session by adding the `p_cc`, `p_city`, or `p_state` parameter to your connection URL:

* `p_cc` – selects the country, using 2 letter country code (e.g., US, DE, FR). If no country is specified, the system will automatically assign one based on availability.
* `p_city` – selects the city written in lowercase (e.g., berlin, los\_angeles, etc.). You must also specify either `p_cc` or `p_state`
* `p_state` – selects a state (only for US) when used as a lowercase name (e.g., texas, ohio)

Here are the code samples for country targeting:

{% tabs %}
{% tab title="Python (Playwright)" %}

```python
from playwright.sync_api import sync_playwright

username = "your-username"
password = "your-password"
endpoint = "ubc.oxylabs.io"
cc = "US"  # Replace with desired 2-letter country code
browser_url = f"wss://{username}:{password}@{endpoint}?p_cc={cc}"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(browser_url)
    page = browser.new_page()
    page.goto('https://example.com')
    browser.close()
```

{% endtab %}

{% tab title="JavaScript (Playwright)" %}

```javascript
import { chromium } from 'playwright';

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubc.oxylabs.io';
    const cc = 'US';  // Replace with desired 2-letter country code
    const browserUrl = `wss://${username}:${password}@${endpoint}?p_cc=${country}`;

    const browser = await chromium.connectOverCDP(browserUrl);
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}

{% tab title="JavaScript (Puppeteer)" %}

```javascript
import puppeteer from 'puppeteer';

(async () => {
    const username = 'your-username';
    const password = 'your-password';
    const endpoint = 'ubc.oxylabs.io';
    const cc = 'US';  // Replace with desired 2-letter country code
    const browserUrl = `wss://${username}:${password}@${endpoint}?p_cc=${country}`;

    const browser = await puppeteer.connect({
        browserWSEndpoint: browserUrl
    });
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await browser.close();
})();
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Note:** if `p_state` and `p_cc` are both specified, `p_state` takes priority and `p_cc` is ignored.
{% endhint %}
