# From Bright Data Web Unlocker

Find out the key differences and transition process from **Bright Data's Web Unlocker** to [**Oxylabs Web Unblocker**](https://oxylabs.io/products/web-unblocker). See sample code snippets and feature comparisons to ensure a smooth migration.

## Feature comparison

[**Oxylabs Web Unblocker**](https://oxylabs.io/products/web-unblocker) offers most features available in Bright Data's Web Unlocker, along with several unique capabilities. The table below highlights the main differences between the two services:

| Feature                 | Bright Data Web Unlocker             | Oxylabs Web Unblocker                                         |
| ----------------------- | ------------------------------------ | ------------------------------------------------------------- |
| Proxy Endpoint          | brd.superproxy.io:33335              | unblock.oxylabs.io:60000                                      |
| API Endpoint            | <https://api.brightdata.com/wsapi>   | Not supported yet (use Web Scraper API for API functionality) |
| Proxy Rotation          | Automatic                            | Automatic                                                     |
| Captcha Bypass          | Supported                            | Supported (AI-based)                                          |
| Pricing                 | Separate pricing for premium domains | Single price                                                  |
| Geolocation targeting   | Supported                            | Supported                                                     |
| Mobile targeting        | Supported                            | Not supported                                                 |
| Custom headers/cookies  | Supported                            | Supported                                                     |
| JS Rendering            | Automatic                            | Manual (more control)                                         |
| Rendering possibilities | HTML                                 | HTML and PNG                                                  |
| Browser instructions    | Not supported                        | Supported                                                     |
| POST requests           | Not supported                        | Supported                                                     |
| Sessions                | Not supported                        | Supported                                                     |
| Custom status code      | Not supported                        | Supported                                                     |

## Making requests

### Basic request format differences

The main difference between Bright Data and Oxylabs requests is how geolocation is handled. While Bright Data uses zone-specific accounts, Oxylabs allows you to use proxies from all locations immediately by passing location information in headers.

#### **Bright Data example**

```python
import pprint
import requests

username = 'brd-customer-<customer_id>-zone-<zone_name>-country-us'
password = '<zone_password>'
proxy_url = f'http://{username}:{password}@brd.superproxy.io:33335'

proxies = {
    'http': proxy_url,
    'https': proxy_url
}

headers = {}
url = "http://lumtest.com/myip.json"

response = requests.get(url, proxies=proxies, headers=headers)
pprint.pprint(response.json())
```

#### **Oxylabs example**

```python
import requests

# Use your Web Unblocker credentials here
USERNAME, PASSWORD = 'YOUR_USERNAME', 'YOUR_PASSWORD'

# Define proxy dict
proxies = {
  'http': f'http://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
  'https': f'https://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
}

headers = {
    'x-oxylabs-geo-location': 'United States'
}

response = requests.request(
    'GET',
    'https://ip.oxylabs.io/headers',
    verify=False,  # Ignore the SSL certificate
    proxies=proxies,
    headers=headers
)

print(response.text)
```

## Unique features of Oxylabs Web Unblocker

### Persistent sessions

One of Oxylabs Web Unblocker's unique features is session functionality, allowing you to send multiple requests through the same proxy. Sessions can be used for up to 10 minutes by adding a custom session ID header to your request:

```python
headers = {
    'X-Oxylabs-Session-Id': '123randomString'
}

response = requests.get(
    'https://ip.oxylabs.io/location',
    verify=False,  # Required to ignore certificate
    proxies=proxies,
    headers=headers,
)
```

For more information about sessions, check [**Web Unblocker Session documentation page.**](https://developers.oxylabs.io/advanced-proxy-solutions/web-unblocker/making-requests/session)

### POST requests

Unlike Bright Data's Web Unlocker, Oxylabs Web Unblocker supports sending POST requests to web endpoints:

```python
data = {
    'Your POST JSON': 'data'
}

response = requests.post(
    'https://ip.oxylabs.io/location',
    verify=False,  # Required to ignore certificate
    proxies=proxies,
    json=data,
)
```

For more details on POST requests, see [**Web Unblocker POST requests documentation.**](#post-requests) &#x20;

### JavaScript rendering and browser instructions

Oxylabs Web Unblocker offers a Custom Browser Instructions feature with a headless browser mode that renders JavaScript of resulting pages as either HTML documents or PNG screenshots. Additionally, when using a headless browser inside Web Unblocker, you can define custom browser instructions to be executed during JavaScript rendering.

For more information on this feature, see [**Web Unblocker Custom Browser Instructions documentation.**](https://developers.oxylabs.io/advanced-proxy-solutions/web-unblocker/custom-browser-instructions)&#x20;

## Parameter reference

Below are the key [**parameters and headers**](https://developers.oxylabs.io/advanced-proxy-solutions/web-unblocker/making-requests/headers) you can use with Oxylabs Web Unblocker:

| Parameter                      | Description                                              | Example                          |
| ------------------------------ | -------------------------------------------------------- | -------------------------------- |
| X-Oxylabs-Geo-Location         | Specifies the geographic location for the request        | 'United States', 'Germany', etc. |
| X-Oxylabs-Session-Id           | Creates or continues a session with the specified ID     | '123randomString'                |
| X-Oxylabs-Render               | Enables JavaScript rendering when set to 'html' or 'png' | 'html', 'png'                    |
| X-Oxylabs-Browser-Instructions | Custom browser instructions for rendering                | JSON with instructions           |

## Migration checklist

1. Update your proxy endpoint from `brd.superproxy.io:33335` to `unblock.oxylabs.io:60000`
2. Replace zone-based geolocation with `X-Oxylabs-Geo-Location` header
3. Update authentication credentials to your Oxylabs proxy user username and password
4. Add `verify=False` to your requests to ignore SSL certificate validation
5. Take advantage of unique Oxylabs features like sessions and POST requests


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.oxylabs.io/advanced-proxy-solutions/web-unblocker/migration-guides/from-bright-data-web-unlocker.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
