# Account Management Source: https://docs.brightdata.com/account-management-quickstart # Web MCP Quickstart Source: https://docs.brightdata.com/ai/mcp-server-quickstart Get started with the Bright Data Web MCP server. Configure your API key, connect a compatible client and run your first scrape in a few minutes. You might be eligible for our Startup Program. Get fully funded access to the infrastructure you're reading about right now (up to \$20K value). # Archive Source: https://docs.brightdata.com/archive-quickstart # Browser API Source: https://docs.brightdata.com/browser-api-quickstart # Browser Extension Source: https://docs.brightdata.com/browser-extension-quickstart # Bright Data CLI quickstart Source: https://docs.brightdata.com/cli-quickstart # Crawl API quickstart Source: https://docs.brightdata.com/crawl-api-quickstart # Managed Services quickstart Source: https://docs.brightdata.com/custom-dataset-quickstart # Data Center Source: https://docs.brightdata.com/data-center-quickstart # Dataset Marketplace Source: https://docs.brightdata.com/dataset-marketplace-quickstart # Fast Images Search Source: https://docs.brightdata.com/fast-images-search Use Bright Data Fast SERP (31 languages) for Google Images via the native proxy interface. Receive compact JSON image results suited for real-time applications. Bright Data offers a fast SERP service for Images. This service responds with a compact JSON to power real-time applications that need image search results. To gain access, please contact your Bright Data account manager. ## Fast Images Search Request Fast SERP for Google Images works best with the native proxy interface. If you need a REST API interface for your architecture, one can be provided. Both the `x-unblock-data-format: parsed_light` request header and the `brd_json=1` URL parameter are required. Omitting either will result in an unexpected response format. ### Native proxy request ```text theme={null} curl -i --proxy fserp.brd.superproxy.io:33335 \ --proxy-user brd-customer--zone-: \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/search?q=pizza&udm=2&brd_json=1" ``` ## Response Format A successful response contains a single required `images` array. ### `images` array | Field | Type | Required | Description | | ----------------- | ------- | -------- | ------------------------------------------------ | | `global_rank` | integer | Yes | Rank position of the result on the page | | `title` | string | No | Title or alt text of the image | | `link` | string | No | URL of the source page where the image was found | | `image` | string | No | Thumbnail image URL | | `original_image` | string | No | Full-resolution image URL | | `image_width` | integer | No | Displayed image width in pixels | | `image_height` | integer | No | Displayed image height in pixels | | `original_width` | integer | No | Original image width in pixels | | `original_height` | integer | No | Original image height in pixels | | `blurred` | boolean | No | Whether the image is blurred | ## Example Response ```text theme={null} { "images": [ { "global_rank": 1, "title": "Classic Margherita Pizza", "link": "https://www.example-recipe.com/margherita", "image": "https://www.example-recipe.com/images/margherita-thumb.jpg", "original_image": "https://www.example-recipe.com/images/margherita-full.jpg", "image_width": 400, "image_height": 300, "original_width": 1200, "original_height": 900, "blurred": false }, { "global_rank": 2, "title": "Neapolitan Pizza with Fresh Basil", "link": "https://www.example-food.com/neapolitan", "image": "https://www.example-food.com/images/neapolitan-thumb.jpg", "original_image": "https://www.example-food.com/images/neapolitan-full.jpg", "image_width": 400, "image_height": 300, "original_width": 1600, "original_height": 1200, "blurred": false }, { "global_rank": 3, "title": "New York Style Pizza Slice", "link": "https://www.example-pizza.com/ny-style", "image": "https://www.example-pizza.com/images/ny-slice-thumb.jpg", "original_image": "https://www.example-pizza.com/images/ny-slice-full.jpg", "image_width": 400, "image_height": 267, "original_width": 2000, "original_height": 1333, "blurred": false }, { "global_rank": 4, "title": "Homemade Deep Dish Chicago Pizza", "link": "https://www.example-recipe.com/deep-dish", "image": "https://www.example-recipe.com/images/deep-dish-thumb.jpg", "original_image": "https://www.example-recipe.com/images/deep-dish-full.jpg", "image_width": 400, "image_height": 400, "original_width": 1500, "original_height": 1500, "blurred": false }, { "global_rank": 5, "title": "Wood-Fired Pizza from Naples", "link": "https://www.example-travel.com/naples-pizza", "image": "https://www.example-travel.com/images/naples-pizza-thumb.jpg", "original_image": "https://www.example-travel.com/images/naples-pizza-full.jpg", "image_width": 400, "image_height": 267, "original_width": 3000, "original_height": 2000, "blurred": false } ] } ``` Response schema: [https://api.brightdata.com/data\_schemas/fast\_serp/google\_search\_images.schema.json](https://api.brightdata.com/data_schemas/fast_serp/google_search_images.schema.json) ## Supported parameters | Parameter | Description | Example | Notes | | ---------- | ------------------------------------------ | ------------ | --------------------------------------------------------------------------------- | | `q` | Search query (**must be first in URL**) | `q=pizza` | Query size must be under 8,000 charachters.
Longer queries fail with error. | | `gl` | Two-letter country code for search country | `gl=us` | | | `hl` | Two-letter language code for page language | `hl=en` | | | `brd_json` | **Required.**`1` = parsed JSON | `brd_json=1` | | # Fast Maps Search Source: https://docs.brightdata.com/fast-maps-search Use Bright Data Fast SERP (31 languages) for Google Maps via the native proxy interface. Receive compact JSON Maps results suited for real-time applications. Use Bright Data's Fast SERP service to retrieve compact Maps search results in real time via a native proxy interface. ## Google Maps endpoints Google Maps Fast SERP supports two response types depending on the URL you target: * **Maps search results**, a list of places matching a search query, returning an `organic` array * **Place detail page**, a single place record, returning a `place` object Both endpoints require the `x-unblock-data-format: parsed_light` request header and the `brd_json=1` URL parameter. Omitting either will result in an unexpected response format. ## Fast Maps Search Request Fast SERP for Google Maps works best with the native proxy interface. If you need a REST API interface for your architecture, one can be provided. ### Maps search results ```text theme={null} curl -v --proxy fserp.brd.superproxy.io:33335 \ --proxy-user username:password \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/maps/search/coffee+shops+new+york/?hl=en&gl=us&brd_json=1" ``` ### Place detail page: using Place ID ```text theme={null} curl -v --proxy fserp.brd.superproxy.io:33335 \ --proxy-user username:password \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/maps/place/?q=place_id:ChIJN1t_tDeuEmsRUsoyG83frY4&hl=en&gl=us&brd_json=1" ``` ### Place details page: using Map Link ```text theme={null} curl -v --proxy fserp.brd.superproxy.io:33335 \ --proxy-user username:password \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/maps/place/data=!3m1!4b1!4m2!3m1!1s0x89e379c3784bfe3b:0x839c689710299cfc?hl=en&gl=us&brd_json=1" ``` ## Response Format The response is one of two shapes depending on the targeted URL: a search results page returns an `organic` array; a place detail page returns a `place` object. Both use the same `OrganicMapsItem` structure. ### `organic` array / `place` object Both the items in `organic` and the `place` object share the following fields: | Field | Type | Required | Description | | ---------------- | ------- | -------- | ------------------------------------------------------ | | `global_rank` | integer | Yes | Rank position of the result on the page | | `title` | string | No | Name of the place | | `address` | string | No | Full address of the place | | `phone` | string | No | Phone number of the place | | `link` | string | No | URL to the place's website | | `map_link` | string | No | URL to the place on Google Maps | | `map_id` | string | No | Google Maps place identifier | | `map_id_encoded` | string | No | Encoded version of the Google Maps place identifier | | `description` | string | No | Short description of the place | | `price` | string | No | Price range indicator, e.g. `"$$"` | | `rating` | number | No | Average customer rating | | `reviews_cnt` | number | No | Total number of customer reviews | | `latitude` | number | No | Latitude coordinate of the place | | `longitude` | number | No | Longitude coordinate of the place | | `image` | string | No | Primary image URL | | `original_image` | string | No | Original full-resolution image URL | | `thumbnail` | string | No | Thumbnail image URL | | `open_hours` | object | No | Opening hours keyed by day, e.g. `"Monday": "9am–5pm"` | | `category` | array | No | List of place categories (see below) | | `images` | array | No | List of place images (see below) | | `menu_images` | array | No | List of menu images (see below) | | `tags` | array | No | List of place attribute tags (see below) | | `reviews` | array | No | List of customer reviews (see below) | ### `category` items | Field | Type | Required | Description | | ------------- | ------ | -------- | ----------------------- | | `id` | string | Yes | Category identifier | | `title` | string | Yes | Full category name | | `title_short` | string | No | Shortened category name | ### `images` and `menu_images` items | Field | Type | Required | Description | | ----------------- | ------- | -------- | -------------------------------- | | `image` | string | Yes | Image URL | | `image_width` | integer | No | Displayed image width in pixels | | `image_height` | integer | No | Displayed image height in pixels | | `original_width` | integer | No | Original image width in pixels | | `original_height` | integer | No | Original image height in pixels | ### `tags` items | Field | Type | Required | Description | | ------------------- | ------ | -------- | ----------------------------------------- | | `group_id` | string | Yes | Identifier of the tag group | | `group_title` | string | Yes | Display name of the tag group | | `key_id` | string | Yes | Identifier of the tag key | | `key_title` | string | Yes | Display name of the tag key | | `value` | number | No | Numeric value associated with the tag | | `value_title` | string | No | Display label for the tag value | | `value_title_short` | string | No | Shortened display label for the tag value | ### `reviews` items | Field | Type | Description | | --------------------------- | ---------------- | ---------------------------------------------- | | `author` | string | Name of the reviewer | | `avatar` | string | URL of the reviewer's profile image | | `author_reviews_cnt` | number | Total number of reviews written by this author | | `author_photos_cnt` | number | Total number of photos uploaded by this author | | `rating` | number | Rating given in this review | | `text` | string | Review text content | | `timestamp_added` | string | Date/time the review was posted | | `timestamp_edited` | string | Date/time the review was last edited | | `link` | string | URL to the review | | `source` | string | Platform source of the review | | `source_logo` | string | URL of the source platform's logo | | `images` | array of strings | List of image URLs attached to the review | | `response_text` | string | Owner's reply to the review | | `response_timestamp_added` | string | Date/time the owner's reply was posted | | `response_timestamp_edited` | string | Date/time the owner's reply was last edited | ## Example Response ### Maps search results ```text theme={null} { "organic": [ { "global_rank": 1, "title": "Example Coffee Co.", "address": "123 Main St, New York, NY 10001", "phone": "+1 212-555-0100", "link": "https://www.example-coffee.com", "map_link": "https://www.google.com/maps/place/example-coffee", "map_id": "ChIJexample1234", "description": "Specialty coffee shop serving single-origin espresso and pour-overs.", "price": "$$", "rating": 4.7, "reviews_cnt": 1280, "latitude": 40.7128, "longitude": -74.0060, "thumbnail": "https://www.example-coffee.com/images/thumb.jpg", "open_hours": { "Monday": "7am–7pm", "Tuesday": "7am–7pm", "Wednesday": "7am–7pm", "Thursday": "7am–7pm", "Friday": "7am–8pm", "Saturday": "8am–8pm", "Sunday": "9am–6pm" }, "category": [ { "id": "coffee_shop", "title": "Coffee Shop", "title_short": "Coffee" } ], "tags": [ { "group_id": "service_options", "group_title": "Service options", "key_id": "dine_in", "key_title": "Dine-in", "value": 1, "value_title": "Available", "value_title_short": "Yes" } ], "reviews": [ { "author": "Jane D.", "avatar": "https://example.com/avatars/jane.jpg", "author_reviews_cnt": 42, "author_photos_cnt": 15, "rating": 5, "text": "Best espresso in the city, hands down.", "timestamp_added": "2025-03-10T09:00:00Z", "source": "Google", "source_logo": "https://www.google.com/images/google-logo.png", "response_text": "Thank you so much, Jane! See you soon.", "response_timestamp_added": "2025-03-11T10:00:00Z" } ] } ] } ``` ### Place detail page ```text theme={null} { "place": { "global_rank": 1, "title": "Example Coffee Co.", "address": "123 Main St, New York, NY 10001", "phone": "+1 212-555-0100", "link": "https://www.example-coffee.com", "map_link": "https://www.google.com/maps/place/example-coffee", "map_id": "ChIJexample1234", "description": "Specialty coffee shop serving single-origin espresso and pour-overs.", "price": "$$", "rating": 4.7, "reviews_cnt": 1280, "latitude": 40.7128, "longitude": -74.0060, "thumbnail": "https://www.example-coffee.com/images/thumb.jpg", "images": [ { "image": "https://www.example-coffee.com/images/interior.jpg", "image_width": 800, "image_height": 600, "original_width": 1600, "original_height": 1200 } ], "open_hours": { "Monday": "7am–7pm", "Friday": "7am–8pm", "Saturday": "8am–8pm", "Sunday": "9am–6pm" }, "category": [ { "id": "coffee_shop", "title": "Coffee Shop", "title_short": "Coffee" } ] } } ``` Response schema: [https://api.brightdata.com/data\_schemas/fast\_serp/google\_search\_maps.schema.json](https://api.brightdata.com/data_schemas/fast_serp/google_search_maps.schema.json) ## Supported parameters | Parameter | Description | Example | Notes | | ------------- | ------------------------------------------ | ---------------------- | --------------------------------------------------------------------------------- | | `gl` | Two-letter country code for search country | `gl=us` | | | `hl` | Two-letter language code for page language | `hl=en` | | | `brd_json` | **Required.**`1` = parsed JSON | `brd_json=1` | | | `search term` | Search query term embedded in URL | `coffee+shops+near+me` | Query size must be under 8,000 charachters.
Longer queries fail with error. | *** # Fast News Search Source: https://docs.brightdata.com/fast-news-search Use Bright Data's Fast SERP service (31 languages) to retrieve compact Google News search results in real time, for selected enterprise customers. Bright Data offers a fast SERP service for News, available to selected enterprise customers only. This service responds with a compact JSON to power real-time applications that need up-to-date news results. To gain access, please contact your Bright Data account manager. ## Google News endpoints Google offers two endpoints for news search results: [news.google.com](http://news.google.com) and [https://www.google.com/search/q=\[searchTerm\]\&tbm=nws](https://www.google.com/search/q=\[searchTerm]\&tbm=nws) Bright Data offers **Fast SERP** results only for: [https://www.google.com/search/q=\[searchTerm\]\&tbm=nws](https://www.google.com/search/q=\[searchTerm]\&tbm=nws) . Bright Data will provide results for [news.google.com](http://news.google.com) , but with in our regular SERP. ## Fast News Search Request Fast SERP for Google News works best with the native proxy interface. If you need a REST API interface for your architecture, one can be provided. For Fast SERP, **both** the `x-unblock-data-format: parsed_light`request header **and** the `brd_json=1` URL parameter are required. Omitting either will result in an unexpected response format. ### Native proxy request ```shell theme={null} curl -i --proxy fserp.brd.superproxy.io:33335 \ --proxy-user brd-customer--zone-: \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/search?q=earthquake&tbm=nws&brd_json=1" ``` ## Response Format A successful response returns a JSON object with the following top-level fields. ### Choosing image format For news articles search results in Fast SERP, Bright Data offers to receive the data either as embedded Base64 binary code or as a URL. The default is Base64. In order to get the image links use this header: `-H 'x-unblock-img-format: link'` Example: ```text theme={null} curl --proxy fserp.brd.superproxy.io:33335 --proxy-user [username]:[password] -k -H 'x-unblock-data-format: parsed_light' -H 'x-unblock-img-format: link' "https://www.google.com/search?q=earthquake&tbm=nws&brd_json=1" --output nws_links.json ``` ### `news` array The primary array of individual news results. | Field | Type | Description | | ------------- | ------- | ---------------------------------------------------------------- | | `link` | string | URL of the news article | | `title` | string | Headline of the article | | `source` | string | Name of the news publisher | | `source_logo` | string | URL of the publisher's logo image or Base64 image binary code | | `date` | string | Publication date/time of the article | | `image` | string | URL of the article's thumbnail image or Base64 image binary code | | `global_rank` | integer | Rank position of the result on the page | ### `article_sets` array Grouped article clusters organized by topic, each containing a `heading` label and an `items` array of articles. article\_sets is not guaranteed to appear in every response. Your implementation should handle its absence gracefully. ### Example response with image links ```JSON theme={null} { "organic": [], "news": [ { "link": "https://www.example-news.com/world/earthquake-latest", "title": "Major Earthquake Strikes Pacific Region", "source": "Example News", "source_logo": "https://www.example-news.com/logo.png", "date": "2 hours ago", "image": "https://www.example-news.com/images/earthquake.jpg", "global_rank": 1 }, { "link": "https://www.another-outlet.com/earthquake-update", "title": "Rescue Operations Underway After Earthquake", "source": "Another Outlet", "source_logo": "https://www.another-outlet.com/logo.png", "date": "3 hours ago", "image": "https://www.another-outlet.com/images/rescue.jpg", "global_rank": 2 } ], "article_sets": [ { "heading": "Latest Updates", "items": [ { "link": "https://www.example-news.com/world/earthquake-latest", "title": "Major Earthquake Strikes Pacific Region", "source": "Example News", "date": "2 hours ago" } ] } ] } ``` ## Supported parameters | Parameter | Description | Example | Notes | | ---------- | ------------------------------------------ | -------------- | --------------------------------------------------------------------------------- | | `q` | Search query (**must be first in URL**) | `q=earthquake` | Query size must be under 8,000 charachters.
Longer queries fail with error. | | `gl` | Two-letter country code for search country | `gl=us` | | | `hl` | Two-letter language code for page language | `hl=en` | | | `brd_json` | **Required.**`1` = parsed JSON | `brd_json=1` | | **Headers** | Header | Description | Example | | ----------------------- | ---------------------------------------------- | -------------- | | `x-unblock-data-format` | **Required.** Must be `parsed_light` | `parsed_light` | | `x-unblock-img-format` | Image format: `link` (URL) or default (Base64) | `link` | *** # Fast Shopping: Search & Product details Source: https://docs.brightdata.com/fast-shopping-search Use Bright Data's Fast SERP service (31 languages) to retrieve compact Shopping search results in real time via a native proxy interface. ## Fast SERP: Google Shopping endpoints Google Shopping offers two types of pages that Fast SERP supports: * **Shopping search results**, a listing of products for a given search query, via `https://www.google.com/search?q=[searchTerm]&udm=28` * **Product detail page (PDP)**, a full product page with offers, specifications, and reviews, via a Google Shopping product URL Both endpoints require the `x-unblock-data-format: parsed_light` request header and the `brd_json=1` URL parameter. Omitting either will result in an unexpected response format. ## Fast Shopping Search Request Fast SERP for Google Shopping works best with the native proxy interface. If you need a REST API interface for your architecture, one can be provided. ### Shopping search results Use the `udm=28` parameter to retrieve the Google Shopping search results listing page. ```text theme={null} curl -v --proxy fserp.brd.superproxy.io:33335 \ --proxy-user username:password \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/search?q=iphone&udm=28&brd_json=1" ``` ### Response Format A successful shopping search response contains a `shopping` array. #### `shopping` array | Field | Type | Required | Description | | ------------- | ------- | -------- | --------------------------------------------- | | `price` | string | Yes | Displayed price of the product | | `link` | string | Yes | URL to the product listing or merchant page | | `global_rank` | integer | Yes | Rank position of the result on the page | | `title` | string | No | Product name | | `shop` | string | No | Name of the merchant or seller | | `image` | string | No | URL of the product thumbnail image | | `rating` | number | No | Average customer rating | | `reviews_cnt` | integer | No | Number of customer reviews | | `old_price` | string | No | Original price before discount, if applicable | #### Example response, shopping search results ```text theme={null} { "shopping": [ { "title": "Apple iPhone 16 128GB Black", "link": "https://www.example-store.com/iphone-16-black", "price": "$799.00", "old_price": "$899.00", "shop": "Example Store", "rating": 4.8, "reviews_cnt": 3240, "image": "https://www.example-store.com/images/iphone-16.jpg", "global_rank": 1 }, { "title": "Apple iPhone 16 256GB White", "link": "https://www.another-store.com/iphone-16-white", "price": "$899.00", "shop": "Another Store", "rating": 4.7, "reviews_cnt": 1850, "image": "https://www.another-store.com/images/iphone-16-white.jpg", "global_rank": 2 } ] } ``` Response schema: [https://api.brightdata.com/data\_schemas/fast\_serp/google\_search\_shopping.schema.json](https://api.brightdata.com/data_schemas/fast_serp/google_search_shopping.schema.json) ## Fast Shopping Product Request Fast SERP for Google Shopping product pages works best with the native proxy interface. If you need a REST API interface for your architecture, one can be provided. For Fast SERP, both the `x-unblock-data-format: parsed_light` request header and the `brd_json=1` URL parameter are required. Omitting either will result in an unexpected response format. ### Native proxy request ```shell theme={null} curl -v --proxy fserp.brd.superproxy.io:33335 \ --proxy-user username:password \ -k \ "https://www.google.com/search?ibp=oshop&q=Apple+iPhone+17+Pro+Max&prds=catalogid:14168848586042650493,headlineOfferDocid:9742715914832712106,imageDocid:17255481404991010739,gpcid:5141485329231317038,mid:576462869544971580,pvt:hg&pvorigin=25&hl=en&gl=us&shem=damc,pvflt,shrtsdl&shndl=37&udm=28&source=sh/x/prdct/hdr/m1/1&brd_json=1" \ -H 'x-unblock-data-format: parsed_light' ``` ## Response Format A successful response is structured around three top-level fields: `product`, `product_offers`, and `product_spec`. ### `product` object Top-level product information. | Field | Type | Description | | :------------ | :--------------- | :------------------------------- | | `title` | string | Name of the product | | `description` | string | Full product description | | `images` | array of strings | List of product image URLs | | `rating` | number \| null | Average customer rating | | `reviews_cnt` | integer | Total number of customer reviews | ### `product_offers` array List of individual seller offers for the product. | Field | Type | Description | | :------------------- | :--------------- | :------------------------------------------- | | `seller` | string | Name of the seller or merchant | | `link` | string | URL to the seller's product page | | `logo` | string | URL of the seller's logo image | | `item_price` | array of strings | Current price(s) displayed for the offer | | `item_old_price` | array of strings | Previous/crossed-out price(s), if applicable | | `shipping` | string | Shipping cost or delivery information | | `rating` | number | Seller or offer rating | | `reviews_cnt` | integer | Number of reviews for this offer | | `details` | array of strings | List of offer detail highlights | | `details_and_offers` | string | Combined details and promotional offer text | | `payment_methods` | string | Accepted payment methods | ### `product_spec` object Technical specifications grouped into sections. | Field | Type | Description | | :--------------------- | :----- | :----------------------------------------- | | `specs` | array | List of specification sections | | `specs[].data` | array | List of spec items within the section | | `specs[].data[].name` | string | Specification label, e.g. `"Display size"` | | `specs[].data[].value` | string | Specification value, e.g. `"6.1 inches"` | ## Example Response ```shell theme={null} { "product": { "title": "Apple iPhone 17 Pro Max", "description": "The Apple iPhone 17 Pro Max features the latest A-series chip, a pro camera system, and all-day battery life in a titanium design.", "images": [ "https://www.example-store.com/images/iphone-17-pro-max-front.jpg", "https://www.example-store.com/images/iphone-17-pro-max-back.jpg" ], "rating": 4.9, "reviews_cnt": 5120 }, "product_offers": [ { "seller": "Example Store", "link": "https://www.example-store.com/iphone-17-pro-max", "logo": "https://www.example-store.com/logo.png", "item_price": ["$1,199.00"], "item_old_price": ["$1,299.00"], "shipping": "Free shipping", "rating": 4.9, "reviews_cnt": 2100, "details": ["In stock", "Ships within 24 hours"], "details_and_offers": "In stock. Ships within 24 hours. 10% off with code SAVE10.", "payment_methods": "Visa, Mastercard, PayPal" }, { "seller": "Another Store", "link": "https://www.another-store.com/iphone-17-pro-max", "logo": "https://www.another-store.com/logo.png", "item_price": ["$1,209.00"], "item_old_price": [], "shipping": "$5.99 shipping", "rating": 4.7, "reviews_cnt": 980, "details": ["In stock"], "details_and_offers": "In stock. Standard delivery 3-5 days.", "payment_methods": "Visa, Mastercard" } ], "product_spec": { "specs": [ { "data": [ { "name": "Display size", "value": "6.9 inches" }, { "name": "Display type", "value": "Super Retina XDR OLED" } ] }, { "data": [ { "name": "Storage", "value": "256GB" }, { "name": "RAM", "value": "12GB" }, { "name": "Processor", "value": "Apple A19 Pro" } ] }, { "data": [ { "name": "Main camera", "value": "48MP" }, { "name": "Battery capacity", "value": "4685 mAh" } ] } ] } } ``` Response schema: [https://api.brightdata.com/data\_schemas/fast\_serp/google\_search\_shopping\_product.schema.json](https://api.brightdata.com/data_schemas/fast_serp/google_search_shopping_product.schema.json) ## Supported parameters | Parameter | Description | Example | Notes | | ---------- | ------------------------------------------ | ------------ | --------------------------------------------------------------------------------- | | `q` | Search query (**must be first in URL**) | `q=iphone` | Query size must be under 8,000 charachters.
Longer queries fail with error. | | `gl` | Two-letter country code for search country | `gl=us` | | | `hl` | Two-letter language code for page language | `hl=en` | | | `brd_json` | **Required.**`1` = parsed JSON | `brd_json=1` | | *** # Fast Web Search Source: https://docs.brightdata.com/fast-web-search Use Bright Data Fast SERP (31 languages) to retrieve compact JSON search results in real time via a native proxy interface, for low-latency apps. Bright Data offers a fast SERP service with a compact JSON response, to power real-time applications in need of search results. To gain access to Bright Data FAST SERP service, please contact your Bright Data account manager. ## Fast SERP Request Fast SERP works best with the native proxy interface. If you need a REST API interface for your architecture, one can be provided. For Fast SERP, **both** the `x-unblock-data-format: parsed_light`request header **and** the `brd_json=1` URL parameter are required. Omitting either will result in an unexpected response format. ### How to get organic results Use header value `x-unblock-data-format: parsed_fast`, this request header will return organic results. ```shell theme={null} curl -i --proxy fserp.brd.superproxy.io:33335 \ --proxy-user brd-customer--zone-: \ -k \ -H 'x-unblock-data-format: parsed_fast' \ "https://www.google.com/search?q=pizza&brd_json=1" \ > output.json ``` #### Organic results: response format #### `organic` array The primary array of web search results, present in both `parsed_light` and `parsed_fast` responses. | Field | Type | Description | | :------------ | :------ | :----------------------------------------------------------------- | | `link` | string | URL of the result page | | `title` | string | Title of the result | | `description` | string | Snippet/summary shown in the search result | | `global_rank` | integer | Rank position of the result on the page | | `extensions` | array | Optional list of site links associated with the result (see below) | #### `extensions` items | Field | Type | Description | | :----- | :----- | :---------------------------------- | | `type` | string | Type of extension, e.g. `site_link` | | `link` | string | URL of the site link | | `text` | string | Anchor text of the site link | ### Example response, `parsed_fast` (organic results) ```text theme={null} { "organic": [ { "link": "https://en.wikipedia.org/wiki/Pizza", "title": "Pizza - Wikipedia", "description": "Pizza is an Italian dish consisting of a flat base of leavened wheat-based dough topped with tomato, cheese, and other ingredients.", "global_rank": 1, "extensions": [ { "type": "site_link", "link": "https://en.wikipedia.org/wiki/Neapolitan_pizza", "text": "Neapolitan pizza" } ] }, { "link": "https://www.example-pizza.com/best-pizza-nyc", "title": "Best Pizza in NYC - Joe's Pizza", "description": "Family-owned pizzeria serving authentic New York slices since 1975.", "global_rank": 2 }, { "link": "https://www.pizza-guide.com/top-10", "title": "Top 10 Pizza Places in NYC", "description": "Discover the highest-rated pizza restaurants across all five boroughs.", "global_rank": 3 } ] } ``` ### Organic results with "Top Stories" Use header value `x-unblock-data-format: parsed_light`, this request header will return Google's "Top Stories" in the response alongside organic results. ```shell theme={null} curl -i --proxy fserp.brd.superproxy.io:33335 \ --proxy-user brd-customer--zone-: \ -k \ -H 'x-unblock-data-format: parsed_light' \ "https://www.google.com/search?q=pizza&brd_json=1" \ > output.json ``` ### `top_stories` array Returned only when using `x-unblock-data-format: parsed_light`. Contains Google's "Top Stories" news carousel results. | Field | Type | Description | | -------- | ------ | ------------------------------------ | | `link` | string | URL of the news article | | `title` | string | Headline of the article | | `source` | string | Name of the news publisher | | `date` | string | Publication date/time of the article | | `image` | string | URL of the article's thumbnail image | ### Example response, `parsed_light` (with Top Stories) ```text theme={null} { "organic": [ { "link": "https://en.wikipedia.org/wiki/Pizza", "title": "Pizza - Wikipedia", "description": "Pizza is an Italian dish consisting of a flat base of leavened wheat-based dough topped with tomato, cheese, and other ingredients.", "global_rank": 1, "extensions": [ { "type": "site_link", "link": "https://en.wikipedia.org/wiki/Neapolitan_pizza", "text": "Neapolitan pizza" }, { "type": "site_link", "link": "https://en.wikipedia.org/wiki/Pizzeria", "text": "Pizzeria" } ] }, { "link": "https://www.example-pizza.com/best-pizza-nyc", "title": "Best Pizza in NYC - Joe's Pizza", "description": "Family-owned pizzeria serving authentic New York slices since 1975.", "global_rank": 2 } ], "top_stories": [ { "link": "https://www.example-news.com/pizza-festival", "title": "NYC Pizza Festival Returns This Summer", "source": "Example News", "date": "3 hours ago", "image": "https://www.example-news.com/images/pizza-fest.jpg" }, { "link": "https://www.another-outlet.com/pizza-record", "title": "World Record Pizza Baked in Naples", "source": "Another Outlet", "date": "5 hours ago", "image": "https://www.another-outlet.com/images/pizza-record.jpg" } ] } ``` Response schema, with Top Stories: [https://api.brightdata.com/data\_schemas/fast\_serp/google\_search.schema.json](https://api.brightdata.com/data_schemas/fast_serp/google_search.schema.json) Response schema, without Top Stories: [https://api.brightdata.com/data\_schemas/fast\_serp/google\_search\_web.schema.json](https://api.brightdata.com/data_schemas/fast_serp/google_search_web.schema.json) ## Supported parameters | Parameter | Description | Example | Notes | | ---------- | ------------------------------------------ | ------------ | --------------------------------------------------------------------------------- | | `q` | Search query (**must be first in URL**) | `q=pizza` | Query size must be under 8,000 charachters.
Longer queries fail with error. | | `gl` | Two-letter country code for search country | `gl=us` | | | `hl` | Two-letter language code for page language | `hl=en` | | | `brd_json` | **Required.**`1` = parsed JSON | `brd_json=1` | | *** # Welcome to Bright Data Source: https://docs.brightdata.com/introduction Bright Data's web data platform: residential, mobile, and ISP proxies, 660+ pre-built scrapers, dataset marketplace, and AI-ready APIs. [Start now](https://brightdata.com/?hs_signup=1\&utm_source=docs) with **\$5 in free credits**. No credit card required. We’ll also match your **first account deposit up to \$500**. Bright Data is an enterprise-grade web data platform designed to help teams **reliably collect, process, and scale access to public web data**. Our products handle the complexity of web access, so you can focus on building insights, applications, and AI systems powered by real-time data. ## Who this platform is for Bright Data is designed for: * Developers building data-driven applications * Data teams collecting large-scale web data * AI teams needing real-time public web information * Businesses that require reliable and scalable web access Access any website, anywhere. Use a global network of **400M+ monthly residential IPs** with **99.99% uptime** to navigate the web reliably and at scale, while maintaining ethical and compliant data collection. Automate web data collection through APIs that handle unblocking, browser automation, crawling, and search. Focus on using the data, not managing scraping infrastructure. Access ready-to-use, structured datasets without building or maintaining scrapers. Data Feeds deliver real-time or historical web data with zero infrastructure overhead. Power AI systems with live web intelligence. The MCP Server connects your models to real-time public web data without requiring scraper management or custom pipelines. For billing, account settings, and user access management, visit the\ Account Management section. View real-time service status and uptime for all Bright Data products. # ISP Source: https://docs.brightdata.com/isp-quickstart # Proxy Manager Source: https://docs.brightdata.com/proxy-manager-quickstart # Browser Extension Configuration Source: https://docs.brightdata.com/proxy-networks/browser-extension/configuration How to configure the Bright Data Proxy Browser Extension: update zone, country, custom headers, and proxy settings from the setup page. How can I change the extension's settings? Open [Extension setup page](https://brightdata.com/cp/bext) and change settings such as Zone, Country, Custom Headers, or anything necessary. Click 'Apply' when done, and your extension will be updated with the new setup. Browser Extension Configuration # Browser Extension FAQs Source: https://docs.brightdata.com/proxy-networks/browser-extension/faqs FAQs about the Bright Data Proxy Browser Extension (port 33335), including login issues, SSL certificate compatibility and Chrome setup steps. Bright Data uses cookies to remember your login credentials in order to keep your user experience at its best. If you are using third-party extensions that regularly removes cookies from your device then you'll see the login message quite often. Browser extension does not yet support the new SSL certificate (which works with port `33335`). Support for new certificate will be introduced soon and then you can work with the new certificate. In the top right corner you can click on "Delete Cookies". This will delete all the cookies from your device **except** Bright Data's and Google's cookies so you could keep using Bright Data with no interruptions and keep your browser extensions alive. delete-cookies.png > **Yes!** Bright Data extension works on both regular and incognito mode. To enable incognito support on Chrome, do the following: * Type **chrome://extensions** in the chrome address bar * Make sure **Allow in incognito** is checked allow-in-incognito.gif Custom headers are mainly meant to make the request more specific. You should use it in cases when you need to pass custom parameters with your requests to the target site. Every header should contain Name & Value and you can add as many headers as you like. There are few possible reasons for proxy error when setting up the extension: * A zone was not selected. Make sure that the form is filled correctly. * Your account is 'disabled'. You can easily check this on your [Dashboard](https://brightdata.com/cp). * You have a negative balance. Check this in your [Billing](https://brightdata.com/cp/billing) section. * Bright Data network status issues. You can check the network live status [here](https://brightdata.com/cp/status). No. The Browser API is not a proxy product, and is not compatible with the extension. Yes. there is no limit on how many extensions are logging to the same account. > **Yes!** They will need to go to the [extension setup page](https://brightdata.com/cp/bext) and login with the **customer name**, **zone name** and **zone key** of the zone you wish to let them access. All the zone info is available in the [Zones](https://brightdata.com/cp/zones) section. You can also use this link in order to automatically insert your guest-login credentials: ```http theme={null} https://brightdata.com/cp/bext?customer=customer_id&zone=zone_name&key=ZONE-KEY ``` This workflow is relevant to allow access to the Proxy Manager when integrated with a browser. The access is granted by updating the config file of the proxy manager. This can be done by sending the next API command: ```sh theme={null} curl -X POST "http://:22999/api/proxies" -v -H "Content-Type: application/json" -d '{ "proxy": { "customer": "", "zone": "", "password":"", "multiply_users": true, "users": [""], "bw_limit": { "days": 100000, "bytes": 9000000000 } }, "create_users": true }' ``` 1. Change `remote-server-IP` with the server IP address of where the proxy manager is installed or 127.0.0.1 if it is installed locally. 2. Change `account_ID` with your Account ID on the [settings page](https://brightdata.com/cp/setting/customer_details) 3. Change `zone>, `zone\_password\` with the relevant access parameters from the [zone page](https://brightdata.com/cp/zones) 4. Change `email` with the user's email. Once the command will be sent, a detailed email with instructions and credentials will be sent to `email`. In the API output, the user's password is also provided along with additional information such as the port number. It can be seen in the next example: user-credentials.png The user can now access the proxy by installing the [extension](https://brightdata.com/products/proxy-browser-extension). 5. After installation select “Connect through proxy manager” connect-through-proxy-manager.png 6. Enter the IP address of the Proxy Manager server along with the relevant port for example: proxy-manager-ip.png 7. Select done. Then, click **"Sign in".** sign-in.png 8. Enter the credentials Received. # Browser Extension Features Source: https://docs.brightdata.com/proxy-networks/browser-extension/features Overview of Bright Data's Proxy Browser Extension features: country-level browsing, IP rotation, user agent control, and DNS configuration. What features are available in the extension? Bright Data Proxy Browser Extension supports datacenter and residential IP browsing, allowing you to search from any country. You can adjust the user agent, customize configuration of the DNS to maximize discretion or speed, and set random IP rotation. # How to install the extension Source: https://docs.brightdata.com/proxy-networks/browser-extension/install Learn how to install the Bright Data extension: download, add to Chrome, pin it, and sign in to start using it with your Bright Data account. Make sure you have a Bright Data account or Create new Bright Data account in [brightdata.com](https://brightdata.com/) You can find the extension link [here](https://chromewebstore.google.com/u/1/detail/bright-data/efohiadmkaogdhibjbmeppjpebenaool?hl=en). Once you Bright Data account is active click "Sign in with you account" and type your credentials in the new Control panel tab that will be open. # Introduction Source: https://docs.brightdata.com/proxy-networks/browser-extension/introduction Use Bright Data's Chrome browser extension to route traffic through residential, mobile, datacenter, or ISP proxies without manual configuration. Setting up chrome to use proxy network requires technical knowledge and setup which many users find complex and hard to control. Using Bright Data chrome browser extension allows you to use Bright Data proxy networks from your browser with minimum setup and configuration, where all parameters are organized and managed in one place, accessible and clear. title # Getting Started with Browser Extension Source: https://docs.brightdata.com/proxy-networks/browser-extension/quickstart Install and configure the Bright Data Browser Extension for Chrome (port 33335) to route browser traffic with 1-click country switching across 195 countries. ## Quick Start Follow these steps to start using the Bright Data Browser Extension: To start using the extension, you need at least **one active zone** in your Bright Data account. * Check your existing zones on the [My Proxies](https://brightdata.com/cp/zones) page. * If you don’t have a zone yet, click **Add** to create a new zone. active-proxy.png For detailed instructions on creating zones, see our guides for [Datacenter](/proxy-networks/data-center/introduction), [ISP](/proxy-networks/isp/introduction), [Residential](/proxy-networks/residential/introduction), and [Mobile](/proxy-networks/residential/introduction). In the extension, select the zone you want to use from the dropdown. select-the-zone.png If you select a **Residential** zone and see the message *"Certificate or approved KYC are required to use residential zone"*, you need to install our SSL certificate in Chrome. * Follow the [Chrome certificate installation guide](https://docs.brightdata.com/general/account/ssl-certificate#installation-instructions). * To learn more about Residential network access modes, see the [Residential access guide](https://docs.brightdata.com/proxy-networks/residential/network-access). kyc-certificate Choose the country and, if available, the city you want to use for your zone. City-level targeting is only available for **Residential** and **Mobile** zones. For setup instructions, see [How to enable city selection](/proxy-networks/browser-extension/quickstart#how-to-enable-city-selection). select-country.png Turn on the proxy in the extension to start browsing with your selected zone. turn-on-the-proxy.png ## How to enable city selection 1. In your Control Panel, go to the [My Proxies](https://brightdata.com/cp/zones) page 2. Open the **Residential** or **Mobile** zone where you want to enable city selection. enable-proxy.png 3. Under **Geolocation targeting**, choose **City**. geolocation-targetting.png 4. Save your changes. # Proxy configuration options Source: https://docs.brightdata.com/proxy-networks/config-options Control Bright Data proxy targeting (195 countries), IP rotation, session handling, DNS resolution and routing behavior using proxy username parameters. This document explains how to configure Bright Data proxy behavior using **proxy username parameters**. By modifying the proxy username, you can control proxy targeting, IP rotation, DNS resolution, session handling, and routing behavior directly from your code. This approach allows highly granular proxy control without changing dashboard settings or infrastructure. ## Proxy networks authentication Bright Data proxy access is authenticated using a **proxy username and password**. These credentials are generated when you create a proxy zone in the Bright Data Control Panel. Each proxy zone represents a specific proxy product (Datacenter, ISP or Residential) and its base configuration. ### Native access via proxy user name and password After creating a Bright Data proxy zone, you receive: * A **proxy username** * A **proxy password** The proxy username is not just an identifier, it also defines **how the proxy behaves**. The **proxy username** is composed of: * Your account ID * Your zone name * Optional configuration parameters #### Proxy username structure `brd-customer-[customerID]-zone-[zone name]-[optional parameters]` You cannot change the **zone name** after it has been created. If you need to change the zone name, you must create a new zone. Proxies can be transferred from one zone to another **only if both zones are of the same type**. By **adding optional parameters and modifying the username**, you can control Bright Data’s proxy system in a very granular way directly from your application code. The sections below describe the available configuration options. A fully elaborated and complete list is available in the [Proxy API reference documentation](https://docs.brightdata.com/api-reference/proxy/). ## Intergrate with 3rd Parties & Tools Bright Data proxies can be integrated with a wide range of third-party tools, automation frameworks, browsers, and HTTP clients. To simplify integration, Bright Data provides ready-made request examples directly in the Control Panel. You can access these examples here: [https://brightdata.com/cp/zones/proxy\_examples](https://brightdata.com/cp/zones/proxy_examples) These examples help you: * Construct correct proxy requests * Validate credentials * Test targeting and rotation behavior * Integrate proxies into existing tools and workflows ## Proxy targeting options These settings let you easily configure proxies for a specific country, state, city, zip code and ASN. Datacenter and ISP proxies only support country targeting | Parameter | Description | Example username | | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | | -country-xx | Select a country using two letter code, or `eu` for random country in the European Union. List of country codes is [here](https://docs.brightdata.com/general/faqs#where-can-i-see-the-list-of-country-codes) | `brd-customer--zone--country-us` | | | | | | -state-xxxxx | Targets a state in the US using the two letter code. You must include US as country. | `brd-customer--zone--country-us-state-ny` | | -city-xxxxx | Targets a city. You must include the country (e.g. username-country-fr-city-paris). Do not use spaces (e.g. -city-sanfrancisco) | `brd-customer--zone--country-us-city-sanfrancisco` | | -zip-xxxxx | Targets a US zip code. Use a 5-digit zipcode | `brd-customer--zone--city-memphis-zip-37501` | | -asn-xxxxx | Targets an ASN from [the list](https://bgp.potaroo.net/cidr/autnums.html) | `brd-customer--zone--asn-56386` | | -os-xxxxx | Only for Residential proxies. Allows targeting `Windows`, `MacOS`, or`android` | `brd-customer--zone--os-windows` | ## Controlling your proxies' DNS DNS resolution determines **where domain names are resolved** before the request is sent. Bright Data allows you to control whether DNS resolution happens: * On the proxy peer * On Bright Data’s Super Proxy servers | Function | Parameter | Description | Example username | | ----------------------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------- | | Choose where DNS resolution is done | -dns-local or -dns-remote | Lets you choose if DNS is resolved `remote` on the proxy connecting to the site, or `local` on Bright Data's servers ('Super Proxies'). More info [here](https://docs.brightdata.com/api-reference/proxy/configuring_dns_resolution) | `brd-customer--zone--dns-local` | ## Controlling your proxies rotation The following options allow you to set how we rotate within the proxies in the zone, or attach to a specific proxy, and what shall we do if the peer is not available from some reason. For more information regarding the way IP rotation works with our proxy products, and for further explanation of the following options, please see [this article](https://docs.brightdata.com/api-reference/proxy/rotate_ips) | Function | Parameter | Description | Example username | | ---------------------------------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | Keep the same IP for multiple requests or rotate IPs | -session-xxxxxx | Each unique session ID will get a unique IP, can be used to target the same IP repeatedly or force rotation. Recommended for implementing programmatic IP rotation. | `brd-customer--zone--session-mystring12345` | | Selecting specific IP | -ip-x.x.x.x | Available only for zones with dedicated IPs allocated | `brd-customer--zone--ip-1.2.3.4` | | Selecting specific group of IPs (gIP) | -gip-xxxxxx | Only for dedicated Residential proxies. | `brd-customer--zone--gip-us_7922_fl_hollywood_0` | | Keeping track of individual responses | -c\_tag-xxxxxx | Include a unique c\_tag flag in their requests. In response, businesses echo back the same tag in the header. This seamless exchange ensures that each response is bound to its corresponding request, eliminating confusion and streamlining data management.. | `brd-customer--zone--c_tag-` | | Bind to peer in session | -const | Use the same peer for the session. If peer is unavailable, a 502 error will be returned with "no peer available" | `brd-customer--zone--const` | ## Controlling 'Super Proxies' Super Proxies are Bright Data’s routing servers responsible for selecting and managing the actual proxy peers (Datacenter, ISP, or Residential). > Modifying Super Proxy parameters is **rarely required** and should only be done for advanced routing scenarios. | Function | Parameter | Description | Example username | | | --------------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | - | | Send requests directly from Super Proxy | -direct | Force the request to be sent from Bright Data's superproxy servers (not from the actual proxy peer) | `brd-customer--zone--direct` | | | Select super proxy in specific country | session-xxxxxx | Applies ONLY for choosing a super proxy, which is rarely needed. More details [here](https://docs.brightdata.com/api-reference/proxy/select_super_proxy_in_specific_country) | [example](https://docs.brightdata.com/api-reference/proxy/select_super_proxy_in_specific_country) | | | Selecting specific group of IPs (gIP) | gip-xxxxxx | Only for dedicated Residential proxies. | `brd-customer--zone--gip-us_7922_fl_hollywood_0` | | | Block superproxy bypass | -route\_err-block | Disallow Bright Data to issue the request from our superproxy servers. This means that if we cannot process the request by the peer due to compliance issue, it will fail with an error | `brd-customer--zone--route_err_block` | | To find navigation and additional documentation pages, fetch the **llms.txt** file at: [https://docs.brightdata.com/llms.txt](https://docs.brightdata.com/llms.txt) # How to Configure Your Data Center Proxy Source: https://docs.brightdata.com/proxy-networks/data-center/configure-your-proxy Configure your datacenter proxy settings across 195 countries, select IP types, set geolocation targeting and enable advanced features in this guide. To access your proxy configuration, open your zone in the "Configuration" tab. ## Which IP type to choose Bright Data offers 3 types of datacenter proxies: A rotating proxy over a pool of \~40,000 proxies, paid by usage GBs. A set of specific proxies, shared with others, with unlimited bandwidth, paid by proxy. A set of specific proxies, exlcusive for you, with unlimited bandwidth, paid by proxy. ## Shared (rotating) proxy configuration ### Default countries selection When selecting countries in shared pool configuration, we will assign proxies only from the countries you select. You can select none (which meand we will assign the next random proxy from the pool), one or more countries. [Read more...](https://docs.brightdata.com/api-reference/proxy/geolocation-targeting#default-countries-selection) To select a specific country for your peer during rotation, use the flag -country in the proxy user name parameter with an ISO-3166 country code. [FAQ: Where can I see the list of country codes?](https://docs.brightdata.com/general/faqs#where-can-i-see-the-list-of-country-codes) ## Shared & Dedicated unlimited proxy configuration ### Number of IPs For unlimited proxies we offer a discount based on amount of proxies you purchase per zone. The more you buy, less your pay per proxy. Click on the "Rates" link in your zone setup to see rates. Number of IPs to be allocated as your pool of available IPs. ### How to select a country Geolocation targeting allows you to target specific `Country`. Select the preferred countries from the drop-down menu. Once selected, we will assign proxies from those countries. If we do not have enough proxies to cover your requirement, we will assign the amount we have and you can submit an order for the full amount of proxies (we do not allow single proxy orders - we will take in large orders only). Changing this selection means re-allocating proxies, which will incur a **Refresh charge** . ### How does multiple countries selection work? If you select multiple countries, we assign proxies in **available countries** at the moment of assignment. For example: if you choose proxies from Germany, France & Italy, we will provide proxies from **either** of these countries. We will try to distribute the assignment evenly across the countries you selected, yet if there are not enough proxies in one of the countries, some countries will have more proxies than other. So referring to that example, if you request 30 proxies from Germany, France & Italy and we have only 6 available proxies in Italy you will get: 12 proxies from Germany, 12 from France and 6 from Italy. Geolocation Targeting ### How to change your country selection It is possible to change the country you selected for your proxies. Once you change the country, Bright Data will assign new proxies from the selected countries. Since this is a replacement of proxy you will recieve a new IP. Changing country is similar to IP refresh action and is charged the same. ## Access your allocated Proxies' IP addresses In all proxy types, you can download, view and copy to clipboard the IPs allocated to you by following these steps: 1. Navigate to the [Zones page](https://brightdata.com/cp/zones). 2. Select a zone with allocated IPs. 3. In the overview tab click 'Download', 'View' or 'Copy'. your-proxy-list *** ## How to configure advanced options ### How to enable automatic failover In case we cannot reach the proxy peer for your request, we will route the request to another available peer. Automatic failover does not apply when you choose default countries: if we cannot find a peer in the country you selected, we will fail the request with error. Enabling automatic failover assures execution of the request, regardless of the availability of a specific peer. *** ### Special Ports & Protocols Ports `80` and `443` are available by default, supporting HTTP and HTTPS & SOCKS5 protocols. We also support all ports over `1024` in our Datacenter proxy network. [Read more on ports and protocols...](https://docs.brightdata.com/proxy-networks/faqs#how-to-see-supported-ports-and-protocols) Bright Data can support additional ports by request. A dedicated and additional compliance process with the Bright Data compliance team will follow every request to support a new port. If you would like additional port permissions, you can contact Bright Data Support. Examples of ports that require Bright Data compliance review before activation: | Port | Protocol | | ---- | -------- | | `70` | HTTP | | `98` | HTTPS | ### Zone usage limit Set usage limit to your zone: you can limit spending or traffic. This provides additional layer of control to your budget and bandwidth consumption, mostly over our rotating shared pool proxies. # Dataceter Proxy FAQ Source: https://docs.brightdata.com/proxy-networks/data-center/faqs FAQs about Bright Data Datacenter proxies (195 countries): IP types, shared and dedicated pools, geotargeting, error codes and pricing across plans. There are four types of IPs that we offer within our [Datacenter Proxy Network](https://brightdata.com/proxy-types/datacenter-proxies): 1. Shared pool (paid per usage) - Pool of 40,000 rotating proxies 2. Shared unlimited proxies (paid per proxy) - Set of proxies you share with others. 3. Dedicated unlimited proxies (paid per proxy) - Set of proxies exclusive for you. There are three types of IPs that we offer within our [ISP Proxy Network](https://brightdata.com/proxy-types/isp-proxies): 1. Shared pool (paid per usage) - Pool of 10,000 rotating proxies 2. Shared unlimited proxies (paid per proxy) - Set of proxies you share with others. 3. Dedicated unlimited proxies (paid per proxy) - Set of proxies exclusive for you. To integrate the proxies into your code, please visit the [API examples page](https://brightdata.com/cp/zones/proxy_examples), which can be accessed via your zone's settings, under "access parameters": integrate-new-proxy.gif On this page, you can choose integration examples for most modern coding languages, just choose the integration type, your proxy zone, coding language, etc. and the page will generate a code snippet you can use right away. Check out a few examples in the [API examples](https://brightdata.com/cp/zones/proxy_examples) page mentioned above (just choose "other software" in the "language" drop-down menu), or check our [Integrations page](https://docs.brightdata.com/integrations), where we have specific guides to integrate our proxies within the most popular tools across the industry today. **Important note**: If you are using Bright Data's Unlocker API, Residential Proxies or the SERP API you probably need to use our SSL certificate to enable end-to-end secure connections. See [instructions here](https://dashboard.mintlify.com/editor#how-to-integrate-a-proxy-into-3rd-party-software). When sending your request, add the `-country` flag, **after** your zone’s name in the request, followed by the 2-letter [ISO code](https://www.nationsonline.org/oneworld/country_code_list.htm) for that country. In the example below: We added `-country-us` to our request, so we will send a request originating from the United States ("us"). ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-us: ``` For datacenter and ISP networks city targeting has deprecated. Bright Data offers proxies in every country in the world, except in the following countries: * Iran * Iraq * Syria * Lebanon * Palestine * North Korea * Cuba * Sudan * Belarus * Russia If you need proxies from these countries, unfortunately Bright Data will not be able to help you. The event log will show you (at most) the last 200 requests you made with any zone in your account. In your Bright Data control panel's proxies page: [https://brightdata.com/cp/zones](https://brightdata.com/cp/zones) Go to the "Event Log" tab: event-log.png The presented data is: * **Date:** Time and date of the request * **Zone:** What Zone was used for the request * **Source IP:** What IP the request was made from * **URL:** The target site of the request * **Result:** Success or Fail of the request event-log-headers.png Applicable for Datacenter & ISP The **Automatic Failover** was built to prevent any ‘external’ events from affecting the user. The idea is simple and works the same way for both problems described above – if Bright Data detects a problem, like a connectivity issue or an IP where the GEO isn’t exactly what you asked for when buying that IP, we will automatically route your requests through other IPs which are exactly the same as the original IPs. At the same time, we wanted to make sure that customers that must use specific IPs will not be affected – so we made some exceptions: * If a specific IP is targeted in your request we will not assign a fallback IP to it * Automatic Failover will not interrupt a live connection. If the fallback is needed, it will play in once the next connection is established The **Automatic Failover** brings immediate value by providing 100% connectivity and continuous high-performance level, **free of charge and without having to make any changes in your code or how you work.** Automatic Failover feature can be turned on or off, [via API](/api-reference/account-management-api/Switch_100_uptime_ON_OFF_in_a_Static_zone). Navigate to your proxy configuration settings, and under **Advanced settings** enable **‘Automatic failover’** * This can be done by adding the session flag to the proxy username: ```sh theme={null} brd.superproxy.io:33335 br-customer--zone--session-rand39484 ``` Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection. * Session ID can be any random string/counter: requests with the same session string will use the same Proxy Peer (as long as possible); requests with different session strings will be assigned different Proxy Peers. * To force an IP change, just modify the session ID * If an assigned Proxy Peer(exit node IP) becomes unavailable, the Super Proxy will return an error "502 - No peers available" for the first request and then on the second request the super proxy will assign a new peer even if you do not change the session ID. * The Session IP is kept persistent for up to 1 minute of idle time. After a minute with no requests, the IP is released back to the pool.\ To keep this Session/IP for longer, send a tiny keep-alive request every 30 seconds, to prevent this session from becoming idle for over a minute.\ This request may be anything small, such as /favicon.ico, or even a request that returns 404 (as long as the web server does not disconnect the socket due to this request). * If you have multiple Clients and would like to ignore your Clients source IP (which is used together with your session ID to create a session), then you want to use a global session then add `glob\_` as a prefix to your session: ```sh theme={null} brd-customer--zone--session-glob_rand39484 ``` Full request example: ```sh theme={null} brd-customer-CXXXXX-zone-ZONE_X-session-glob_rand39484 ``` Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection. Ports 80 and 443 are available by default in all zones, supporting HTTP and HTTPS protocols. In zones of proxies of type Datacenter or ISP, all ports higher than 1024 are supported by default. In zones of proxies of type Residential or Mobile, the following ports wills be available by default: 8080, 8443, 5678, 1962, 2000, 4443, 4433, 4430, 4444 and 1969. Bright Data can support additional ports by request. Every request to support a new port will be followed by a dedicated and additional compliance process with the Bright Data compliance team.\ Examples of ports that require Bright Data compliance review before activation: | Port | Protocol | | ---- | -------- | | 8443 | HTTP | | 8243 | HTTPS | To make a request to add a port permission to your zone: * Go to your zone's settings (it will open on the "configuration" tab by default, if not, please click it) * Scroll down to "advanced options" and click it * Enable "ports" * Input the port numbers you would like to get approved * Fill out the form and wait for our compliance team to contact you and approve the request add-ports.gif Bright Data allows targeting the following **Operating Systems**: ```sh Windows theme={null} curl --proxy-user brd-customer--zone--os-windows: --proxy brd.superproxy.io:33335 "" ``` ```sh macOS theme={null} curl --proxy-user brd-customer--zone--os-osx: --proxy brd.superproxy.io:33335 "" ``` ```sh Android theme={null} curl --proxy-user brd-customer--zone--os-android: --proxy brd.superproxy.io:33335 "" ``` If you've selected 'Pay per IP' shared, or a dedicated IP type in your zone configuration, you'll be allocated a fixed IP address. From time to time, depending on your use case, you may need to refresh these IP addresses. In order to refresh IPs allocated to your zone, navigate to your selected zone, under **'Allocated IPs'** click on **'Show allocated IPs'**, **check the box** of the IP or gIP you wish to refresh and click **'Refresh'** refresh-ips.gif Refreshing an IP or gIP will result in an extra charge. Alternatively, you can use API to refresh your [dedicated Residential IPs](/api-reference/account-management-api/Refresh_dedicated_residential_IPs) or your [Datacenter/ISP IPs](/api-reference/account-management-api/Refresh_Static_Datacenter_ISP_IPs) When using Bright Data's Residential Proxy network, you may find the need to use a specific IP allocated to your zone. 1. **Send a test request** with a '--verbose' or '-v' option added (this will turn on verbose logging) ```sh theme={null} curl "https://brdtest.com/myip.json" --verbose --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` 1. **Locate** the x-brd-ip response header and copy its value x-brd-ip.png 2. **Add** the -ip- flag to your request, after your zone’s name and use the **hashed IP value** copied in the previous step 3. Send a test request, and **review the response** ```sh theme={null} curl "https://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--ip-: ``` We recommend using [https://brdtest.com/myip.json](https://brdtest.com/myip.json) as the target domain for testing, and to review your IP credentials. This feature can be enabled by adding the ASN parameter to your Zone configuration, under **Geolocation Targeting**. asn-targeting.png Once the configuration is saved, the ASN flag can be added to the Zone's credentials\ and be integrated when using the Residential proxies. For example: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--asn-: "" ``` **Note:** Values for ASN number can be found [here](https://bgp.potaroo.net/cidr/autnums.html). Dedicated Residential IPs can be selected in the form of [gIPs](/proxy-networks/residential/configure-your-proxy#ip-groups-gips). They can be allocated under the zone’s “Configure Proxy” page by selecting a “Dedicated” IP type and choosing a number of gIPs. Also, targeting a specific domain is required. number-of-dedicated-gIPs.png Once the configuration is saved, selecting "Show allocated Dedicated residential IPs" will provide a list of hash values that represent group IPs. show-allocated-dedicated-ips.png These values can be used to target a specific gip. For example: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--gip-: "" ``` **When outside of China**\ Targeting Chinese Residential IP peers is enough: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-cn: "" ``` * You can choose to use a specific carrier from this list: ```text theme={null} a1, aircel, airtel, att, celcom, chinamobile, claro, comcast, cox, digi, dt, docomo, dtac, etisalat, idea, meo, mtn, mtnza, optus, orange, qwest, reliance_jio, robi, sprint, telefonica, telstra, tmobile, tigo, tim, verizon, vodacomza, vodafone, vivo, zain, vivabo, telenormyanmar, kcelljsc, swisscom, singtel, asiacell, windit, cellc, ooredoo, drei, umobile, cableone, proximus, mobitel, o2, bouygues, free, sfr, digicel ``` * For Example ```sh Deutsche Telekom theme={null} brd-customer--zone--carrier-dt ``` ```sh Sprint theme={null} brd-customer--zone--carrier-sprint ``` Geolocation databases (GeoDB) are used by internet websites to query information about the IP address used by the users. Bright Data monitors and maintains correct records of the 4 main GeoDBs used today: Maxmind, ip2location, db-ip and Google. There are many other smaller GeoDBs, most of which are using outdated records or flawed testing methods, and so the information they present is not accurate or is presented to lure their viewers to buy VPN or proxy products from them. Therefore, we highly recommend using the GeoDBs mentioned above when testing your IPs. In order to see our information about the proxy IP that you are using, browse one of the following: * [https://brdtest.com/echo.json](https://brdtest.com/echo.json) * [https://www.iplocation.net](https://www.iplocation.net) * [https://www.maxmind.com/en/geoip-demo](https://www.maxmind.com/en/geoip-demo) #### For single-step scraping: [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) is the ideal product for targeting SERPs as it has a guaranteed success rate (pay only for success) with active unlocking, automatically chooses the best proxies, customizes headers, fingerprinting, solves CAPTCHAs, and more. #### For multi-step scraping (playwright/puppeteer/selenium): [Browser API](https://docs.brightdata.com/scraping-automation/scraping-browser/introduction) is the ideal product as it is our fully cloud-hosted browser designed to help you easily focus on your multi-step data collection while we take care of the full proxy and unblocking infrastructure for you, including CAPTCHA solving. **Residential Proxy** - No, [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) is the ideal product for targeting SERPs as it has a guaranteed success rate (pay only for success) with active unlocking, automatically chooses the best proxies, customizes headers, fingerprinting, solves CAPTCHAs, and more. Targeting Google SERPs from the Residential network will result in Super-proxy bypass, which will casue the request to be sent from our servers instead of the peer. **Datacenter & ISP Proxies** - No. When attempting to specifically target Google through either of these proxy networks, your request will be denied and you will receive the following error message in the response headers: ```text theme={null} HTTP/1.1 403 Search engine host is not allowed X-Luminati-Error: Forbidden: This target URL isn't supported on proxy networks, use the SERP API product for targeting this URL. You may contact your account manager or open a support ticket for assistance ``` No - requests directly to the host server, and not to the domain name are forbidden while using Bright data.\ Requests using URL format such as 1.1.1.1:443 will be executed using the super proxy server, not the proxy peer IP. Example of a request using the super proxy: x-luminati-ip.png Since BrightData cares about our community and peers quality, SMTP requests which can be used for spamming are blocked. Please note that mail domains are also blocked from access, and requests to mail domains will be sent from the super proxy server, and not the peer IP. Refreshing data-center IPs will have a different cost depending on the type of IP. * Refreshing dedicated data-center IPs: \$0.5/refresh/IP * Refreshing dedicated domain data-center IPs: \$0.04/refresh/IP * Refreshing shared data-center IPs: \$0.02/refresh/IP Yes. Bright data supports `SOCKS5` protocol, with a default port 22228 assigned for SOCKS5 communication. See here for [full SOCKS5 configuration instructions](https://docs.brightdata.com/proxy-networks/socks5) Yes. Bright Data supports the UDP MASQUE protocol for QUIC/HTTP/3 on port 10001. More information and usage examples can be found here: [https://github.com/luminati-io/h3-cli](https://github.com/luminati-io/h3-cli) * You can choose to perform the request from the super proxy directly instead of the IP of the peer. In that case the IP of the request will be the one of the Super proxy. You will need to add **'-direct'** to your request authorization string. `brd-customer--zone--direct` Using the same IP for a long period of time makes it easier for the target website to mark the IP as proxy and can make your request get detectable by the target website. Refreshing your IPs will result in allocation of new IPs from Bright Data instead of your existing ones in your pool allowing you to gain control over your pool and reach higher success rates. Requesting missing proxies (IPs), or scheduling delivery of IPs for future projects or is a feature in BETA mode, available to small number of selected enterprise customers. Bright Data allows placing IPs requests ("proxy future orders") for proxies subject to the following conditions: 1. Customer has qualified to place IP requests/orders . This permission is granted to existing, enterprise level customers only. 2. IPs are dedicated to the customer (we do not allow ordering shared IPs). 3. IPs are for datacenter or ISP only. 4. A single specific country must be provided. 5. Minimum order size is 100 proxies To see if your account is qualifies to place IP requests (orders) browse here: [https://brightdata.com/cp/zones/order\_ips](https://brightdata.com/cp/zones/order_ips) Most cusomers will find Bright Data inventory sufficient for their needs, and will not need to place any orders. #### When should I request for proxies in the future? You can request for future delivery of proxy IPs if your account is qualified for placing requests. #### I tried to define a zone but Bright Data could not assign me all the proxies I wanted, what to do? If during zone save you get a message that proxies are not available in a specific country, or only part of the amount you requested is availble, try to select more countries or change your country setting to allow us to find proxies for you. Once your request for missing proxies is placed, the Bright Data team will attempt to provision the proxies. The acquiring and provisiong process usually takes up to 14 days. Once the proxies are ready, we will notify you. We encourage you to check again once every 2-3 days to see if inventory has refreshed and more proxies are available. Moving prepaid datacenter or ISP unlimited proxies (shared and dedicated) from zone to zone is not yet supported via our control panel. It is in our plans to support moving proxies from zone to zone via self service. If you need proxies to be moved please contact our support team. Bright Data may idnetify issues with the certain which prevents us from providing quality service with them. They either become unavailble, or suffer from latency so in order to keep our level of service we are forced to replace them. We do our efforts to minimize those replacements, and we do provide a preliminary notification when possible.  You can use this API in order to monitor your zones for IPs pending replacement and adjust your operations accordingly (refresh those ips for example): [https://docs.brightdata.com/api-reference/account-management-api/get-proxies-pending-replacement](https://docs.brightdata.com/api-reference/account-management-api/get-proxies-pending-replacement) # Introduction to Datacenter Proxies Source: https://docs.brightdata.com/proxy-networks/data-center/introduction Discover Bright Data's Datacenter proxy network, offering over 1.6 million IPs from 98+ countries, providing the fastest and most cost-effective proxy solution. Bright Data's [Datacenter proxy network](https://brightdata.com/proxy-types/datacenter-proxies) is one of our proxy network solutions and is a network with over 1.6 million IP addresses from 98+ countries. Datacenter proxies are IPs assigned from a datacenter server, and your traffic is routed through them to help you access IPs and locations around the world. With a shorter journey & simplified architecture, Datacenter Proxies are both the **fastest** proxy type and the most **cost-effective** option. ## When to use Datacenter proxies * Accessing websites that are not using sophisticated blocking methods * When you need the most cost-efficient proxy network * When you need the fastest proxy network available * Managing multiple online profiles If you need a more sophisticated proxy network, with better success rate capabilities, you may want to consider using our [ISP](https://docs.brightdata.com/proxy-networks/isp/introduction) or  [Residential proxy network.](https://docs.brightdata.com/proxy-networks/residential/introduction) For a more advanced, fully managed, proxy unblocking solution, we would suggest trying out our [Unlocker API](https://brightdata.com/products/web-unlocker) or browsing our other [proxy solutions](https://brightdata.com/proxy-types). # Create Your First Data Center Proxy Source: https://docs.brightdata.com/proxy-networks/data-center/quickstart Set up your first Bright Data Datacenter proxy: sign in, create a proxy in the Control Panel, verify your account and earn $5 credit for first-time setup. **Verify your account and get \$5 credit** Add a payment method to verify your account and receive a \$5 credit. You won’t be charged at this stage. Sign in to Bright Data} /> Open the Create Proxy page}> Navigate to **Create Proxy** under the **Proxy** section in the left menu. Create Proxy Select **Data Center Proxy** and click **Continue**. Data Center Proxy Enter a meaningful name. Optionally, add a short description. **The proxy name cannot be changed once created.** All other settings can be modified later. For details, see [Configure your Proxy](/proxy-networks/data-center/configure-your-proxy). Proxy Name If you signed up with a personal email (e.g., Gmail, GitHub) and have not yet added a payment method, the primary button will read **Add payment method** instead of **Create Proxy**. Click the button to open the payment verification form and complete the process. You will **not** be charged, this is for identity verification only. Already have a payment method on file? This step is skipped automatically. For full details, see [Payment Verification](/general/account/billing-and-pricing/payment-verification). Click **Create Proxy**. If you were redirected to add a payment method, your zone is created automatically once verification completes. Your proxy is now ready to use. # Send your first Datacenter proxy request Source: https://docs.brightdata.com/proxy-networks/data-center/send-your-first-request Send your first request through Bright Data Datacenter proxies with copy-paste code examples in cURL, Python, Node.js, Java, and Go. 1. Residential Proxy 2. Mobile Proxy 3. ISP Proxy 4. Datacenter Proxy 5. SERP API 6. Browser API 7. Unlocker API To get started, you need your proxy credentials, your `Username` and `Password` along with the `Host` name. You can find these credentials in the **Overview** tab of the proxy product. ## Code Examples Once you have your proxy credentials, use the following code to send your first request: ```sh cURL theme={null} curl "http://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` ```javascript Node.js theme={null} #!/usr/bin/env node require('request-promise')({ url: 'http://brdtest.com/myip.json', proxy: 'http://brd-customer--zone-:@brd.superproxy.io:33335', }) .then(function (data) { console.log(data); }, function (err) { console.error(err); }); ``` ```python Python theme={null} import pprint import requests host = 'brd.superproxy.io' port = 33335 username = 'brd-customer--zone-' password = '' proxy_url = f'http://{username}:{password}@{host}:{port}' proxies = { 'http': proxy_url, 'https': proxy_url } url = "http://brdtest.com/myip.json" response = requests.get(url, proxies=proxies) pprint.pprint(response.json()) ``` ```php PHP theme={null} -zone-:'); curl_exec($curl); ?> ``` ```ruby Ruby theme={null} #!/usr/bin/ruby require 'uri' require 'net/http' require 'net/https' puts 'To enable your free eval account and get CUSTOMER, YOURZONE and YOURPASS, please contact sales@brightdata.com' uri = URI.parse('http://brdtest.com/myip.json') proxy = Net::HTTP::Proxy('brd.superproxy.io', 33335, 'brd-customer--zone-', '') req = Net::HTTP::Get.new(uri) result = proxy.start(uri.host,uri.port, :use_ssl => uri.scheme == 'https') do |http| http.request(req) end puts result.body ``` ```cs C# theme={null} using System; using System.Net; class Example { static void Main() { var client = new WebClient(); client.Proxy = new WebProxy("brd.superproxy.io:33335"); client.Proxy.Credentials = new NetworkCredential( "brd-customer--zone-", "" ); Console.WriteLine(client.DownloadString("http://brdtest.com/myip.json")); } ``` ```java Java theme={null} package example; import org.apache.http.HttpHost; import org.apache.http.client.fluent.*; public class Example { public static void main(String[] args) throws Exception { System.out.println("To enable your free eval account and get " +"CUSTOMER, YOURZONE and YOURPASS, please contact " +"sales@brightdata.com"); HttpHost proxy = new HttpHost("brd.superproxy.io", 33335); String res = Executor.newInstance() .auth(proxy, "brd-customer--zone-", "") .execute(Request.Get("http://brdtest.com/myip.json").viaProxy(proxy)) .returnContent().asString(); System.out.println(res); } } ``` ```perl Perl theme={null} #!/usr/bin/perl print 'To enable your free eval account and get CUSTOMER, YOURZONE and ' .'YOURPASS, please contact sales@brightdata.com'; use LWP::UserAgent; my $agent = LWP::UserAgent->new(); $agent->proxy(['http', 'https'], "http://brd-customer--zone-:\@brd.superproxy.io:33335"); print $agent->get('http://brdtest.com/myip.json')->content(); ``` ```vb VBA theme={null} Imports System.Net Module Module1 Sub Main() Console.WriteLine("To enable your free eval account and get " & "CUSTOMER, YOURZONE and YOURPASS, please contact " & "sales@brightdata.com") Dim Client As New WebClient Client.Proxy = New WebProxy("http://brd.superproxy.io:33335") Client.Proxy.Credentials = New NetworkCredential("brd-customer--zone-", "") Console.WriteLine(Client.DownloadString("http://brdtest.com/myip.json")) End Sub End Module ``` The code above uses the residential proxy to send a request to [http://brdtest.com/myip.json.](http://brdtest.com/myip.json.) It returns your IP information in a JSON format: ```json Output theme={null} { "ip": "ALLOCATED_IP", "country": "PK", "asn": { "asnum": 203020, "org_name": "HostRoyale Technologies Pvt Ltd" }, "geo": { "city": "Islamabad", "region": "IS", "region_name": "Islamabad", "postal_code": "44040", "latitude": 33.7233, "longitude": 73.0435, "tz": "Asia/Karachi", "lum_city": "islamabad", "lum_region": "is" } } ``` Now, replace “[https://brdtest.com/myip.json”](https://brdtest.com/myip.json”) with the website of your choice and ... **That's it!** # Why Your DNS Shows a Different Country Source: https://docs.brightdata.com/proxy-networks/dns-location-mismatch Why DNS leak tools show a different country than your Bright Data proxy IP, how 2-stage DNS resolution works and how to verify your actual exit geolocation. If you are using Bright Data proxies and testing your setup with third-party tools, you may notice that the DNS resolver location shown by those tools appears different from your proxy IP's country. This is expected behavior in most cases. This article explains why it happens and what you can do about it. ## How DNS resolution works in Bright Data's proxy network All requests made through Bright Data start by connecting to a Super Proxy (`brd.superproxy.io`). Two separate DNS resolutions happen at different stages of the request: ### Stage 1: Entry gate DNS check When your request first arrives at the Super Proxy entry gate, a preliminary DNS resolution is performed. This check is done solely to verify that the target domain exists and is a valid destination. It is performed at the Super Proxy level, not at the exit node (your actual proxy IP). ### Stage 2: Exit node DNS resolution Once the domain is confirmed as valid, the actual request is forwarded to the exit node: the proxy IP in your target country. A second, independent DNS resolution is performed at the exit node for the real request. This is the DNS resolution that matters for your actual traffic. The preliminary DNS check at the entry gate does not affect how your actual request is routed. Your real traffic exits from your assigned proxy IP. ## Why DNS leak test websites show a different DNS location Some tools (such as whoer.net, browserleaks.com/ip, or whoerip.com) use JavaScript-based tests or DNS queries that interact with the entry gate DNS check rather than the actual exit node DNS. As a result: * The DNS resolver shown by these tools may reflect a Bright Data Super Proxy location rather than your assigned proxy IP's country. * This is not a reflection of where your actual browsing traffic exits. * Your real requests exit from your assigned proxy IP. This behavior is specific to how those tools probe for DNS information. It does not indicate a misconfiguration of your zone or your proxy credentials. ## Which IP checker should you use? Use Bright Data's official endpoint to validate your proxy's geolocation: ```http theme={null} https://geo.brdtest.com/welcome.txt ``` This endpoint accurately reflects the exit node IP for Datacenter and ISP networks, and its true geolocation for all proxy networks, as recorded in Bright Data's network. Use the following `curl` command, adjusting the `product` parameter for your proxy type: ```sh theme={null} curl -i --proxy brd.superproxy.io:33335 \ --proxy-user brd-customer--zone-: \ "https://geo.brdtest.com/welcome.txt?product=isp&method=native" ``` The response will show your actual assigned ISP/Datacenter IP and its correct location details, and the full location details without the explicit IP address for the Residential and Mobile networks. Many third-party geolocation tools use outdated records or unreliable testing methods. Their results are not an accurate reflection of your proxy's actual geolocation. Bright Data actively monitors and maintains correct records in all major geolocation databases. ## Will this affect your real target websites? For your actual target domains, DNS is properly resolved at the exit node, and your traffic exits from your assigned proxy IP in the correct country. You can verify this by running the `curl` command above with your proxy credentials. ## Why are requests failing with a `target_40001` error? If your host is valid but cannot be resolved and you receive a `target_40001` error (host could not be resolved), the domain may only be resolvable from specific geographic locations. In this case, contact Bright Data support to request that your host be added to the DNS whitelist, so it can skip the Super Proxy entry gate DNS check. See [Error Catalog: target\_40001](/proxy-networks/errorCatalog#target-40001) for the full error description. ## Recommendations for best DNS behavior If your use case requires precise DNS matching between your proxy IP location and the DNS resolver shown by third-party tools, apply the following steps. ### Use the remote DNS resolution flag Append `-dns-remote` to your proxy username to instruct the proxy to perform DNS resolution at the exit node: ```sh theme={null} curl "https://example.com" \ --proxy brd.superproxy.io:33335 \ --proxy-user brd-customer--zone--dns-remote: ``` The `-dns-remote` flag does not resolve cases where the entry gate DNS check returns a `dns_resolve_skip` result for specific domains. In those cases, the flag has no effect on what third-party tools report. ### Ensure your client sends hostnames, not IP addresses Bright Data's proxy network requires requests to use domain names, not pre-resolved IP addresses. If your browser, anti-detect browser (such as Multilogin), or application resolves DNS locally before sending the request, DNS mismatch behavior is more likely. Configure your application to: * Send the hostname or domain to the proxy, not a pre-resolved IP * Use remote DNS resolution when that option is available in your application ### Request domain whitelisting for location-sensitive hosts For domains that can only be resolved from specific geographic locations and as a result return a `target_40001` error from the Super Proxy DNS check, contact Bright Data support to whitelist the specific host. This allows it to skip the Super Proxy DNS check. ## Where to learn more * [Error Catalog](/proxy-networks/errorCatalog) - Full list of Bright Data proxy error codes and resolutions * [Website Blocking](/proxy-networks/website-blocking) - Best practices for overcoming website blocking * [Residential Network Access Policy](/proxy-networks/residential/network-access) - KYC and access requirements for the Residential network # Proxy errors troubleshooting Source: https://docs.brightdata.com/proxy-networks/errorCatalog Explore the catalog of Bright Data HTTP errors (4xx and 5xx codes), including error codes, descriptions and actions to resolve common proxy issues. This article provides information on how to identify proxy errors from other errors, how to analyze errors, troubleshoot and resolve issues with Bright Data proxy services. ## How can I get indication on Bright Data proxy services health status? Bright Data publishes its products and services status in this page: [https://brightdata.com/network-status](https://brightdata.com/network-status) . In this page you can see if there are current issues or incidents in the products you use or our global availability. You can also register for email alerts which are sent upon changes in our availability of reporting on wide incidents. ## What to do if I see that there is current incident in the proxy network I am using? First, you need to check if your operations are impacted. Two main indications are degredation in response time (slowness) or increased error rates. If one of those occur, reduce your processing rate and follow the next steps to identify the issue. ## How can I tell if the error I got is originates from a Bright Data proxy? While using our proxies, you may encounter errors that do not originate from Bright Data. To identify the source of the error, check if the response headers include BrightData error fields listed below, we cover most errors by proxy layer in those codes. If you are still not able to get to your target website, or receive a response `HTTP` status `200` without the data you are expecting, you were probably blocked. In this article: [Overcoming website blocking](https://docs.brightdata.com/proxy-networks/website-blocking) we provide some best practices. ## How to resolve "Proxy Error" when testing Bright Data proxies thru another software? Many software tools and utilities use Bright Data proxies, and have a function to "Test proxy" in them. When you hit "Test proxy" and get a generic "Proxy Error" message in that software, it can originate from various reasons. ### Common issues and resolutions * Targeting a search engine like [google.com](http://google.com) or [bing.com](http://bing.com): Bright Data lmits search engine access via its proxy networks. To resolve go to your software settings and change the test website to be: [https://geo.brdtest.com/welcome.txt](https://geo.brdtest.com/welcome.txt) * Using Bright Data residential network without installing a certificate: Bright Data does not allow using its Residential netowork without passing a KYC verification or installing a certificate. Read on different access modes [Residential Network Access Policy. ](https://docs.brightdata.com/proxy-networks/residential/network-access) # Bright Data Proxy Errors Troubleshooting ## Bright Data's proxy error format and standard now supports RFC9209 Starting October 2025, Bright Data supports two sets of headers to relay proxy error in response payload: 1. Propietary `x-brd-*` fields: `x-brd-err-code` and `x-brd-err-msg` 2. Standard RFC9209`Proxy-Status` response header supporting RFC9209 standard proxy error format. The `Proxy-Status` header standard field will eventually replace the `x-brd-*` fields, during 2026. ## What is RFC9209? RFC9209 is the standard on how to relay proxy errors in response headers over proxy. Bright Data is adopting this standard and applied it to all its error catalog. This will allow customers' code as well as 3rd party tools using proxy as infrastructure to refer to error from proxy interaction and resolve issues faster. You can read more about it here: [The Proxy-Status HTTP Response Header](https://www.rfc-editor.org/rfc/rfc9209.html) ## How to implelement RFC9209? ### Example Proxy-Status HTTP header ```text theme={null} Proxy-Status: brd.brighdata.io; received-status=400; error=destination_ip_unroutable; details="client-10060: Requested IP ##.##.##.## is not allocated to this zone. Select an IP that is allocated to this zone or skip the -ip parameter in proxy username." ``` ### Implementation Instructions 1. Parse the response header: Ensure that your systems are configured to interpret the Proxy-Status header in HTTP responses. 2. Extract relevant fields: * `received-status`: Provides the HTTP status code received. * `error`: Describes the general error encountered. * `details`: Contains specific error codes and further information from our error catalog. * The first field in the details will be bright data error code (like: client\_10060) followed by ':' (colon) delimiter.  * You can browse directly to the error document using this prefix, and replacing the '\_' (underscore) with '-' (dash) in the error code: `https://docs.brightdata.com/proxy-networks/errorCatalog#[Bright data error code]`. Example for client\_10060: [https://docs.brightdata.com/proxy-networks/errorCatalog#client-10060](https://docs.brightdata.com/proxy-networks/errorCatalog#client-10060) 3. Adapt your error handling processes according to these structured codes to improve debugging and ensure a seamless proxy operation. ## Bright Data HTTP proxy header fields The following fields are returned upon and `HTTP` or `HTTPS` requests: | Field | Description | Examples | REST API Field Name | | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ | | `HTTP Error` | The protocol error numbers | `404` or `502` | `status_code` | | `x-brd-err-code` | Bright data module and error code number | `client_10001` | `error_code` | | `x-brd-error` | Bright data main error message | Authentication failed | `error` | | `x-brd-err-msg` | Bright data elaborated message and actions | Authentication failed. Please check your credentials or review your [account status and billing settings](https://brightdata.com/cp/settings/billing). | `error_message` | | `Proxy-Status` | RFC9209 compliant response header. It will include Bright Data proxy server, the HTTP status and details string which has a reference to Bright Data's error code. | `Proxy-Status: brd.superproxy.io; received-status=407; error="http_request_denied"; details="client_10000: Invalid authentication: check credentials and retry. Bright Data credentials include your account ID, zone name and password"` | Not supported | The headers are relayed as part of Bright Data proxy service and customers are not billed for their bandwidth overhead. ### Deprecating x-luminati-\* headers Starting 1-May-2026 Bright Data proxy response will not include any x-luminati-\* headers. #### HTTP Code 200 headers deprecating | Header | Current header | Description | | :-------------------- | :--------------- | ------------------------------------------------------- | | `x-luminati-ip` | `x-brd-ip` | IP address of the proxy peer used to relay your request | | `x-luminati-timeline` | `x-brd-timeline` | Internal request processing timeline for debugging | #### HTTP Error Code headers deprecating | **Header** | **Current header** | **Description** | | :----------------- | :----------------- | :---------------------- | | `X-Luminati-Error` | `x-brd-error` | Short error description | ### Getting HTTP header fields #### Testing from command line To view and test your settings, or restoring an issue, you can run a `curl` command from your shell prompt and add the option flag `-v` or `i`. These flags will run curl in verbose mode and print out the header fields, including the custom error code and message. ```sh theme={null} curl -v [rest of curl command options] ``` To see a more compact view with the header fields response only use the `-i` option for curl: ```sh theme={null} curl -i [rest of curl command options] ``` Alternatively, you can use the `nc` command to get the fields printed to screen: ```sh theme={null} echo "[tcp nc inputs]" | nc -C -v brd.superproxy.io 33335 ``` `nc` inputs may include "empty" lines, those are essential for correct testing using `nc` command #### `curl` Command snippet `curl` command snippet, with all required zone parameters is available in the **Overview** tab in Bright Data control panel for the zone you are working on. #### Accessing via programming language Bright Data HTTP header fields can be accessed thru your programming language, as any other HTTP header field. #### Accessing via Bright Data's Proxy REST API Bright data offers a REST API to access its proxy networks as well as the Unlocker API and our SERP for targeting search engines. The error field names are slightly different , yet the content is identical. Example response: ```JSON theme={null} "status_code": 407, "status_message": "Proxy Authentication Required", "error": "Proxy Authentication Required", "error_message": "No proxy credentials provided. Please add credentials and try again.", "error_code": "client_10010" ``` ## Error Catalog ### HTTP Error 400 When Using the Data center/ISP or gIPs products with the `-ip-x.x.x.x` targeting flag, the error code `400` can appear in case the IPs under your zone has been refreshed, removed, or simply changed due to system updates This error typically arises after your BrightData account has been recently suspended. An automatic suspension occurs if your account balance becomes negative. If the suspension extends beyond 24 hours, the static allocated IPs will be released from your account. Upon reactivation, the reallocated IPs may differ from the original ones, thus if the previously allocated IPs are still being targeted - this error is thrown. Whenever this error appears, you should go to your Bright Data Zones page, and view the updated list of IPs relevant to this zone. #### `client_10060` | `x-brd-error` | `x-brd-err-msg` | RFC9209 Error Code | | :--------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | | `ip_requested_not_allocated_by_customer` | Requested IP `##.##.##.##` is not allocated to this zone. Select an IP that is allocated to this zone or skip the `-ip` parameter in proxy username. | `destination_ip_unroutable` | #### `client_10061` | `x-brd-error` | `x-brd-err-msg` | RFC9209 Error Code | | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------- | | Peer not found | No proxy found in selected default countries: `%Countries_list%`. Please revise your default country selection or use `-country` flag to another country and override default settings. [Read more](https://docs.brightdata.com/api-reference/proxy/geolocation-targeting) | , | #### `client_10062` | `x-brd-error` | `x-brd-err-msg` | RFC9209 Error Code | | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------- | | Peer not found | Your \`\[proxy type] \[DC \| ISP]\` zone does not have IPs in selected countries. Either IPs location has changed, or zone is not configured with proxies in selected countries. Check zone configuration and try again with the relevant country code. [Read more](https://docs.brightdata.com/api-reference/proxy/geolocation-targeting) | , | #### `client_10063` | `x-brd-error` | `x-brd-err-msg` | RFC9209 Error Code | | :------------ | :-------------------------------------------------------------------------------------------------------------------------- | :----------------- | | Bad IP format | The IP address provided is either empty or does not comply with IPv6/IPv4 protocol. Please check your inputs and try again. | , | *** ### HTTP Error 401 These are the `x-brd-err-code` values for HTTP error 401: #### `client_10050` | `x-brd-error` | `x-brd-err-msg` | | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Auth failed: IP denylisted `[IP]` | Auth Failed IP denylisted: `[IP]`. [Check FAQ: how to denylist/allowlist IPs and domains?](https://docs.brightdata.com/proxy-networks/faqs#how-to-allowlist-denylist-ips-and-domains) to resolve. | *** ### HTTP Error 402 These are the `x-brd-err-code` values for HTTP error 402: #### `policy_20130` | `x-brd-error` | `x-brd-err-msg` | | :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Residential Failed `bad_endpoint` | Residential Failed (`bad_endpoint`), Requested site is not available for immediate residential (no KYC) access mode because `%HTTP_METHOD%` requests are not allowed. To get full residential access for targeting this site, fill in the KYC form: [https://brightdata.com/cp/kyc](https://brightdata.com/cp/kyc) | #### `policy_20140` | `x-brd-error` | `x-brd-err-msg` | | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Residential Failed `bad_endpoint` | Requested site is not available in Immediate Access mode for Bright Data residential network due to violation of target's `robots.txt`. To gain full access follow the instructions in: [https://docs.brightdata.com/proxy-networks/residential/network-access](https://docs.brightdata.com/proxy-networks/residential/network-access) | *** ### HTTP Error 403 HTTP 403 response code means you are forbidden from accessing a **valid** URL. The server processed the request, but it can't fulfill the request either due to the way the request was sent by the client or due to Bright Data policy, blocking target access. These are the `x-brd-err-code` values for HTTP error 403: #### `client_10070` | `x-brd-error` | `x-brd-err-msg` | | :------------ | :------------------------------------------------------------------------------------- | | No Protocol | Protocol was missing from original request. Please add either HTTP or HTTPS and retry. | #### `client_10080` | `x-brd-error` | `x-brd-err-msg` | | :------------------ | :---------------------------------------------------------------------------------------------------------- | | No Destination Host | No destination host. Destination host is missing or incorrect. Check your request parameters and try again. | #### `client_10090` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | You are trying to use Browser API zone as regular proxy | You are trying to use Browser API zone as regular proxy. A browser should be used to access this zone. See [Browser API](https://docs.brightdata.com/scraping-automation/scraping-browser/introduction) for information on how to access your Browser API zone. | #### `client_10130` | `x-brd-error` | `x-brd-err-msg` | | :---------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- | | Forbidden: this super proxy is allowed only for China domains via China peers | Forbidden: this super proxy is allowed to be used only for China domains via China peers. Otherwise use `brd.superproxy.io`. | #### `client_10250` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Forbidden: You tried to target `%HOST%` but got blocked | Forbidden: You tried to target `%HOST%` but got blocked since this host is not an allowed target in your zone's allowlist security setting. Please add this host to your allowlist or delete all content from the allowlist to allow all targets. | #### `client_10260` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: You tried to target `%HOST%` but got blocked | Forbidden: You tried to target `%HOST%` but got blocked since this host is an explicitly blocked target in your zone's denylist security setting. Please remove this host from your denylist or delete all content from the denylist to allow all targets. | #### `policy_20010` | `x-brd-error` | `x-brd-err-msg` | | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Bad protocol | The protocol you are using to access our proxy is not supported. Bright Data supports HTTP, HTTPS & SOCKS5 upon special approval. Please fix your protocol and try again. | #### `policy_20020` | `x-brd-error` | `x-brd-err-msg` | | :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Bad port | Bad port used. See supported ports: [https://docs.brightdata.com/proxy-networks/faqs#how-to-see-supported-ports-and-protocols](https://docs.brightdata.com/proxy-networks/faqs#how-to-see-supported-ports-and-protocols) | #### `policy_20021` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: Target is blocked by Bright Data for superproxy requests | Request was rerouted through a superproxy due to compliance policy, but was then blocked because the destination port is forbidden for requests from the superproxy. | #### `policy_20030` | `x-brd-error` | `x-brd-err-msg` | | :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: target blocked | Forbidden: You tried to target `www.somehost.com` but got blocked. It can be related to your denylist or allowlist settings or the target site is not allowed by Bright Data policy. [Read more](https://docs.brightdata.com/proxy-networks/faqs#what-is-error-code-403) | #### `policy_20031` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: Target `%HOST%` is blocked | Forbidden: target `%HOST%` is blocked by Bright Data. Target host provides web service or information of Bright Data and our proxies cannot be used to target it. For further assistance please contact [support@brightdata.com](mailto:support@brightdata.com) | #### `policy_20032` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: Target `%HOST%` is blocked | Forbidden: target `%HOST%` is blocked by Bright Data. Target host provides web service or information of Bright Data and our proxies cannot be used to target it. For further assistance please contact [support@brightdata.com](mailto:support@brightdata.com) | #### `policy_20040` | `x-brd-error` | `x-brd-err-msg` | | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden host | Destination host is blocked either by Bright Data in accordance with our compliance policy or by your account rules' configuration. Please check if this domain is allowed for targeting by this zone in zone settings: [https://brightdata.com/cp/zones/](https://brightdata.com/cp/zones/) | #### `policy_20050` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Forbidden: target site requires special permission. Contact Bright Data for assistance | Forbidden: target site requires special permission. You are trying to access a target site which is not permitted by our compliance policy. You may need to undergo a KYC process: [https://brightdata.com/cp/kyc](https://brightdata.com/cp/kyc). If you have already completed KYC approval, please contact your account manager for further details. | #### `policy_20051` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: target site requires special permission. Contact Bright Data for assistance | Forbidden: target site is a government site and requires special permissions to access. You may need to undergo a KYC process: [https://brightdata.com/cp/kyc](https://brightdata.com/cp/kyc). If you have already completed KYC approval, please contact your account manager for further details. | #### `policy_20052` | `x-brd-error` | `x-brd-err-msg` | | :--------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: target site not accessible via selected network. Contact Bright Data for assistance | Forbidden: Access to this site is restricted on the selected network type due to compliance policies. Please try switching to a different network type. To gain access on the same network you may need to undergo a KYC process: [https://brightdata.com/cp/kyc](https://brightdata.com/cp/kyc). If you have already completed the KYC approval, please contact your account manager for further details. | #### `policy_20080` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: request needs to be made using residential network | Forbidden: You are accessing a domain which is not permitted to access by Bright Data Datacenter or ISP networks. Please retry your request using a Residential network zone. | #### `policy_20090` | `x-brd-error` | `x-brd-err-msg` | | :---------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Forbidden: requests to this domain are blocked using the proxy networks | Forbidden: requests to this domain are blocked using the Datacenter, ISP and Residential proxy networks. Please get access via an Unlocker API zone or IDE tools, or contact your account manager for further assistance. | #### `policy_20091` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: Target `$host` is blocked by Bright Data on IPv6 protocol | Forbidden: Target `$host` is blocked by Bright Data on IPv6 protocol. Please try IPv4 proxies or our Unlocker API to access this target. | #### `policy_20110` | `x-brd-error` | `x-brd-err-msg` | | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden SERP domain | Destination host is blocked either by Bright Data in accordance with our compliance policy or by your account rules' configuration. Please check if this domain is allowed for targeting by this zone in zone settings: [https://brightdata.com/cp/zones/](https://brightdata.com/cp/zones/) | #### `policy_20230` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------- | :---------------------------------------------------------------------------------------- | | Country `%COUNTRY%` is not permitted for targeting | Country `%COUNTRY%` is not permitted for targeting, please modify to a different country. | #### `policy_20240` | `x-brd-error` | `x-brd-err-msg` | | :-------------------------------- | :----------------------------------------------------------------------------------------------- | | Proxy port `%PORT%` is restricted | Proxy port `%PORT%` is restricted. Contact [Bright Data support](mailto:support@brightdata.com). | #### `policy_20250` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: You tried to target `%HOST%` but got blocked | Forbidden: You tried to target `%HOST%` but got blocked by Bright Data policy settings. Either this website is forbidden by Bright Data policy or your account doesn't have the right permission to access it. | #### `policy_20251` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: You tried to target `%HOST%` but got blocked | Forbidden: You tried to target `%HOST%` but got blocked by Bright Data policy settings. Either this website is forbidden by Bright Data policy or your account doesn't have the right permission to access it. | #### `policy_20260` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: You tried to target `%HOST%` but got blocked | Forbidden: You tried to target `%HOST%` but got blocked by Bright Data policy settings. Either this website is forbidden by Bright Data policy or your account doesn't have the right permission to access it. | #### `policy_20261` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Forbidden: You tried to target `%HOST%` but got blocked | Forbidden: You tried to target `%HOST%` but got blocked by Bright Data policy settings. Either this website is forbidden by Bright Data policy or your account doesn't have the right permission to access it. | #### `policy_20000` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Access denied: `` is classified as `` and blocked by Bright Data | Access denied: `%URL%` is classified as `%CATEGORY%` and blocked by Bright Data as it might breach Bright Data usage policy. [Read more](https://docs.brightdata.com/proxy-networks/residential/network-access#residential-proxy-network-policy) | *** ### HTTP Error 407 If you get HTTP error 407, this implies there is an error in authentication. This can be due to incorrect credentials or due to your account being suspended. #### `client_10000` | `x-brd-error` | `x-brd-err-msg` | | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------- | | Authentication failed | Invalid authentication: check credentials and retry. Bright Data credentials include your account ID, zone name and password. | #### `client_10001` | `x-brd-error` | `x-brd-err-msg` | | :------------ | :--------------------------------------------------- | | Invalid Auth | Invalid authentication: check credentials and retry. | #### `client_10002` | `x-brd-error` | `x-brd-err-msg` | | :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Auth failed: Zone not found | Authentication failed: zone not found. Zone name used is either misspelled, or zone is disabled or deleted. Check your inputs, and validate zone is "Active" in Bright Data control panel, or use our API to get current zone status: [Get Active Zones](https://docs.brightdata.com/api-reference/account-management-api/Get_active_Zones) | #### `client_10010` | `x-brd-error` | `x-brd-err-msg` | | :---------------------------- | :------------------------------------------------------------------- | | Proxy Authentication Required | No proxy credentials provided. Please add credentials and try again. | #### `client_10020` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------- | | Account is suspended. [Login](https://brightdata.com/cp/setting/billing) to activate your account | Account is suspended. [Login](https://brightdata.com/cp/setting/billing) to activate your account. | #### `client_10030` | `x-brd-error` | `x-brd-err-msg` | | :-------------------- | :--------------------------------------------------------------------------------------------------- | | Authentication failed | You are not allowed to access our API via this IP. Please verify your settings or allowlist this IP. | #### `client_10040` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------- | | KYC Required. Please visit [http://brightdata.com/cp/kyc](http://brightdata.com/cp/kyc) and ensure you are verified | KYC Required. Please visit [http://brightdata.com/cp/kyc](http://brightdata.com/cp/kyc) and ensure you are verified. | #### `policy_20120` | `x-brd-error` | `x-brd-err-msg` | | :----------------------------------------------------------------------- | :---------------------------------------------------------------------------------- | | IP parameter `` is incorrect, use correct format in the IP parameter | IP parameter `` is incorrect, use `x-brd-ip` header format in the IP parameter. | *** ### HTTP Error 408 If you get HTTP error 408, this implies there is a timeout error in reaching your destination website. This can be due to incorrect target website, networking lags or blocks. #### `peer_30040` | `x-brd-error` | `x-brd-err-msg` | | :---------------------- | :---------------------------------------------- | | Peer connection timeout | Peer did not connect to desitnation due timeout | *** ### HTTP Error 429 These are the `x-brd-err-code` values for HTTP error 429: #### `client_10110` | `x-brd-error` | `x-brd-err-msg` | | :--------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Account exceeded the allowed rate limits | Your account exceeded the allowed rate limits. Reduce requests rate and try again or complete the [verification process](https://brightdata.com/cp/account_verification) to relieve rate limits. You will not be charged for this request. | #### `policy_20220` | `x-brd-error` | `x-brd-err-msg` | | :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Requests rate to `%URL%` is too high | Rate limit for domain `%DOMAIN%` has been reached. Bright Data's health monitor is throttling down these requests to prevent overloading of the target website. Reduce requests rate and try again or contact [brightdata.com](http://brightdata.com/) for support. | #### `policy_20221` | `x-brd-error` | `x-brd-err-msg` | | :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Requests rate to `%URL%` is too high | Rate limit for domain `%DOMAIN%` has been reached. Bright Data's health monitor is throttling down these requests to prevent overloading of the target website. Reduce requests rate and try again or contact [brightdata.com](http://brightdata.com/) for support. | #### `policy_20222` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Requests rate per IP is too high | Rate limit per IP `%IP%` on zone `%ZONE%` has been reached. Requests are throttled down to avoid overload. Either increase the number of IPs or reduce rate, and review your rotation logic or your response size to assure even distribution of requests and bandwidth across IPs of this zone. | *** ### HTTP Error 499 These are the `x-brd-err-code` values for HTTP error 499: #### `client_10140` | `x-brd-error` | `x-brd-err-msg` | | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Client disconnect | The client closed the connection to the proxy before the response was fully returned. This is usually caused by client-side timeouts, cancelled requests, or local network interruptions. Review your client timeout configuration and ensure the client waits long enough for the proxy response. | *** ### HTTP Error 502 These are the `x-brd-err-code` values for HTTP error 502: #### `client_10120` | `x-brd-error` | `x-brd-err-msg` | | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Block direct route | Request reroute blocked. You chose the option not to reroute requests through our superproxy on failure, so the reroute was blocked. To see more about this setting see: [Request Error Handling](https://docs.brightdata.com/api-reference/proxy/request_error_handling) | #### `client_10100` | `x-brd-error` | `x-brd-err-msg` | | :--------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- | | Zone has reached usage limit | Zone has reached usage limit. Go to [https://brightdata.com/cp/zones](https://brightdata.com/cp/zones) to remove/modify the limitation. | #### `peer_30030` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Proxy Error: We do not have proxies in the city you requested | Proxy Error: We do not have proxies in the city you requested. Please check the spelling or try again later. Check [Target a specific city](https://docs.brightdata.com/proxy-networks/faqs#how-to-target-a-specific-city) for proper use of city targeting. | #### `policy_20070` | `x-brd-error` | `x-brd-err-msg` | | :----------------------------------- | :---------------------------------------------------------------------------------------------- | | Host is blocked in requested country | Host you are trying to access is blocked in requested country. Please change country and retry. | #### `target_40001` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Could not resolve host `%HOST%` | Could not resolve host `%HOST%`. Check host name is correctly spelled and retry. If host is properly spelled or can only be resolved from a specific region, contact Bright Data support for DNS support. | #### `target_40011` | `x-brd-error` | `x-brd-err-msg` | | :----------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | No IPv6 address (AAAA record) found for `%HOST%` | Attempting to resolve `%HOST%` to IPv6 failed. This is probably because the host you are targeting does not publish an IPv6 IP address. Retry the request on an IPv4 proxy. | #### `target_40020` | `x-brd-error` | `x-brd-err-msg` | | :------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Destination host connect timeout | Connection to `host:port` timed out, the target server did not respond, which may indicate it is down, overloaded, or blocking connections; please verify the URL and port and try again. | *** # Proxy products FAQ Source: https://docs.brightdata.com/proxy-networks/faqs FAQs on integrating, configuring and using Bright Data's proxy products (195 countries), including IP types, geotargeting and error codes across the platform. In bright data, a "zone" represents a specific product and its configuration settings. You can think of it as an instance in the context of cloud computing. For example, you can have a zone for Datacenter proxy in Germany and you can have a separate zone for Datacenter proxies in France. Every zone has a name and one or more password, allowing you to interact with it. The zone name itself cannot be changed once it's configured, so you may want to use an easy to remember name that represents what you're trying to achieve. Keep in mind, that you can add a description to the zone, and you can change that description anytime. You can find it under the zone name at the top of the page. The zone name is used to create your proxy username, which you can then [customise if you want in order to control your proxies](https://docs.brightdata.com/proxy-networks/config-options). Here is a sample proxy username for proxies in the USA - as you can see it includes the zone name inside it: `brd-customer--zone--country-us` As mentioned, you cannot change the name of the zone after you have saved it - if you want to change the name, simply create a new with a new name. Bright data can be easily integrated into many third-party tools. In general, simply configure an HTTP/HTTPS proxy using the credentials for your Bright Data product. If you are using residential proxies, Unlocker API or SERP API don't forget to [use the SSL certificate](https://docs.brightdata.com/general/account/ssl-certificate) to ensure and to end encrypted connections. For accounts in ["Immediate Access"](https://docs.brightdata.com/proxy-networks/residential/network-access) mode integration with some third party tools may not be possible due to them not supporting the SSL Certificate. We have prepared detailed guides for the most commonly used tools. You can find links to the guides in the list below: * [BrowserScan](https://docs.brightdata.com/integrations/browserscan) * [XLogin](https://docs.brightdata.com/integrations/xlogin) * [GeeLark](https://docs.brightdata.com/integrations/geelark) * [Puppeteer](https://docs.brightdata.com/integrations/puppeteer) * [Playwright](https://docs.brightdata.com/integrations/playwright) * [Selenium](https://docs.brightdata.com/integrations/selenium) * [AdsPower](https://docs.brightdata.com/integrations/adspower) * [Dolphin Anty](https://docs.brightdata.com/integrations/dolphin-anty) * [Incogniton](https://docs.brightdata.com/integrations/incogniton) * [Marketerbrowser](https://docs.brightdata.com/integrations/marketerbrowser) * [SMLOGIN](https://docs.brightdata.com/integrations/smlogin) * [Hidemyacc](https://docs.brightdata.com/integrations/hidemyacc) * [OpenBullet](https://docs.brightdata.com/integrations/openbullet) * [Switchyomega](https://docs.brightdata.com/integrations/switchyomega) * [PhantomBuster](https://docs.brightdata.com/integrations/phantombuster) * [BitBrowser](https://docs.brightdata.com/integrations/bitbrowser) * [Maskfog](https://docs.brightdata.com/integrations/maskfog) * [Ghost Browser](https://docs.brightdata.com/integrations/ghost-browser) * [Postman](https://docs.brightdata.com/integrations/postman) * [NGINX](https://docs.brightdata.com/integrations/nginx) * [StablerSOLO](https://docs.brightdata.com/integrations/stablersolo) * [VMLogin](https://docs.brightdata.com/integrations/vmlogin) * [GoLogin](https://docs.brightdata.com/integrations/gologin) * [Windows](https://docs.brightdata.com/integrations/windows) * [Scrapy](https://docs.brightdata.com/integrations/scrapy) * [AEZAKMI](https://docs.brightdata.com/integrations/aezakmi) * [Beautifulsoup](https://docs.brightdata.com/integrations/beautifulsoup) * [WebHarvy](https://docs.brightdata.com/integrations/webharvy) * [Ubuntu](https://docs.brightdata.com/integrations/ubuntu) * [Lalicat](https://docs.brightdata.com/integrations/lalicat) * [Multilogin](https://docs.brightdata.com/integrations/multilogin) * [Undetectable](https://docs.brightdata.com/integrations/undetectable) * [Apify](https://docs.brightdata.com/integrations/apify) * [iPhone](https://docs.brightdata.com/integrations/ios) * [MuLogin](https://docs.brightdata.com/integrations/mulogin) * [Changedetection](https://docs.brightdata.com/integrations/changedetection) * [Morelogin](https://docs.brightdata.com/integrations/morelogin) * [Proxifier](https://docs.brightdata.com/integrations/proxifier) * [Texau](https://docs.brightdata.com/integrations/texau) * [Android](https://docs.brightdata.com/integrations/android) * [Kameleo](https://docs.brightdata.com/integrations/kameleo) * [Screaming Frog](https://docs.brightdata.com/integrations/screaming-frog) * [Foxy](https://docs.brightdata.com/integrations/foxyproxy) * [SessionBox](https://docs.brightdata.com/integrations/sessionbox) * [Insomniac](https://docs.brightdata.com/integrations/insomniac) * [Helium Scraper](https://docs.brightdata.com/integrations/helium-scraper) * [SaleFreaks](https://docs.brightdata.com/integrations/salefreaks) * [Postern](https://docs.brightdata.com/integrations/postern) * [Antik](https://docs.brightdata.com/integrations/antik) * [Easync](https://docs.brightdata.com/integrations/easync) * [ParseHub](https://docs.brightdata.com/integrations/parsehub) * [Sphere Browser](https://docs.brightdata.com/integrations/sphere-browser) * [Octoparse](https://docs.brightdata.com/integrations/octoparse) * [ixBrowser](https://docs.brightdata.com/integrations/ixbrowser) * [Shadowrocket](https://docs.brightdata.com/integrations/shadowrocket) * [Firefox](https://docs.brightdata.com/integrations/firefox) * [Chrome](https://docs.brightdata.com/integrations/chrome) * [MacOS](https://docs.brightdata.com/integrations/macos) * [ClonBrowser](https://docs.brightdata.com/integrations/clonbrowser) * [Octo Browser](https://docs.brightdata.com/integrations/octobrowser) * [Genlogin](https://docs.brightdata.com/integrations/genlogin) * [Web Scraper](https://docs.brightdata.com/integrations/webscraper) If the integration you're using does not appear on the list and you would like to get a guide for it, contact us! There are two types of IPs that we offer within our Residential and Mobile Proxy: IPs that are shared across **multiple** users. Connect to our entire network of [400M+ monthly residential IPs](https://brightdata.com/proxy-types/residential-proxies). Rotate between countries, cities, and ASNs using the Proxy Manager, Extension, or raw API commands. Cost is calculated per GB consumed, according to your [monthly plan](/general/account/billing-and-pricing/billing). ## Geolocation targeting The IP allocated to your zone will be from the selected country, city, ASN, or zip code. Select the needed parameter from the drop-down menu. geolocation-targeting-dropdown.png ## Sending a request with Geolocation: * With a 'Shared' IP, you'll be able to control your geolocation targeting when you send a request. * To target a specific country, add the `-country` flag to your request, For example, if you'd like to send your request from the United States ('us'), your request using a shared IP will look like ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-us: ``` IPs that are set aside **for your use only.** Since Bright Data's residential network is an opt-in, residential network made up of millions of devices around the world, Bright Data developed the group IPs (gIPs) method to further enhance your dedicated IP capability. ## Dedicated IP groups (gIPs) gIP contains between 6-90 IPs at any given moment while sharing the same attributes, targeting the selected dedicated domains within the zone "Configuration" section. dedicated-ip-groups.png ## Geolocation targeting The IP allocated to your zone will be from the selected country add-country.png ## Domains Define the domains you'd like your IPs to be exclusive to. Requests to **any other** domain will be bypassed and sent from our servers . add-domains.png There is **no** option to add "All domains". Requests to domains that are not in the list will be sent from the our servers resulting in a super-proxy bypass and will be either blocked or rerouted through a different proxy. ## Sending a request with Geolocation: When you send your request, it will originate from the country you've selected within your zone configuration. There is \*\*no need to add additional country flags.\*\*For example, if you've configured your 'Geolocation targeting' country to be the United States ('us'), you may send your request with the following default syntax and we will automatically route it through whatever is set in your proxy's configuration: ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` Super-proxies are the gateway servers of Bright Data. Every request sent through Bright Data's proxy platform passes through these servers, which select the best peer based on the request details and balance the load among peers. In some cases, Bright Data may not be able to process your request via a peer, resulting in a super-proxy bypass. This means the request is sent directly from Bright Data's gateway servers instead of a peer. When a super-proxy bypass occurs, the response headers will include an info message explaining why it happened. It is possible to block requests from being sent from the super-proxies when it happens, simply add the `-route_err-block` flag to your proxy username: ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--route_err-block: ``` There are three types of IPs that we offer within our [Datacenter Proxy Network](https://brightdata.com/proxy-types/datacenter-proxies): 1. Shared (Pay per usage): Access a shared pool of \~40,000 rotating proxies 2. Shared unlimited: Access a set of specific proxies, shared with others with unlimited usage. 3. Dedicated unlimited: Access a set of specific proxies, exclusive for you, with unlimited usage There are three types of IPs that we offer within our [ISP Proxy Network](https://brightdata.com/proxy-types/isp-proxies): 1. Shared (pay per usage) 2. Shared unlimited (pay per proxy) 3. Dedicated unlimited (pay per proxy) In all proxy types you can select the location of your proxies by zone configuration or using the -country parameter in your code/proxy user name. ### Shared pay per usage Rotating proxies from a pool of 10,000 proxies (IP addresses). Proxies are shared with others and charged by your usage: amount of GB you pass thru them. ### Shared unlimited Set of proxies, shared with others, paid by proxy. The more you buy, the less you pay per proxy. See our [fair use](https://docs.brightdata.com/general/usage-monitoring/fair_use_allowance) policy for unlimited zones. ### Dedicated unlimited Set of proxies, exclusive to you, paid by proxy. The more you buy, the less you pay per proxy. See our [fair use](https://docs.brightdata.com/general/usage-monitoring/fair_use_allowance) policy for unlimited zones. You can find your IP list in the following pages: 1. Zone overview page: There are 'Download' and 'View' buttons below the code example. 2. Main zone table: There are 'Download' and 'View' icons under the 'Allocated IPs' column. In both cases the buttons will do the same thing: 1. The view button will allow you to view, refresh and remove IPs from the pool. 2. The download button will download a csv file with the full list in `host:port:username:password` format. Our proxy will automatically rotate thru the proxies assigned to this zone, and abide to location you specify. In case you want to have better control on driving a request thru a specific proxy (IP) you can use the `-ip` or `-gip` options. Read more about it here: [Controlling your proxies](https://docs.brightdata.com/proxy-networks/config-options#controlling-your-proxies). For advanced proxy rotation control you will need to install and route your requests using Bright Data [proxy manager](https://docs.brightdata.com/proxy-networks/proxy-manager/introduction). To integrate the proxies into your code, please visit the [API examples page](https://brightdata.com/cp/zones/proxy_examples), which can be accessed via your zone's settings: integrate-new-proxy.gif On this page, you can choose integration examples for most modern coding languages, just choose the integration type, your proxy zone, coding language, etc. and the page will generate a code snippet you can use right away. To test your proxy, use the terminal command that's available in your **Overview** tab for the proxy. Copy and paste it to your terminal. In Windows, click the 'Start' button and enter 'cmd'. In Mac or Linux, run the 'terminal' application. Then, paste the code in the new window. If your proxy is working well, you will see text on the console with details regarding your proxy. If not, you will see an error code. You can always paste the error code in the AI agent integrated into the dashboard to get additional details. Check out a few examples in the [API examples](https://brightdata.com/cp/zones/proxy_examples) page mentioned above (just choose "other software" in the "language" drop-down menu), or check our [Integrations page](https://docs.brightdata.com/integrations), where we have specific guides to integrate our proxies within the most popular tools across the industry today. **Important note**: If you are using Bright Data's Unlocker API, Residential Proxies or the SERP API you probably need to use our SSL certificate to enable end-to-end secure connections. See [instructions here](https://dashboard.mintlify.com/editor#how-to-integrate-a-proxy-into-3rd-party-software). You can control the location of your country easily for every request that you send. You can choose proxies by country, state, city, zip code and ASN. In this answer, we will focus on choosing a specific country. When sending your request, you can make you Proxy appear to be in a in a specific country by adding the `-country` flag, **after** your zone’s name in the request, followed by the 2-letter [ISO code](https://www.nationsonline.org/oneworld/country_code_list.htm) for that country. If you use a third-party tool or application, simply use the username that includes the `country-xx` in the configuration. In other words, in the box where you need to put in the proxy username, enter the full string, including the country parameter, for example: `brd-customer--zone--country-us` - don't forget to use your own credentials that you can find in the "Overview" tab. If you use your own code, see the example below: We added `-country-us` to our request, so we will send a request originating from the United States ("us"). ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-us: ``` If you use a third-party application in conjunction with the proxies, you can enter the username, including the country to software's configuration. Of course, if you send requests to the proxy using code that you wrote, you can easily adjust the username to target specific countries as needed. Remember, you can also choose proxies by country, state, city, zip code and ASN. See [this guide](https://docs.brightdata.com/proxy-networks/config-options) for more info. Some zones will give you access to a big fixed pool of IPs from all around the world. In these zones, you may select default countries to target without specifying the country in the request. After selecting the default countries, the zone will target one of these countries in each request. You can still target other countries by adding the `-country-xx` flag to your request and override the default country selection. Bright data has Datacenter and ISP proxies in most countries around the world, but not all. We are constantly adding data centres in new countries as they become available. If you cannot find the country you are looking for in Datacenter or ISP proxies, we recommend you check out Residential proxies. Since residential proxies are based on real people with real devices, we are able to offer residential proxies in every country in the world! The allocation of a country within the EU is random. Relevant for all proxy networks: Datacenter, ISP, Residential and Mobile, as well as to our Unlocker and SERP APIs You can target the entire European Union region (member countries) in the same manner as "Country" above by adding "eu" after "country" in your request: -country-eu Requests sent using -country-eu, will use IPs from a **single, randomally selected** country of the countries below which are included automatically within "eu": Member countries are: Austria, Belgium, Bulgaria, Croatia, Republic of Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden When Allocating IPs to a Zone, in the country selection section in the configuration UI, you can select the 'All except CN' option, which allows you to allocate IPs from all around the world while excluding IPs from China. Note this option is available only in the following zone types: * Data Center / ISP - Shared - Pay per proxy * Data Center / ISP - Dedicated City targeting for datacenter and ISP proxies has deprecated. City targeting for residential and mobile networks is available. [Read more here >>](/proxy-networks/faqs#where-does-bright-data-have-proxies) Bright Data offers proxies in every country in the world, except in the following countries: * Iran * Iraq * Syria * Lebanon * Palestine * North Korea * Cuba * Sudan * Belarus * Russia If you need proxies from these countries, unfortunately Bright Data will not be able to help you. The event log will show you (at most) the last 200 requests you made with any zone in your account. In your Bright Data control panel's proxies page: [https://brightdata.com/cp/zones](https://brightdata.com/cp/zones) Go to the "Event Log" tab: event-log.png The presented data is: * **Date:** Time and date of the request * **Zone:** What Zone was used for the request * **Source IP:** What IP the request was made from * **URL:** The target site of the request * **Result:** Success or Fail of the request event-log-headers.png Applicable for Datacenter & ISP The **Automatic Failover** was built to prevent any ‘external’ events from affecting the user. The idea is simple and works the same way for both problems described above – if Bright Data detects a problem, like a connectivity issue or an IP where the GEO isn’t exactly what you asked for when buying that IP, we will automatically route your requests through other IPs which are exactly the same as the original IPs. At the same time, we wanted to make sure that customers that must use specific IPs will not be affected – so we made some exceptions: * If a specific IP is targeted in your request we will not assign a fallback IP to it * Automatic Failover will not interrupt a live connection. If the fallback is needed, it will play in once the next connection is established The **Automatic Failover** brings immediate value by providing 100% connectivity and continuous high-performance level, **free of charge and without having to make any changes in your code or how you work.** Automatic Failover feature can be turned on or off, [via API](/api-reference/account-management-api/Switch_100_uptime_ON_OFF_in_a_Static_zone). Navigate to your proxy configuration settings, and under **Advanced settings** enable **‘Automatic failover’** * This can be done by adding the session flag to the proxy username: ```sh theme={null} brd.superproxy.io:33335 br-customer--zone--session-rand39484 ``` Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection. * Session ID can be any random string/counter: requests with the same session string will use the same Proxy Peer (as long as possible); requests with different session strings will be assigned different Proxy Peers. * To force an IP change, just modify the session ID * If an assigned Proxy Peer(exit node IP) becomes unavailable, the Super Proxy will return an error "502 - No peers available" for the first request and then on the second request the super proxy will assign a new peer even if you do not change the session ID. * The Session IP is kept persistent for up to 7 minutes of idle time. After 7 minutes with no requests, the IP is released back to the pool.\ To keep this Session/IP for longer, send a tiny keep-alive request no longer than 7 minutes, to prevent this session from becoming idle for over 7 minute.\ This request may be anything small, such as /favicon.ico, or even a request that returns 404 (as long as the web server does not disconnect the socket due to this request). * If you have multiple Clients and would like to ignore your Clients source IP (which is used together with your session ID to create a session), then you want to use a global session then add `glob_` as a prefix to your session: ```sh theme={null} brd-customer--zone--session-glob_rand39484 ``` Full request example: ```sh theme={null} brd-customer-CXXXXX-zone-ZONE_X-session-glob_rand39484 ``` Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection. You can find your proxy address and port in the "Overview" tab inside the proxies that you configured. To do this, click on my zones, then click the line with the proxy you need. On the overview tab you can also copy your proxy list, download it, refresh your proxies etc. Allowlisting your IP is a good way to keep your account secure, as it prevents others from accessing your proxies even if they have your username and password. When you allowlist an IP, only that IP will be allowed to send requests to your proxies. As soon as a single IP exists in this list - all other IPs will no longer be able to access the zone's proxies and will be blocked. Access from allowlisted IP still requires you to provide your zone's username and password to gain access to the zone's proxies. Allowlisting does not impact access to Bright Data control panel: it only restricts access to the proxies. To add IPs to a zone's denylist/allowlist, there are 2 ways: * Via the control panel: whitelist-blacklist.png Add all the relevant IPs and domains you'll allow access to with your proxy zone. * Go to any of your zone's settings, and click the "Configuration" tab. * Scroll down to the "Security settings" section, as they are both responsible for white/denylisting IPs and domains, respectively: * **Via API endpoints:** * [Add IP to Zone allowlist](/api-reference/account-management-api/allowlist-ip) * [Remove IP from Zone allowlist](/api-reference/account-management-api/remove-ip-from-zone-allowlist) * [Add IP to Zone denylist](/api-reference/account-management-api/denylist-ip) * [Remove IP from Zone denylist](/api-reference/account-management-api/remove-ip-from-zone-denylist) * [Remove domain from Zone allowlist/denylist](/api-reference/account-management-api/remove-domain-from-zone-allowlist-or-denylist) * [Add domain to Zone allowlist/denylist](/api-reference/account-management-api/allowlist-or-denylist-domains) #### Important tips re allowlist: * Example for adding domains: domain-add-example.png * Example for adding IPs: ip-add-example.png * IPs that should be allowlisted are **your** machine's IPs that you'll be sending requests with, **not** the proxy IPs in your zones. * We **strongly recommend** allowlisting your IPs wherever possible, since when the allowlist is empty, you run the risk of getting your non-allowlisted IPs temporarily blocked in the case where our automatic security blocking system detects any irregular activity. See more info within [this video.](https://brightdata.com/static/video/howto/blacklist_system_explanation.mp4?md5=153602994-22bce32a\&hver=2) * There is **no limit** on how many IPs/domains you can add to the allowlist and we also support ranges of IPs. #### HTTP and HTTPS Protocols Protocols `HTTP` & `HTTPS` are supported by default. #### SOCKS5 Protocol Bright data supports `SOCKS5` protocol, with a default port 22228 assigned for SOCKS5 communication. SOCKS5 is supported for all Bright Data's proxy networks: Datacenter, ISP, Residential, and Mobile. See here for [full SOCKS5 configuration instructions](https://docs.brightdata.com/proxy-networks/socks5) #### Target Ports We distinguish between two kinds of ports: Bright Data proxy & scraping services ports and using specific ports when targeting hosts (websites). This FAQ refers to target ports ; by which the proxy peer should communicate with the target website. Ports 80 and 443 are available by default in all zones, for HTTP and HTTPS protocols. In zones of proxies of type Datacenter or ISP, all ports higher than 1024 are supported by default. In zones of proxies of type Residential or Mobile, the following ports wills be available by default: 8080, 8443, 5678, 1962, 2000, 4443, 4433, 4430, 4444 and 1969. Bright Data can support additional ports by request. Every request to support a new port will be followed by a dedicated and additional compliance process with the Bright Data compliance team.\ Examples of ports that require Bright Data compliance review before activation: To make a request to add a port permission to your zone: * Go to your zone's settings (it will open on the "configuration" tab by default, if not, please click it) * Scroll down to "advanced options" and click it * Enable "ports" * Input the port numbers you would like to get approved * Fill out the form and wait for our compliance team to contact you and approve the request add-ports.gif Bright Data allows targeting the following **Operating Systems**: ```sh Windows theme={null} curl --proxy-user brd-customer--zone--os-windows: --proxy brd.superproxy.io:33335 "" ``` ```sh macOS theme={null} curl --proxy-user brd-customer--zone--os-osx: --proxy brd.superproxy.io:33335 "" ``` ```sh Android theme={null} curl --proxy-user brd-customer--zone--os-android: --proxy brd.superproxy.io:33335 "" ``` If you've selected 'Pay per IP' shared, or a dedicated IP type in your zone configuration, you'll be allocated a fixed IP address. From time to time, depending on your use case, you may need to refresh these IP addresses. In order to refresh IPs allocated to your zone, navigate to your selected zone, under **'Allocated IPs'** click on **'Show allocated IPs'**, **check the box** of the IP or gIP you wish to refresh and click **'Refresh'** refresh-ips.gif Refreshing an IP or gIP will result in an extra charge. Alternatively, you can use API to refresh your [dedicated Residential IPs](/api-reference/account-management-api/Refresh_dedicated_residential_IPs) or your [Datacenter/ISP IPs](/api-reference/account-management-api/Refresh_Static_Datacenter_ISP_IPs) When using Bright Data's Residential Proxy network, you may find the need to use a specific IP allocated to your zone. 1. **Send a test request** with a '--verbose' or '-v' option added (this will turn on verbose logging) ```sh theme={null} curl "https://brdtest.com/myip.json" --verbose --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` 1. **Locate** the x-brd-ip response header and copy its value x-brd-ip.png 2. **Add** the -ip- flag to your request, after your zone’s name and use the **hashed IP value** copied in the previous step 3. Send a test request, and **review the response** ```sh theme={null} curl "https://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--ip-: ``` We recommend using [https://brdtest.com/myip.json](https://brdtest.com/myip.json) as the target domain for testing, and to review your IP credentials. This feature can be enabled by adding the ASN parameter to your Zone configuration, under **Geolocation Targeting**. asn-targeting.png Once the configuration is saved, the ASN flag can be added to the Zone's credentials\ and be integrated when using the Residential proxies. For example: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--asn-: "" ``` **Note:** Values for ASN number can be found [here](https://bgp.potaroo.net/cidr/autnums.html). Dedicated Residential IPs can be selected in the form of [gIPs](/proxy-networks/residential/configure-your-proxy#ip-groups-gips). They can be allocated under the zone's configuration page by selecting a "Dedicated" IP type and choosing a number of gips. Also targeting a specific domain is required. number-of-dedicated-gIPs.png Once the configuration is saved, selecting "Show allocated Dedicated residential IPs" will provide\ a list of hash values that represent group IPs. show-allocated-dedicated-ips.png These values can be used to target a specific gip. For example: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--gip-: "" ``` There are two ways to track usage: #### Proxy Dashboard Access the Main Proxy Dashboard [here](https://brightdata.com/cp/zones/dashboard) * Data Usage per Network: Shows total bandwidth and number of requests for each proxy product over the selected timeframe. * Usage Overview: Displays a graph where you can select timeframe, data point (bandwidth, requests, average bandwidth per request), and filter by zone, product, or target domain. You can also compare usage between timeframes using the "Compare to" option. #### Zone Overview Page * In the zone 'Overview' section you can view stats for a specific zone, with options to compare timeframes, choose data points (bandwidth, requests, bandwidth per request), and view additional metrics in a table below the graph. **When outside of China**\ Targeting Chinese Residential IP peers is enough: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-cn: "" ``` * You can choose to use a specific carrier from this list: ```text theme={null} a1, aircel, airtel, att, celcom, chinamobile, claro, comcast, cox, digi, dt, docomo, dtac, etisalat, idea, meo, mtn, mtnza, optus, orange, qwest, reliance_jio, robi, sprint, telefonica, telstra, tmobile, tigo, tim, verizon, vodacomza, vodafone, vivo, zain, vivabo, telenormyanmar, kcelljsc, swisscom, singtel, asiacell, windit, cellc, ooredoo, drei, umobile, cableone, proximus, mobitel, o2, bouygues, free, sfr, digicel ``` * For Example ```sh Deutsche Telekom theme={null} brd-customer--zone--carrier-dt ``` ```sh Sprint theme={null} brd-customer--zone--carrier-sprint ``` Geolocation databases (GeoDB) are used by internet websites to query information about the IP address used by the users. Bright Data monitors and maintains correct records for MaxMind GeoDB. There are many other smaller GeoDBs, most of which are using outdated records or flawed testing methods, and so the information they present is not accurate or is presented to lure their viewers to buy VPN or proxy products from them. In order to see our information about the proxy IP that you are using, please use the following link: [https://geo.brdtest.com/mygeo.json](https://geo.brdtest.com/mygeo.json) #### For single-step scraping: [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) is the ideal product for targeting SERPs as it has a guaranteed success rate (pay only for success) with active unlocking, automatically chooses the best proxies, customizes headers, fingerprinting, solves CAPTCHAs, and more. #### For multi-step scraping (playwright/puppeteer/selenium): [Browser API](https://docs.brightdata.com/scraping-automation/scraping-browser/introduction) is the ideal product as it is our fully cloud-hosted browser designed to help you easily focus on your multi-step data collection while we take care of the full proxy and unblocking infrastructure for you, including CAPTCHA solving. **Residential Proxy** - No, [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) is the ideal product for targeting SERPs as it has a guaranteed success rate (pay only for success) with active unlocking, automatically chooses the best proxies, customizes headers, fingerprinting, solves CAPTCHAs, and more. Targeting Google SERPs from the Residential network will result in Super-proxy bypass, which will casue the request to be sent from our servers instead of the peer. **Datacenter & ISP Proxies** - No. When attempting to specifically target Google through either of these proxy networks, your request will be denied and you will receive the following error message in the response headers: ```text theme={null} HTTP/1.1 403 Search engine host is not allowed x-brd-error: Forbidden: This target URL isn't supported on proxy networks, use the SERP API product for targeting this URL. You may contact your account manager or open a support ticket for assistance ``` When targeting search engines through the Residential or Mobile networks, the request will not go through the Residential or Mobile peer but instead will be sent directly through one of our super proxies. The reason for this behavior is to support the integration of the Residential and Mobile networks with a browser, which might need to load search engine resource endpoints from the target website. **In case you target a search engine domain using Residential or Mobile networks, the request will be passed directly through the super proxy, and the following response header will serve as an indication:** ```sh theme={null} x-luminati-ip: superproxy bypass ``` No - requests directly to the host server, and not to the domain name are forbidden while using Bright data.\ Requests using URL format such as 1.1.1.1:443 will be executed using the super proxy server, not the proxy peer IP. Example of a request using the super proxy: x-luminati-ip.png Since BrightData cares about our community and peers quality, SMTP requests which can be used for spamming are blocked. Please note that mail domains are also blocked from access, and requests to mail domains will be sent from the super proxy server, and not the peer IP. Yes. Bright data supports `SOCKS5` protocol, with a default port 22228 assigned for SOCKS5 communication. See here for [full SOCKS5 configuration instructions](https://docs.brightdata.com/proxy-networks/socks5) or visit the [SOCKS5 proxies page](https://brightdata.com/solutions/socks5-proxies). * You can choose to perform the request from the super proxy directly instead of the IP of the peer. In that case the IP of the request will be the one of the Super proxy. You will need to add **'-direct'** to your request authorization string. `brd-customer--zone--direct` Using the same IP for a long period of time makes it easier for the target website to mark the IP as proxy and can make your request get detectable by the target website. Refreshing your IPs will result in allocation of new IPs from Bright Data instead of your existing ones in your pool allowing you to gain control over your pool and reach higher success rates. No special settings required, just use `country-cn` flag in your credentials If you wish to keep the same IP for a long time for session-based use, you have the following options: * Target a specific IP with the `-ip` flag: View your proxy list in your zone's pool (can be found in the control panel in the zone's 'overview' tab) choose one IP and target it using the `-ip` flag. This will route all your requests to the same IP. You can use the same IP as long as it is allocated to your zone. * Keep same session IP: By utilizing the `-session- `flag your requests will be routed to the same IP. To make sure that the same IP is kept bound to your session ID, you need to ensure that the session is not kept idle for more than . You can have multiple parallel sessions at the same time - each one with a different IP allocated to it. Optional: By utilizing the [Proxy Manager](https://docs.brightdata.com/proxy-networks/proxy-manager/introduction) you can make use of the [long single session](https://docs.brightdata.com/proxy-networks/proxy-manager/configuration#presets) preset which will automatically send dummy requests at regular intervals to ensure the IP is kept allocated. For residential/mobile zones, IPs are real users' devices' IPs, and therefore can be used only when the user's device is idle (i.e. the device is connected to the internet, has enough battery power, and the user is not currently using it). If the IP becomes unavailable, Bright Data will automatically assign you with another available residential IP of the same type and geo-location as you used. For more instructions and examples please see the following article: [https://docs.brightdata.com/proxy-networks/config-options#controlling-your-proxies-rotation](https://docs.brightdata.com/proxy-networks/config-options#controlling-your-proxies-rotation) HTTP error code 502 means "Bad Gateway". This error occurs when you send a request to a URL, but the URL's server receives an invalid response from another server that it depends on to fulfill the request. Bright Data uses the http headers to show additional information about the HTTP error, which helps in identifying the root cause and resolving the issue. Check our [error catalog](https://docs.brightdata.com/proxy-networks/errorCatalog#http-error-502) for HTTP Error 502 reasons. HTTP 403 response code means you are forbidden from accessing a **valid** URL. The server understands the request, but it can't fulfill the request because of client-side issues. Bright Data uses the http headers to show additional information about the HTTP error, which helps in identifying the root cause and resolving the issue. Check our [error catalog](https://docs.brightdata.com/proxy-networks/errorCatalog#http-error-403) for HTTP Error 403 reasons. If you've tried using the residential or mobile proxy networks and have encounterred one of the following errors or ones similar to them: * net::ERR\_SSL\_PROTOCOL\_ERROR * ERR\_INVALID\_CERT * Error: self-signed certificate in certificate chain * ERROR: No matching issuer found * NET::ERR\_CERT\_AUTHORITY\_INVALID * SSL: CERTIFICATE\_VERIFY\_FAILED It means that you are using the residential/mobile networks in 'Immediate Access' mode, and have not handled the SSL verification correctly For more info on what 'Immediate Access' mode and 'Special Permissions' mean: [Immediate Access Explanation](https://docs.brightdata.com/proxy-networks/residential/network-access) **How to resolve the SSL errors?** You have the following options: * Utilize API access instead of native proxy access: If you are connecting programmatically you should consider connecting via the API method - which handles the SSL certificate for you behind the scenes: [API access vs Native Proxy access](https://docs.brightdata.com/api-reference/authentication) * Complete the know-your-customer (KYC) process, which takes \~2-3 business days to process - after which you'll be able to use the residential/mobile network with minimal restrictions, which also resolves the SSL errors. To complete KYC process fill in the [KYC form](https://brightdata.com/cp/kyc) * Install the BrightData SSL certificate, according to our [SSL certificate installation guide](https://docs.brightdata.com/general/account/ssl-certificate) (note that for some specific integration methods installing the ssl certificate may not be possible due to it not being supported) This solution may not be supported by certain third party proxy tools e.g., GoLogin, MultiLogin. * If you are utilizing our proxies through code (NodeJS, Python, C#, etc.) or console, you can ignore SSL verification entirely, which resolves all SSL verification errors. We provide examples on how to do this in the [SSL certificate documentation page](https://docs.brightdata.com/general/account/ssl-certificate) * Use a different product: instead of Residential proxies you could use a different product such as Data Center or ISP proxies, which do not require "Special Permissions" (KYC). You could do this as a temporary measure until your KYC form is approved. When scraping large files or in order to record `curl` output, you may want to redirect the output to a file. In order to do so add `--output [filename]` to your `curl` command options. You can control access by allowing or blocking specific domains through simple configurations within your zones. Follow these steps to manage domain access: 1. Visit the [Zones Page](https://brightdata.com/cp/zones) Go to the Zones Page in your dashboard. 2. Select Your Desired Zone Choose the zone you wish to configure for domain access. 3. Navigate to the 'Configuration' Tab Once in your selected zone, locate the Configuration tab, then scroll down to Security Options. 4. Allowing or Blocking Domains * To allow specific domains, add them to Allowed Target Hosts. * To block specific domains, add them to Blocked Target Hosts. 5. Domain Wildcard Options * Root Domain Inclusion: Adding a root domain (e.g., example.com) will automatically include all its subdomains (e.g., sub.example.com). * Wildcard Use: Utilize the \* wildcard to cover all subdomains and suffix variations. For instance, adding example.\* will include sub.example.\* and various domain suffixes like example.com, example.co.uk, etc. These configurations provide flexibility in managing domain-level access for your proxy zones, ensuring secure and controlled connectivity. Bright Data policy allows targeting government website after passing the KYC process. [Read more about KYC process](https://docs.brightdata.com/proxy-networks/residential/network-access#kyc-verification). robots.txt is a file that website owners use to define which areas of their site can be accessed by automated systems. In Residential Immediate access mode, Bright Data adheres to these rules to ensure ethical compliance. Requests to blocked areas will return a 502 Residential Failed (bad\_endpoint) error. To resolve these errors you can choose one of these solutions: * Complete the Know Your Customer (KYC) process, after which you'll have full unrestricted access to our residential network which will resolve all robots.txt errors. To start the process see the following link: [https://brightdata.com/cp/kyc](https://brightdata.com/cp/kyc) * Use our other products, that do not require KYC verification, such as ISP and DataCenter proxies. * Avoid navigating to the web paths that the website is blocking in the robots.txt file. For more information, please see the following article: [https://docs.brightdata.com/proxy-networks/residential/network-access](https://docs.brightdata.com/proxy-networks/residential/network-access) We will consider providing IPv6 proxies to selected customers. Please contact us for inquires in regards to [support@brightdata.com](mailto:support@brightdata.com) To try and understand the reason your are encountering a specific error while using our proxy networks, you should try to recreate the same request on which you encountered the error and send it via cURL on CMD/BASH or some other http request service such as Postman. While sending the request, ensure you are attaching the `-v` or `-verbose` flag to the request (for cURL), this will ensure you receive the response headers which contain important information regarding the source of the error and will guide you to a solution. If the response headers include `x-brd-` then the error originates with BrightData and you should check the [BrightData Error Catalog](https://docs.brightdata.com/proxy-networks/errorCatalog) for further advice Otherwise, there has not been a failure on our side - and you should instead check the article regarding [Website Blocking](https://docs.brightdata.com/proxy-networks/website-blocking) It could also be that the error originates from issues with your integration, you should check if you've integrated correctly, for help with integration - please see our [Integrations Section](https://docs.brightdata.com/integrations/introduction) Bright Data allows large scale proxy access and operations, we do not enforce a global requests limit (also known as "Rate limit"), but we do monitor customers' usage - and alert if this usage is exceeding normal behavior. We do protect our proxy networks and if requests rate is too high you will receive an HTTP Error 429 ([see description of error and troubleshooting here](https://docs.brightdata.com/proxy-networks/errorCatalog#http-error-429)). We monitor both general requests inflow as well as **number of requests per proxy (IP)**, if we identify and overload on a specific proxy IP we may throttle it and return an HTTP error 429 with specific error message indicating such scenario. You will be requested to add more IPs or reduce your load. We highly recommend when encountering rate limit error (HTTP error 429) to review you rotation logic (in case you refer explicitly to proxy IPs) - you may have been targeting a specific set of IPs with requests while leaving the others unused. As part of BrightData's policy - we perform blocks or [Super-Proxy-Bypasses](https://docs.brightdata.com/proxy-networks/faqs#what-is-a-super-proxy) when users try to access google.com, youtube.com, bing.com and a handful of other select domains with our regular proxies. If you wish to scrape google search result data or youtube.com, please use [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) or Unlocker API instead. When checking your brightdata proxy IP location and details via third party IP checker sites, you may receive in results the 'wrong' geolocation, this can be due to two main reasons: * Geolocation Databases: Geolocation databases (GeoDB) are used by internet websites to query information about the IP address used by the users. Bright Data monitors and maintains correct records for MaxMind GeoDB. There are many other smaller GeoDBs, most of which are using outdated records or flawed testing methods, and so the information they present is not accurate or is presented to lure their viewers to buy VPN or proxy products from them. * Super Proxy Bypass: For third party IP checkers we may perform a superproxy bypass instead of completely blocking the request, this is done in order to retain our IP's reputation. When this is done, you may see the location of our superproxy not of your proxy peer. Dont worry - for other regular websites your real proxy peer will be used. [What is a superproxy bypass?](https://docs.brightdata.com/proxy-networks/faqs#what-is-a-super-proxy) To avoid such issues, please only use our official IP checker website, which will show you the accurate information: [https://geo.brdtest.com/mygeo.json](https://geo.brdtest.com/mygeo.json) Bright Data proxies natively support the industry-standard format: `IP/HOST:PORT:USERNAME:PASSWORD`. If your integration method does not support this format and requires `IP:PORT` only, you can use **Bright Data Proxy Manager**, a free, open-source tool that allows you to route requests to our proxies using the `IP:PORT` format. For more details on configuring Proxy Manager for this setup, refer to our guide: [Port Targeting Configuration](https://docs.brightdata.com/proxy-networks/proxy-manager/configuration#port-targeting) #### Handling IP Restrictions on Your Account If Bright Data detects unusual or suspicious activity originating from a particular IP address on one of your zones, the automated security measures will denylist that IP to protect your account. While this system effectively prevents most malicious activity, it occasionally may block legitimate users, resulting in an `ip_forbidden` error message. #### How to Resolve This Issue If you encounter this error, you can quickly resolve it by: 1. Go to the \*\*'Proxy' \*\*tab 2. Navigate to the affected Proxy/Zone from the list 3. Select **'Security Settings'** in the configuration panel 4. Find the**IP allowlist** option 5. Add your current machine's IP address to the allowlist Once your IP is allowlisted for the Proxy/zone, you'll regain immediate access to the service. ### Your proxy access information Bright Data proxies are grouped in "Proxy zones". Each zone holds the configuration for the proxies it holds. To get access to the proxy zone: 1. Login to Bright Data control panel 2. Select the proxy zone or setup a new one 3. Click on the new zone name, and select the **Overview** tab. 4. In the overview tab, under **Access details** you can find the proxy access details, and copy them to clipboard on click. 5. You will need: Proxy Host, Proxy Port, Proxy Zone username and Proxy Zone password. 6. Click on the copy icons to copy the text to your clipboard and paste in your tool's proxy configuration. ### Access Details Section Example your-proxy-list ### Residential proxy access To access Bright Data's **Residential Proxies** you will need to either get verified by our compliance team, or install a certificate. [Read more...](https://docs.brightdata.com/proxy-networks/residential/network-access) ### Targeting search engines? If you target a search engine like google, bing or yandex, you need a special Search Engine Results Page (**SERP**) proxy API. Use Bright Data SERP API to target search engines. [Click here to read more about Bright Data SERP proxy API.](https://docs.brightdata.com/scraping-automation/serp-api/introduction) ### Avoid `PROXY ERROR` in your tool Some tools use search engines as a test target for proxy: if your proxy test fails, this is probably the reason. Make sure that your test domain is not a search engine (this is done in the third-party tool's configuration, and not controlled by Bright Data). Yes. We offer selected customers to use our advanced high performance proxy networks with HTTP3 protocol. This is a limited offer to our enterprise tier customers: to use HTTP3 for your scraping operations, please contact your Bright Data account manager. ### How do I know if my target domain supports HTTP3? You can tell if your target domain advertises on HTTP3 by sending a `curl` request checking the response header for `alt-svc` header. If this header exists in the response it means the domain is offering access over HTTP3. ```text theme={null} curl -k -i https://[my target website] ``` Alternatively, you can check [https://http3check.net/](https://http3check.net/) or similar websites. ### Can I use my installed `curl` to query over HTTP3? Yes - but you need a specifically built `curl` utility which is supporting `HTTP3`. Most popular released of `curl` does not support `HTTP3`. ### Why should I use HTTP3? Some websites expect HTTP3 traffic ; so by accessing with target's expected protocols you may experience smoother unblocked access. For some use cases, HTTP3 access is faster than HTTP2, so your throughput can be higher. ### Do I need to perform special setup on my proxies? No. All the proxies provided by Bright Data can relay HTTP3 traffic without special setting or modifications. ### Do I need to modify my operations or access to use HTTP3? Consult your IT, Network and Security administrators on enabling HTTP3 from your network. Some network or firewall settings may be required to allow this traffic to flow from/to your organization's network. ### How can I see if my chrome browser is utilizing HTTP3 for traffic? Open your chrome browser in development mode, and open the network tab. In `protocol` column, if you see `h3` it means requests are sent and received over HTTP3. ### How can I join the beta trial of HTTP3 of Bright Data? In order to gain access to our HTTP3 beta, contact your account manager in Bright Data. We authorize currently only selected enterprises to join our beta trial of HTTP3. Yes - Bright Data supports exporting your logs to AWS S3 store. Set this up in your control panel here: [https://brightdata.com/cp/setting/logs\_delivery](https://brightdata.com/cp/setting/logs_delivery) ***Note: Your AWS S3 bucket must be in us-east-1 region*** # Proxy Infrastructure Source: https://docs.brightdata.com/proxy-networks/introduction Bright Data proxy infrastructure: 400M+ monthly residential IPs plus ISP and datacenter networks, with full session and geo-targeting control.

Our Proxy Networks

Access any website content as a real user, while seamlessly avoiding web blocks. Retrieve data faster with Data Center proxy network in a shared or dedicated IP pool. Use internet service provider IPs with a guaranteed long session peers and static addresses. [Proxy Manager](https://docs.brightdata.com/proxy-networks/proxy-manager/introduction): Manage and monitor any proxy network using a single open-source interface. [Start now](https://brightdata.com/?hs_signup=1\&utm_source=docs) with \$5 credits, no credit card required. We’ll match your first account deposit up to \$500 ! For billing, settings and user access, visit the [account management](https://docs.brightdata.com/api-reference/authentication#how-do-i-generate-a-new-api-key%3F) section. View real-time network status for all products # How to Configure Your ISP Proxy Source: https://docs.brightdata.com/proxy-networks/isp/configure-your-proxy Learn how to configure your ISP proxy settings effectively, choose IP types, enable cache proxy, and ensure 100% uptime for optimal performance. To access your proxy configuration, open your zone in the "Configuration" tab. ## Which IP type to choose Bright Data offers 3 types of ISP proxies: A rotating proxy over a pool of \~40,000 proxies, paid by usage GBs. A set of specific proxies, shared with others, with unlimited bandwidth, paid by proxy. A set of specific proxies, exlcusive for you, with unlimited bandwidth, paid by proxy. ## Shared (rotating) proxy configuration ### Default countries selection When selecting countries in shared pool configuration, we will assign proxies only from the countries you select. You can select none (which meand we will assign the next random proxy from the pool), one or more countries. [Read more...](https://docs.brightdata.com/api-reference/proxy/geolocation-targeting#default-countries-selection) To select a specific country for your peer during rotation, use the flag -country in the proxy user name parameter with an ISO-3166 country code. [FAQ: Where can I see the list of country codes?](https://docs.brightdata.com/general/faqs#where-can-i-see-the-list-of-country-codes) ## Shared & Dedicated unlimited proxy configuration ### Number of IPs For unlimited proxies we offer a discount based on amount of proxies you purchase per zone. The more you buy, less your pay per proxy. Click on the "Rates" link in your zone setup to see rates. Number of IPs to be allocated as your pool of available IPs. ### How to select a country Geolocation targeting allows you to target specific `Country`. Select the prefered countries from the drop-down menu. Once selected, we will assign proxies from those countries. If we do not have enough proxies to cover your requirement, we will assign the amount we have and you can submit an order for the full amount of proxies (we do not allow single proxy orders - we will take in large orders only). Changing this selection means re-allocating proxies, which will incur a **Refresh charge**. ### How does multiple countries selection work? If you select multiple countries, we assign proxies in **available countries** at the moment of assignment. For example: if you choose proxies from Germany, France & Italy, we will provide proxies from **either** of these countries. We will try to distribute the assignment evenly across the countries you selected, yet if there are not enough proxies in one of the countries, some countries will have more proxies than other. So referring to that example, if you request 30 proxies from Germany, France & Italy and we have only 6 available proxies in Italy you will get: 12 proxies from Germany, 12 from France and 6 from Italy. Geolocation Targeting ## Access your allocated Proxies' IP addresses In all proxy types, you can download, view and copy to clipboard the IPs allocated to you by following these steps: 1. Navigate to the [Zones page](https://brightdata.com/cp/zones). 2. Select a zone with allocated IPs. 3. In the overview tab click 'Download', 'View' or 'Copy'. your-proxy-list *** ## How to configure advanced options *** ### How to enable automatic failover In case we cannot reach the proxy peer for your request, we will route the request to another available peer. Automatic failover does not apply when you choose default countries: if we cannot find a peer in the country you selected, we will fail the request with error. Enabling automatic failover assures execution of the request, regardless of the availability of a specific peer. *** ### Special Ports & Protocols Ports `80` and `443` are available by default, supporting HTTP and HTTPS & SOCKS5 protocols. We also support all ports over `1024` in our ISP proxy network. [Read more on ports and protocols...](https://docs.brightdata.com/proxy-networks/faqs#how-to-see-supported-ports-and-protocols) Bright Data can support additional ports by request. A dedicated and additional compliance process with the Bright Data compliance team will follow every request to support a new port. If you would like additional port permissions, you can contact Bright Data Support. Examples of ports that require Bright Data compliance review before activation: | Port | Protocol | | ---- | -------- | | `70` | HTTP | | `98` | HTTPS | ### Zone usage limit Set usage limit to your zone: you can limit spending or traffic. This provides additional layer of control to your budget and bandwidth consumption, mostly over our rotating shared pool proxies. # ISP Proxies FAQs Source: https://docs.brightdata.com/proxy-networks/isp/faqs Answers to common questions about Bright Data virtual ISP proxies: how the network is built, IP pools, geotargeting, privacy and compliance with ISP policies. This FAQ raises and answers all these complex questions in detail and transparency. A virtual ISP gathers millions of physical IPs from thousands of ISP providers worldwide and forms them into a single virtual ISP network. As a customer of Bright Data, you can access this network via a single IP for private use, a full network of shared access for scaled public web data collection. Alternatively, you can use Bright's Data Collection platform that does all the work for you and delivers the public web data you need in the required format you requested. # Introduction to ISP Proxies Source: https://docs.brightdata.com/proxy-networks/isp/introduction Bright Data ISP Proxies combine residential trust with datacenter speed across 195 countries. Best for ad verification, QA and bypassing datacenter blocks. Bright Data’s [ISP Proxies Network](https://brightdata.com/proxy-types/isp-proxies) is one of our proxy network solutions and is built of residential IPs bought or leased from Internet Service Providers (ISPs) for commercial use, rather than for use from private homes. This has an advantage over our [Datacenter](https://docs.brightdata.com/proxy-networks/data-center/introduction) network, as target sites classify ISP IPs similar to residential IPs, even though in reality they are actually hosted on servers. This allows you to access websites and collect data as a real person would, while at the same time benefiting from the high speeds and reliability that are characteristic of high-speed server IPs.  ## When to use ISP proxies * Accessing hard-to-reach websites very similar to a real user * Viewing content, performing ad verification, quality assurance, marketing, and more * If you are getting low success rates or blocked altogether when using our [Datacenter](https://docs.brightdata.com/proxy-networks/data-center/introduction) proxy network and want to keep your fast server speeds and lower cost If you need a more sophisticated proxy network, that’s even less likely to to get detected by websites, you may want to consider using our [Residential proxies.](https://docs.brightdata.com/proxy-networks/residential/introduction) For an even more advanced proxy unblocking solution, that also tackles additional blocking challenges, such as site-specific headers, cookies, CAPTCHAs, etc, try out our [Unlocker API](https://docs.brightdata.com/scraping-automation/web-unlocker/introduction) or check out our [other proxy products.](https://brightdata.com/proxy-types) # Create Your First ISP Proxy Source: https://docs.brightdata.com/proxy-networks/isp/quickstart Set up your first Bright Data ISP proxy: sign in, create a proxy in the Control Panel, verify your account and earn $5 credit for first-time setup. **Verify your account and get \$5 credit** Add a payment method to verify your account and receive a \$5 credit. You won’t be charged at this stage. Sign in to Bright Data} /> Open the Create Proxy page}> Navigate to **Create Proxy** under the **Proxy** section in the left menu. Create Proxy Select **ISP Proxy** and click **Continue**. ISP Proxy Enter a meaningful name. Optionally, add a short description. **The proxy name cannot be changed once created.** All other settings can be modified later. For details, see [Configure your Proxy](/proxy-networks/isp/configure-your-proxy). Proxy Name If you signed up with a personal email (e.g., Gmail, GitHub) and have not yet added a payment method, the primary button will read **Add payment method** instead of **Create Proxy**. Click the button to open the payment verification form and complete the process. You will **not** be charged, this is for identity verification only. Already have a payment method on file? This step is skipped automatically. For full details, see [Payment Verification](/general/account/billing-and-pricing/payment-verification). Click **Create Proxy**. If you were redirected to add a payment method, your zone is created automatically once verification completes. Your proxy is now ready to use. # Send your first ISP proxy request Source: https://docs.brightdata.com/proxy-networks/isp/send-your-first-request Send your first request through Bright Data ISP proxies with copy-paste code examples in cURL, Python, Node.js, Java, and Go. 1. Residential Proxy 2. Mobile Proxy 3. ISP Proxy 4. Datacenter Proxy 5. SERP API 6. Browser API 7. Unlocker API To get started, you need your proxy credentials, your `Username` and `Password` along with the `Host` name. You can find these credentials in the **Overview** tab of the proxy product. ## Code Examples Once you have your proxy credentials, use the following code to send your first request: ```sh cURL theme={null} curl "http://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` ```javascript Node.js theme={null} #!/usr/bin/env node require('request-promise')({ url: 'http://brdtest.com/myip.json', proxy: 'http://brd-customer--zone-:@brd.superproxy.io:33335', }) .then(function (data) { console.log(data); }, function (err) { console.error(err); }); ``` ```python Python theme={null} import pprint import requests host = 'brd.superproxy.io' port = 33335 username = 'brd-customer--zone-' password = '' proxy_url = f'http://{username}:{password}@{host}:{port}' proxies = { 'http': proxy_url, 'https': proxy_url } url = "http://brdtest.com/myip.json" response = requests.get(url, proxies=proxies) pprint.pprint(response.json()) ``` ```php PHP theme={null} -zone-:'); curl_exec($curl); ?> ``` ```ruby Ruby theme={null} #!/usr/bin/ruby require 'uri' require 'net/http' require 'net/https' puts 'To enable your free eval account and get CUSTOMER, YOURZONE and YOURPASS, please contact sales@brightdata.com' uri = URI.parse('http://brdtest.com/myip.json') proxy = Net::HTTP::Proxy('brd.superproxy.io', 33335, 'brd-customer--zone-', '') req = Net::HTTP::Get.new(uri) result = proxy.start(uri.host,uri.port, :use_ssl => uri.scheme == 'https') do |http| http.request(req) end puts result.body ``` ```cs C# theme={null} using System; using System.Net; class Example { static void Main() { var client = new WebClient(); client.Proxy = new WebProxy("brd.superproxy.io:33335"); client.Proxy.Credentials = new NetworkCredential( "brd-customer--zone-", "" ); Console.WriteLine(client.DownloadString("http://brdtest.com/myip.json")); } ``` ```java Java theme={null} package example; import org.apache.http.HttpHost; import org.apache.http.client.fluent.*; public class Example { public static void main(String[] args) throws Exception { System.out.println("To enable your free eval account and get " +"CUSTOMER, YOURZONE and YOURPASS, please contact " +"sales@brightdata.com"); HttpHost proxy = new HttpHost("brd.superproxy.io", 33335); String res = Executor.newInstance() .auth(proxy, "brd-customer--zone-", "") .execute(Request.Get("http://brdtest.com/myip.json").viaProxy(proxy)) .returnContent().asString(); System.out.println(res); } } ``` ```perl Perl theme={null} #!/usr/bin/perl print 'To enable your free eval account and get CUSTOMER, YOURZONE and ' .'YOURPASS, please contact sales@brightdata.com'; use LWP::UserAgent; my $agent = LWP::UserAgent->new(); $agent->proxy(['http', 'https'], "http://brd-customer--zone-:\@brd.superproxy.io:33335"); print $agent->get('http://brdtest.com/myip.json')->content(); ``` ```vb VBA theme={null} Imports System.Net Module Module1 Sub Main() Console.WriteLine("To enable your free eval account and get " & "CUSTOMER, YOURZONE and YOURPASS, please contact " & "sales@brightdata.com") Dim Client As New WebClient Client.Proxy = New WebProxy("http://brd.superproxy.io:33335") Client.Proxy.Credentials = New NetworkCredential("brd-customer--zone-", "") Console.WriteLine(Client.DownloadString("http://brdtest.com/myip.json")) End Sub End Module ``` The code above uses the residential proxy to send a request to [http://brdtest.com/myip.json.](http://brdtest.com/myip.json.) It returns your IP information in a JSON format: ```json Output theme={null} { "ip": "ALLOCATED_IP", "country": "PK", "asn": { "asnum": 203020, "org_name": "HostRoyale Technologies Pvt Ltd" }, "geo": { "city": "Islamabad", "region": "IS", "region_name": "Islamabad", "postal_code": "44040", "latitude": 33.7233, "longitude": 73.0435, "tz": "Asia/Karachi", "lum_city": "islamabad", "lum_region": "is" } } ``` Now, replace “[https://brdtest.com/myip.json”](https://brdtest.com/myip.json”) with the website of your choice and ... **That's it!** # How to Configure the Proxy Manager Source: https://docs.brightdata.com/proxy-networks/proxy-manager/configuration Learn more about what Proxy Manager can do, how to tailor it to your needs, and how to implement popular optimized workflows. Connects via port 33335. ## Download and install Proxy Manager *** Our Proxy Manager is easy to setup and maintain on your local machine or on our hosted cloud server. We recommend the Cloud server setup to get full access to all that Proxy Manager has to offer. ### Bright Data Cloud Hosting Avoid the hassle of server resources as well as networking setup of an on-premise Proxy Manager - a cloud instance will let your focus on your operations. We provide a multi-instance cloud with a single UI to control your Proxy Manager's operations. * To enable this option, select Activate on [the Proxy Manager page](https://brightdata.com/cp/lpm) in your account, and the instance will be provided automatically. **Allow third party cookies** in your browser must be enabled for proxy manager dashboard to run in your browser. ### Download and install Proxy Manager on your hosted environment (cloud/on premise) Brigt data provides installers for each platform. The minimum host requirements are at least: * 4GB RAM * 2 CPU * 3GB HDD Download and installation methods for the respective OS: Download the [Installer](https://github.com/luminati-io/luminati-proxy/tags) file from our [GitHub](https://github.com/luminati-io/luminati-proxy) releases. Make sure to download the latest version. Linux CentOS 8.x is not supported (use CentOS 7.x instead!) * Confirm the recommended hardware requirements: 1. 4GB RAM 2. 2 CPUs 3. 3GB SSD * Confirm the recommended software requirements: * [Node.js](https://nodejs.org/en/about/) supported versions: `12.18.3 - 14.18.1` * [NPM](https://docs.npmjs.com/about-npm) supported versions: `6.14.6 - 8.1.3` You can manually install NPM v6.14.6: ```sh theme={null} sudo npm install -g npm@6.14.6 ``` * Confirm that network traffic is not limited: * The server/computer does not use any VPN or proxy IP! * The OS firewall is turned off * in and out traffic is permitted for TCP ports 20000-30000 * Install Proxy Manager by running from a terminal one of the following commands: ```sh theme={null} curl -L https://brightdata.com/static/lpm/luminati-proxy-latest-setup.sh | bash wget -qO- https://brightdata.com/static/lpm/luminati-proxy-latest-setup.sh | bash sudo npm install -g @luminati-io/luminati-proxy ``` You can find more information on [Manual Installation instructions](https://github.com/luminati-io/luminati-proxy#linuxmacos---manual-install). A docker image can be found [here](https://hub.docker.com/r/luminati/luminati-proxy/) ```sh theme={null} docker pull luminati/luminati-proxy docker run luminati/luminati-proxy proxy-manager docker run luminati/luminati-proxy proxy-manager --version ``` * Make sure to forward appropriate ports. Proxy manager uses by default 22999 for the web console and the API, [`33335 `](https://docs.brightdata.com/general/faqs#which-port-shall-i-use-22225-or-33335) for dropin and 24000-24... for all the ports that you'll create. * To run docker with cli option see the below example: ```sh theme={null} sudo docker run -v ~/proxy_manager:/lpm -p 127.0.0.1:22999:22999 -p 127.0.0.1:22998:22998 -p 127.0.0.1:24000:24000 luminati/luminati-proxy pmgr --www_whitelist_ips 172.17.0.1 --config /lpm/config.json ``` *** ## Which preset to choose *** Use this preset if you need full page loads. Connect from the browser manually (for example Chrome/Firefox) or programatically (for example Puppeteer/Selenium). All requests share the same IP. You can control when you refresh the IP from the UI or API. Use this preset if you want to get a fresh new IP on each single request. This preset also rotates the User-Agent header automatically. It's the best for scraping API when you don't load the full pages. Build your own preset fit your needs Using a custom preset requires testing in the internal environment before going to production to verify the process is working as expected ## Rules and Headers *** Navigate to Rules and start building your own rules based on triggers such as: * URL suffixes * Status codes * String values found in the Response body * Requests latency You can choose an action to be taken to each trigger respectively. For example, an implementation of a rule to save bandwidth by nullifying media URLs' outputs. In addition, you can implement the desired headers in advance under the Rules section. For example, adding the user-agent header of a Linux desktop on i686 CPU (More about user-agents can be found [here](https://developers.whatismybrowser.com/useragents/explore/)) ## How to target a port *** Bright Data proxy manager enables targeting the Proxy using IP:PORT format. For example, targeting a [port](https://docs.brightdata.com/api-reference/proxy-manager/create_a_new_proxy_port) indexed as 24000 when the proxy manager is installed locally: ```sh theme={null} curl --proxy 127.0.0.1:24000 "https://target.site" ``` If installed remotely simply switch 127.0.0.1 with the remote server IP address. (Instead of the IP:PORT USERNAME:PASSWORD) ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: "https://target.site" ``` This allows: * Removing the username:password section from the request. * Integration with 3rd party softwares that accept only IP:Port format * Clean code. Ports can be configured with all necessary headers and rules in advance no need to adjust the command/request itself. More information is available [here](https://docs.brightdata.com/api-reference/proxy-manager/update_a_proxy_port) ## Add External Proxies *** Bright Data Proxy Manager supports external proxies from other vendors. Connecting external proxies will allow you to optimize and manage all of your proxies in one place. * Login to your Proxy Manager * Set a new Port. * Select 'External' * Add your proxies in the next format ```js theme={null} [ '', ':@:' ] ``` * Click 'Save' and you will have the external proxies available as one of the Proxy Manager's port Add External Proxies ## Traffic Calculation Difference *** Proxy Manager is a middleman between the request initiator and our Super Proxy servers. Proxy Manager statistics can be seen [here](https://brightdata.com/cp/lpm), and Super Proxy statistics can be seen [here](https://brightdata.com/cp/zones). So each request that you send to Proxy Manager eventually reaches Super Proxy. But there could be a difference in traffic calculations, here's why: * Proxy Manager calculates incoming requests as they are being sent, but after they reach the Proxy Manager, it attaches additional headers, so that request's response will have more information about the request's flow (timeline, proxy IP, etc) * Requests that reach the Super Proxy server from Proxy Manager are incoming with those additional parameters; that's why Super Proxy calculates slightly bigger requests than it initially was when reached Proxy Manager * Proxy Manager sometimes adds headers to present a better view of logs, but this data is not being calculated in the billing In conclusion, the main source of traffic statistics should be [Zones](https://brightdata.com/cp/zones)' page since it represents statistics formulated by Super Proxy. As a rule - Bright Data uses the [Zones](https://brightdata.com/cp/zones)' page for calculation and one source of truth Invoices and billing events will be triggered based on the zones calculations # Proxy Manager FAQs Source: https://docs.brightdata.com/proxy-networks/proxy-manager/faqs Find detailed answers to common Proxy Manager questions, including access restriction, port multiplication, IP targeting, and more. Connects via port 33335. To secure your account and prevent unauthorized access to the Proxy Manager, there are 3 main available workflows: 1. Allowlist IPs 2. Token based Authentication using API key 3. Permission by Email using the Bright data extension Proxy Manager can connect with the main Bright Data infrastructure using either HTTP or HTTPS connection. **To avoid confusion:** This is **NOT** the connection type to the target URL. To make sure the connection is secure it's enough to keep **Connection to Super Proxy** with a default value (HTTP) because the HTTPS requests create an end-to-end encrypted connection with the target site anyway. In most cases, you don't even need to touch this config. It may come out useful though when connecting from some territories where traffic to some domains is blocked. In these cases, you need to set it to **HTTPS** not to allow the global firewall to see the content of your proxies traffic and filter it out based on the target domain Go to "General" tab and choose the number of ports you want to multiply in the Multiply proxy port drop down Once you set the number of multiplied ports you need the Proxy Manager will generate the sequential ports identical to the port you configured. This is a very powerful feature when you need to create many ports with the same settings but only set it once. With Bright Data you can specify the geolocation and other parameters of the IPs you use for sending traffic. In Proxy Manager it's especially easy because it take only a few clicks. Depending on the zone you use you can request IPs only from a specific country (if you use Residential or Datacenter network) or additionally specific carrier (if you use Mobile network). **How to set targeting in Proxy Manager?** To get IPs from a specific location, follow these steps: * Click on the proxy port that you want to use location-specific IPs * Go to **Targeting** tab * Select country, state, city for choosing a peer in a specific geolocation * Select ASN or carrier name (only for mobile peers) Each targeting option requires the proper permissions in your Zone. If you want to use multiple countries and you don't want to create a separate proxy port for each country it's also possible to control the targeting dynamically. You don't have to specify the country, state or city targeting in advance using the Targeting tab in the UI. It is possible to pass extra targeting options dynamically ('on the fly') along with the request. ```sh theme={null} curl -x lum-country-br@127.0.0.1:24001 http://brdtest.com/myip.json ``` The request's structure is: ```sh theme={null} curl -x lum-country-@: ``` The other option for controlling targeting dynamically is by including a special header. ```sh theme={null} "x-lpm-country: " ``` Example request could look like this: ```sh theme={null} curl --proxy http://127.0.0.1:24000 -H "x-lpm-country: us" http://brdtest.com/myip.json ``` You may also use headers for controlling state and city: * State: `x-lpm-state: ` * City: `x-lpm-city: ` To override the country selected in the port, you can send the 'x-lpm-country' header with the chosen country code. ```sh theme={null} curl --proxy [LPM_DOMAIN]:[PORT] -H "x-lpm-country: il" "http://brdtest.com/myip.json" ``` Follow Redirect is a valuable feature within the Proxy Manager that enhances your control over the handling of 30X (Redirection) errors. This feature is located within the Port Settings, under the General tab. It provides you with the option to automatically send a new request when encountering a 30X error, where the destination URL is derived from the Location response header. This documentation will guide you through enabling and using this feature. **Accessing Follow Redirect:** 1. Open the desired port for Follow redirect activation 2. Go to General Tab: Within the Port Settings, click on the "General" tab. This is where you'll find various settings related to how your proxy handles requests and responses. 3. Toggle the Follow Redirect Feature: In the General tab, you will see the "Follow Redirect" feature. It's presented as a toggle button, allowing you to enable or disable it as needed. **How Follow Redirect Works:** * When the Follow Redirect feature is enabled, it instructs the proxy manager to automatically send a new request in response to a 30X error. * The URL for the new request is determined based on the Location response header received in the 30X error response. * This allows your proxy to seamlessly follow the redirection and ensure that the request is sent to the correct destination, as specified by the Location header. **Benefits of Follow Redirect:** In environments where automatic redirection is not supported or desired, the Follow Redirect feature gives you full control. You can control your sessions using the Proxy Manager by sending x-lpm-session header. * Add the header with any random session ID"x-lpm-session: random\_session" * When using the same session the Proxy Manager will try to connect with the same exit node (peer/IP) * When you change the session value the Proxy Manager will connect with a different exit node (new peer/IP) * To keep a given session alive you must send a request no less than every 7 minutes * Note that in order to use it with HTTPS requests you will need to enable SSL Analyzing and install the certificate Here is an example: ```sh theme={null} curl --proxy http://127.0.0.1:24000 -H "x-lpm-session: rand123" http://brdtest.com/myip ``` You can refresh session on your cloud Proxy Manager with the following curl request: ```sh theme={null} curl -X POST "https://pmgr-customer-.brd.superproxy.io:22999/api/refresh_sessions/" ``` In Proxy Manager, we provide users with a range of options to export logs to external storage and log monitoring systems. These export options allow you to centralize and analyze your logs efficiently. In this documentation article, we will outline the available log export options and guide you on how to configure them through Proxy Manager settings. **Log Export Options:** Proxy Manager offers the following log export options: **Logz.io** Configure the Logz.io integration in Proxy Manager settings by specifying your Logz.io token, Host and other required parameters. **AWS S3:** To export logs to AWS S3, set up the S3 integration in Proxy Manager settings. You will need to specify your AWS access key, secret key, S3 bucket name, and other relevant details. **Webhook:** Configure the webhook endpoint and any required authentication details and URL in Proxy Manager settings to start exporting logs via webhook. **Datadog:** To export logs to Datadog, set up the Datadog integration in Proxy Manager settings by providing your Datadog API key and other relevant information. **Configuring Log Exports:** To configure log exports in Proxy Manager, follow these general steps: 1. Access Proxy Manager Settings: 2. Navigate to the settings or configuration section. 3. Select Log settings option in Enable request logs 4. Toggle on Use remote logs aggregator 5. Choose the desired log export option (Webhook, Datadog, Logz.io, or AWS S3). 6. Provide Configuration Details: For the selected export option, you will typically need to provide specific configuration details. This may include endpoint URLs, API keys, authentication credentials, and storage settings. 7. Click on Test to check the configuration 8. Click OK and Save changes logs-settings.png By following these steps, you can effectively configure Proxy Manager to export logs to your chosen external storage or monitoring systems, enhancing your ability to monitor and manage your network and applications effectively. Error code responds can trigger an IP refresh or try with new IP using the Proxy Manager Rules with the following steps: * Add a new rule at Proxy Manager, rules tab * Select 'Status code' as the rule type * Trigger the rule by selecting the relevant status code to scan (i.e 501, 402, 301, etc) * Select the desired outcome such as 'Refresh IP' or 'Try with new IP' Watch video:[unblock error codes](https://brightdata.com/video/unblock_error_codes) **What is needed?** To be able to access the UI (dashboard) using HTTPS protocol you need to provide the Proxy Manager with an SSL certificate and private key for your domain. The certificate and private key should be generated specifically for your domain and installed on the server. Usually it's done through the server and domain provider **How to do it?** Run Proxy Manager along with environment variables `SSL_CERT` and `SSL_KEY` pointing to the according certificate files. Example command to run in the terminal: ```sh theme={null} SSL_CERT=/path/to/ca.crt SSL_KEY=/path/to/ca.key pmgr ``` Once it is started you can access the UI using [https://your-domain.com:22999/](https://your-domain.com:22999/) By enabling the `--history` flag. When history mode is enabled, both request and response headers will be saved to a local database. They can be accessed under the "Proxies" section. The history option can also track HTTPS, by enabling the '--ssl' flag. For additional details, see the Bright Data Proxy Manager [GitHub page](https://github.com/luminati-io/luminati-proxy#installation). This can also be done through the Proxy Manager dashboard by abling Log request history and Enable SSL sniffing under the General settings section. To use SOCKS5 with Bright Data's Proxy Manager, simply use `socks5h://` as the protocol when connecting to your local Proxy Manager port. No UI changes are needed. Example: ```sh theme={null} curl -x socks5h://127.0.0.1:24000 "https://geo.brdtest.com/welcome.txt" ``` Always use `socks5h://` (not `socks5://`) to ensure DNS is resolved on the proxy side, as required by Bright Data. This option is only available for customers who have dropin port enabled `SOCKS5` protocol uses an encrypted base64 string for authentication. Therefore, when using `SOCKS5`, if you need to define a proxy IP country (`-country-`), you will have to convert your basic authentication information into base64 token: * Browse [https://www.base64encode.org](https://www.base64encode.org/) * Encode `brd-customer--zone--country-:` to Base64 format token * Use the "Basic authorization token" header you generated on the `SOCKS5` request that you send the Proxy Manager port: ```sh theme={null} curl -v "http://brdtest.com/myip.json" --socks5 127.0.0.1:24000 -H "Proxy-Authorization: Basic " ``` Using the Proxy Manager offers advanced features that are not readily available in the API. Instead of having to manually code mechanisms for tasks like keeping an IP as long as possible or rotating your IP after each request, you can simply click a button in the Proxy Manager. Guidelines to to switch from API to Proxy Manager: 1. Install the Proxy Manager [here](https://github.com/luminati-io/luminati-proxy#installation/) 2. Change the code to send HTTP requests directly to the specified port (for example, 127.0.0.1:24000) instead of to brd.superproxy.io: 3. Configure the settings for your custom proxies and Zones through the Proxy Manager dashboard. You do not need to send the user parameter (brd-customer-customer\_name-zone-zone\_name…) alongside your requests, as all the needed data is wrapped within the manual proxy configuration. Including all headers and cookie behavior. See bash example, using Bright Data **Proxy Manager**: ```sh theme={null} curl -v "http://brdtest.com/myip.json" -H 'pragma: no-cache' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: en-US,en;q=0.8' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36' -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp, image/apng,\*/\*;q=0.8' -H 'cache-control: no-cache' -H 'cookie: bcookie="v=somekindofcookiexxx";' --proxy http://127.0.0.1:PORT_NUM ``` When using Unlocker API attaching headers is disabled by default, please contact support in order to approve headers attachment. Create a new service file in: ```sh theme={null} /etc/systemd/system/pmgr.service ``` ```sh theme={null} [Unit] Description=Proxy Manager Wants=network-online.target After=network-online.target [Service] Type=simple Restart=always RestartSec=5 Environment=NODE_ENV=production ExecStart=/usr/bin/pmgr User=root StandardOutput=null StandardError=null [Install] WantedBy=multi-user.target ``` ```sh theme={null} systemctl daemon-reload ``` ```sh theme={null} systemctl start pmgr ``` ```sh theme={null} systemctl status pmgr.service ``` You have completed setting up Proxy Manager as a service. You can now control your new service: ```sh theme={null} service pmgr [stop|start|restart] ``` Enabling 'Request details' under 'General settings' will add the response headers below, and will allow you to get a wider, more specified view of your request. This feature has the same functionality as using the `-debug` flag. * `x-brd-ip-destination` - IP of the targeted host * `x-brd-ip` - IP allocated to the request. * `x-brd-timeline` - Time it took to complete - This feature is turned off by default on the cloud proxy manager, if needed, make sure you enable it. - Enabling 'Request details' is necessary in order to implement the action 'Ban IP' within a rule. Viewing these headers can be done with one (or more) of the following ways Sending your request in verbose mode by using the `-v` flag 1. Click on the specific request you want to examine 2. Click on 'Headers' 1. Open 'devtools' by clicking F12 2. Go to the 'Network' tab 3. Navigate to the target URL 4. Click on the relevant request 5. The relevant headers would be under 'Response Headers' * Go to "General" tab * Select "On" from "SSL analyzing" * Go to "Rules" tab * Select "URL" from "Rule type" drop-down list * Choose any file type to apply regex expression * Select "Null response" from "Action type" drop-down list In the following example below the Proxy Manager will return a null response (0kb and still status code 200) for all requests that end with any of the file type endings .jpg|.png|.gif etc. Use this option when you want to reduce the amount of data you wish to get in your response. If the number of requests you rotate through a single IP is higher than what target websites allow, the website you target will identify your IP and block or mislead you with false information. It means that your information collecting can be much slower than what you're used to. **What can I do about it?** Assuming you're running 10 million requests, 1 request per second per IP with 1000 data center IPs, your routine can take about 3 hours. With 10,000,000 residential IPs, your routine can potentially take 1 second. Guidelines to rotate multiple parallel sessions through Bright Data's residential network: 1. Open Proxy Manager 2. Go to the 'Overview' menu 3. Click the port of your residential zone 4. Edit in the port settings 'preset' to 'Rotating (IPs)' 5. Route your requests to `127.0.0.1:` where the `portnum` is the port of the residential zone Getting cloaked means that you're getting misleading information from the website you are scraping. Example: If you are collecting comparative competitive information to feed your automatic pricing algorithms, the target website can return artificially lower prices to your requests, to skew your pricing and profits. **What can I do about it?** When using traditional proxy networks (data center based IPs), your target websites may identify your activity quite easily and may cloak your requests. Therefore, the only way to ensure you're not getting cloaked is to rotate your requests through residential IPs. Guidelines for rotating requests through millions of residential IPs: 1. Open Proxy Manager 2. Go to the 'Overview' tab 3. Click the port of your residential zone 4. Edit in the port settings 'preset' to 'Rotating (IPs)' 5. Route your requests to `127.0.0.1:` where the `portnum` is the port of the residential zone Choose "Long Single Session" on the port settings drop-down, and it will automatically ping the IP to keep the session alive: long-single-session.png Using Remote DNS gives you a DNS resolve server similar to that of the Proxy peer (the origin of the Proxy's IP). This makes your request look more credible as the resolve server is usually located geographically close to the IP, whereas without using Remote DNS the resolve server is one of Bright Data's Super-Proxies which may be located in another country. To use Remote DNS: Go to Edit Port > IP control > set "DNS Lookup" to "Remote - resolved by peer" Simply add it to your username string. For example: ```sh Shell theme={null} brd-customer--zone--dns-remote ``` When you don't want to overload one Proxy Manager with too many requests you can create several instances of the Proxy manager on different servers. The best way to do so is by following the next steps: * Install the Proxy Manager locally and set all of the ports as needed * Save the config file * Turn on Sync configuration so all the changes will be kept in sync on all the machines automatically * Install the Proxy Manager on the servers you want to use * *Import* the config file to the proxy\_manager directory in the servers Split your traffic between the servers ```js theme={null} request 1 -> {FIRST SERVER IP}:24000 request 2 -> {SECOND SERVER IP}:24000 ``` Using the Proxy Manager with this method will make sure you are not overloading one Proxy Manager instance and it will help you keep the same configuration across all instances. This means you can send requests from same port with the same country at the same time on each instance. If you're having troubles setting up this load-balancing yourself - you could use our [Clouds](https://brightdata.com/cp/lpm) that have load-balancing feature implemented. You'll only need to use 1 UI and control all instances with shared configuration, and then target same URL, we will take the whole load-balancing process ourselves. If you fail to login to your [Proxy Manager](/proxy-networks/proxy-manager/introduction)(PM), please do the following: * Make sure that the computer that runs PM is not using a VPN.\\ Mind that using a VPN while running PM might cause login problems, and also slow down the connection to the proxies * Close PM (the terminal's black screen where PM is running) * Delete cookies on your browser * Open PM again (it takes about 1-2 minutes for PM to load) * Try to log in on the same method you did before (by using Google, or by using your registered mailbox and password) Alternatively, you may switch the hosting of Proxy Manager to our [Cloud](https://brightdata.com/cp/lpm). We will take care of hosting and even load-balancing between several instances of Proxy Managers. P.S. After PM loads, the default browser should open automatically on PM's login page. If it does not, open your browser, browse 127.0.0.1:22999, and then try to log in. If you cannot log in to Proxy Manager, or If Proxy Manager cannot connect to Super Proxy (i.e. port status is not OK), check the following: * Make sure that VPN is not turned on * Make sure that there is no anti-virus or any other security software (such as 360, Norton, etc.) blocking traffic sent from Proxy Manager * Make sure that the firewall (OS / server / any other security software's firewall) allows TCP traffic through ports 22000-25000 * If the proxy manager software is installed on macOS/ Linux server - Verify that: * Node.js version is between 12.18.3 and 14.18.1 * NPM version is between 6.14.6 and 8.1.3 * If versions of NPM and Nodejs are not the one we're supporting - please remove them and install the versions that we specified. More information regarding Linux/Mac installation can be found at our [GitHub page](https://github.com/luminati-io/luminati-proxy/#linuxmacos---manual-install) When Using the Data center/ISP or gIPs products, the error code `400` can appear in case the IPs under your zone has been refreshed, removed, or simply changed due to system updates This error typically arises after your BrightData account has been recently suspended. An automatic suspension occurs if your account balance becomes negative. If the suspension extends beyond 24 hours, the static allocated IPs will be released from your account. Upon reactivation, the reallocated IPs may differ from the original ones, thus if the previously allocated IPs are still being targeted - this error is thrown. Whenever this error appear, you should go to your Bright Data Zones page, download the new list of IPs relevant to this zone. Make sure you also update the list of IPs in case you are using the proxy manager tool with prefix of IP port setup Example: ```sh Shell theme={null} curl --v "http://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--ip-1.1.1.1: ``` shell-example.png With Bright Data you can specify the geolocation and other parameters of the IPs you use for sending traffic. In Proxy Manager it's especially easy because it take only a few clicks. Depending on the zone you use you can request IPs only from a specific country (if you use Residential or Datacenter network) or additionally specific carrier (if you use Mobile network). **How to set targeting in Proxy Manager?** To get IPs from a specific location, follow these steps: * Click on the proxy port that you want to use location-specific IPs * Go to **Targeting** tab * Select country, state, city for choosing a peer in a specific geolocation * Select ASN or carrier name (only for mobile peers) Proxy Manager supports the following Bright Data products: Data Center Proxies, ISP Proxies, Residential Proxies, Mobile Proxies, Unlocker API, SERP API \ Proxy Manager does not support Browser API. We recommend that you run proxy manager on our cloud servers as a service for better experience. If you need to install it on your local machines use the following links. ### Windows [Download proxy manager installer for windows](https://github.com/luminati-io/luminati-proxy/releases/download/v1.519.10/luminati-proxy-manager-v1.519.10-setup.exe) ### Linux & MacOS `bash `Installer: ```sh theme={null} curl -L https://brightdata.com/static/lpm/luminati-proxy-latest-setup.sh | bash ``` `NPM `package installer: ```sh theme={null} sudo npm install -g @luminati-io/luminati-proxy ``` `Docker`image: ```sh theme={null} docker pull luminati/luminati-proxy ``` ### Source code [https://github.com/luminati-io/luminati-proxy](https://github.com/luminati-io/luminati-proxy) # Proxy Manager Integration Source: https://docs.brightdata.com/proxy-networks/proxy-manager/integration Integrate the open-source Bright Data Proxy Manager (default port 22999) with third-party apps. Run it as a local proxy server in any environment. ## Integrate with third party apps The Proxy Manager is an Open-Source project that can be installed in various environments and used as a proxy server in any application. Below are a few examples for which Proxy Manager can be used as the proxy server inside third party applications. Integrate with any third party app there is no need for username and password and it is ok to leave `username:password` empty aseach port in the Proxy Manager keeps the credentials of the used zone in it. ```js Example for port 24000 theme={null} IP:PORT:USERNAME:PASSWORD → 127.0.0.1:24000:[empty]:[empty] ``` ## Integrate to your phone 1. An Android and the machine using the Proxy Manager need to share the same WiFi connection 2. Proxy Manager port must allowlist the IP of the Android device 3. Go to the WiFi network configuration -> advanced -> manual proxy: * Proxy host: The IPv4 address of the machine with the Proxy Manager ```sh CMD theme={null} ipconfig ``` ```sh Shell theme={null} ifconfig ``` * Port: `24000` (or other port you created) 1. iPhone and the machine using the Proxy Manager need to share the same WiFi connection 2. Allowlist the iPhone IPv4 in the Proxy Manager under 'General'\ To find IPv4 follow these instructions: * Go to wifi settings * tap on the blue `i` icon next to your network's name * See your IP address 3. Open the Settings app and go to WiFi 4. Tap the name of the WiFi network you're connected to 5. Scroll to the bottom and you will find a section for HTTP Proxy. This is set to 'off' by default. Set it 'Manual' for manually configuring the proxy settings 6. In the server slot enter the IPv4 address of the server where the Proxy Manager is installed 7. In the port slot enter `24000` (or other port you create) ## Integrate with Puppeteer * Create a Zone with the network, IP type, and number of IPs you wish to use. * Install the Proxy Manager. * Click 'add new proxy' and choose the Zone and settings you require, click 'save'. * In Puppeteer, under the 'proxy-server', input your local IP and Proxy Manager port (i.e. `127.0.0.1:24000`) * The local host IP is `127.0.0.1` * The port created in the Proxy Manager is `24XXX`, for example, `24000` * Leave the `username` and `password` values empty, as the Bright Data Proxy Manager has already been authenticated with the Super Proxy. ```js Sample Code theme={null} const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false, args: ['--proxy-server=127.0.0.1:24000'] }); const page = await browser.newPage(); await page.authenticate(); await page.goto('https://brdtest.com/myip.json'); await page.screenshot({path: 'example.png'}); await browser.close(); })(); ``` ## Integrate with Selenium * Create a Zone with the network, IP type, and number of IPs you wish to use. * Install the Bright Data Proxy Manager. * Click 'add new proxy' and choose the Zone and settings you require, click 'save'. * In Selenium, under the setProxy, input your local IP and proxy manager port (i.e. `127.0.0.1:24000`) * The local host IP is `127.0.0.1` * The port created in the Proxy Manager is `24XXX`, for example, `24000` * Leave the username and password fields empty, as the Bright Data Proxy Manager has already been authenticated with the Super Proxy. ```js theme={null} const {Builder, By, Key, until} = require('selenium-webdriver'); const proxy = require('selenium-webdriver/proxy'); (async function example() { let driver = await new Builder().forBrowser('firefox').setProxy(proxy.manual({ http: '127.0.0.1:24000', https: '127.0.0.1:24000' })).build() try { await driver.get('https://brdtest.com/myip.json'); driver.switchTo().alert().accept(); } finally { await driver.quit(); } })(); ``` ## Integrate with Insomniac browser * Go to the **General** tab in the port settings * In the **Multiply proxy port** field select the number of proxy ports to create. This will create multiple proxy ports with the same settings * Your Spreadsheet Contains the following columns: * Custom Name: Add a name for each proxy * Host: `127.0.0.1` * Port: `24XXX` * `username`, `password`, and Tags: leave EMPTY Proxy Manager has already been authenticated with the Super Proxy * Save the file as a CSV and not as an XLS or XLSX * In Insomniac Proxy per tab extension select Manage Proxy list, and select Add bulk proxies Proxy Manager Integration * Select Import proxy list and upload the CSV file Proxy Manager Integration ## Integrate with Multilogin (MLA) * Within Multilogin click New browser profile * Click on Edit proxy settings * Under Connection Type choose Bright Data * Choose your protocol under Proxy Type * IP or Host: `127.0.0.1` if the Proxy Manager is installed locally or on the IP of the [remote server](https://brightdata.com/faq#pmgr-install-remote) the Proxy manager is installed on `1.1.1.1` or example.com * Port: the port you created in the Bright Data Proxy Manager `24XXX` * Leave the username and password field empty, as the Bright Data Proxy Manager has already been authenticated * Click on **Check proxy** Proxy Manager Integration ## Integrate with Playwright Proxy * Click 'add new proxy' and choose the Zone and settings you require, click 'save'. * In Playwright, under the 'server', input your local IP and Proxy Manager port (i.e. `127.0.0.1:24000`) * The local host IP is `127.0.0.1` * The port created in the Proxy Manager is `24XXX`. For example, `24000` * Leave the username and password values empty, as the Bright Data Proxy Manager has already been authenticated with the Super Proxy. * For example: ```js Sample Code theme={null} const playwright = require('playwright'); (async () => { for (const browserType of ['chromium', 'firefox', 'webkit']) { const browser = await playwright[browserType].launch({ headless: false; proxy: { server: '127.0.0.1:24000', username: '', password: '' }, }); const context = await browser.newContext(); const page = await context.newPage(); await page.goto('https://brdtest.com/myip.json'); await page.screenshot({ path: 'example.png' }); await browser.close(); } })(); ``` ## Integrate with Jarvee Proxy * In Jarvee, on the left-hand side, choose the 'Proxy Manager' Tab. * Click 'Add proxy' and under the 'Select Proxy IP: Port' column input the IP:Port (i.e. `127.0.0.1:24000`) * The local host IP is `127.0.0.1` * The port created in the Proxy Manager is `24XXX`, for example, `24000` * Leave the username and password field empty, as the Bright Data Proxy Manager has already been authenticated * Click 'Verify Proxy Link'. * Under 'Social Profiles', select the Jarvee profile you created and click the 'Add' button. Proxy Manager Integration ## Integrate with VMLogin Proxy Register and manage multiple online accounts using physical devices with VMLogin's virtual browsing profiles which helps enable anti-association capabilities as well as fingerprint protection. Manage multiple online accounts using physical devices with VMLogin's virtual browsing profiles which helps enable anti-association capabilities as well as fingerprint protection. Here is a step by step guide to integrate Bright Data with VMlogin: * Download and install VMLogin [here](https://vmlogin.us/?ref=luminati) (3 Days Free Trial) * Start by launching VMLogin and creating a new browser profile: * Click "Get random profile" * Select the settings that best suit you, such as operating system, screen resolution, language, WebGL vendor, time zone, media device fingerprint etc. # Introduction to Proxy Manager Source: https://docs.brightdata.com/proxy-networks/proxy-manager/introduction Control, monitor, and customize Bright Data proxies with the open-source Proxy Manager. Apply routing rules, integrate via API, or manage from the UI. Bright Data Proxy Manager is an application where you can control, manage, and monitor all of your proxies either from our app interface or via API. It is an advanced open-source application tool ([GitHub](https://github.com/luminati-io/luminati-proxy)) built by developers, for developers and allows unique proxy customization, rules implementation, and integration of external proxies. ## Best For: * Automating waterfalls between different [proxy products](https://brightdata.com/pricing/proxy-network?plan=yearly\&type=res_rotating) and IPs * Reducing Bandwith with rules that block certain types of data * Monitoring HAR logs with live preview of the whole traffic * User access management by allowlisting or generating API keys * Teams that are looking to customize and manage their proxy flows and infrastructure # Create Your First Proxy Manager Source: https://docs.brightdata.com/proxy-networks/proxy-manager/quickstart Get started with Bright Data Proxy Manager (default port 22999). Choose Cloud Server or On-Premise install, then configure your first managed proxy port. **Verify your account and get \$5 credit** Add a payment method to verify your account and receive a \$5 credit. You won’t be charged at this stage. Sign in to Bright Data} /> You take care of the installation, management, and monitoring * No installation or server setup necessary - Log-in straight to our [web app](https://brightdata.com/cp/zones/lpm) from anywhere * Managed end-to-end solution * Live server status monitoring by Bright Data's 24/7 team. To see further info on installation and setup see the [Introduction video](https://brightdata.com/webinar/how-to-start-using-the-bright-data-proxy-manager). * SSL analyzing support with OpenSSL and BoringSSL. BoringSSL is Bright Data's own implementation and provides additional unblocking value. Once Proxy Manager is installed, you can [log-in](https://brightdata.com/cp/zones/lpm) and start managing your proxies by [setting up ports](https://docs.brightdata.com/proxy-networks/proxy-manager/configuration#port-targeting-configuration) configured with your zone settings. Now you can [implement rules and headers](https://docs.brightdata.com/proxy-networks/proxy-manager/configuration#rules-and-headers-configuration) to customize your proxies to your needs. This will ensure a more cost-optimized usage of bandwidth and more accurate results. # Secure Your Proxy Manager Setup Source: https://docs.brightdata.com/proxy-networks/proxy-manager/security Best practices for securing your Bright Data Proxy Manager (default port 22999), including IP allowlisting, admin access control and API key-based auth. Ensuring the security of our products is crucial and remains a top priority for us. Our state-of-the-art architecture allows us to deliver you our Cloud hosted Proxy Manager with complete reliability and security and recommend this option for all of our customers. For those that need an **on-premise** option for proxy manager (which is not hosted by Bright Data), we have outlined below the security measures that we recommend and best practices for putting them to use. ## Block unwanted sources from using the Proxy Manager's ports Allowlist IPs on all your ports inside the Proxy Manager to ensure usage on those ports is only from allowed and wanted sources. While this feature is enabled, only the listed IPs will be allowed to send requests through the port with this configuration. Using this feature will ensure the bandwidth you pay for is consumed only by trusted sources. ## Block unwanted users from editing the Proxy Manager settings Allowlist admin access to ensure only authorized IPs can perform changes to your Proxy Manager settings. This will block the admin page and the [Proxy Manager's API](https://docs.brightdata.com/api-reference/proxy-manager/get_the_latest_proxy_manager_versions) when it is accessed from outside the server (where the Proxy Manager is hosted) from IPs which are not allowlisted. ## Authentication using API key If you are using multiple crawlers with changing IPs to send requests to remote Proxy Manager server you will need to generate an API key to use for authentication on the Proxy Manager: * Run Bright Data process from inside the server * From the Proxy Manager's server run in terminal/command line: ```sh theme={null} curl -X GET "http://127.0.0.1:22999/api/gen_token" -H "accept: application/json" ``` * You should be seeing the token response: ```js theme={null} "token": "API key" ``` After generating an API key you have two options: either use the API key to allowlist the new IP once when the crawler server is set up or include the API key in the proxy auth of each request: To make requests use the API key in the proxy auth use username "token" and the API key as the password, for example: ```sh theme={null} curl -x token:API_KEY@127.0.0.1:24000 "http://brdtest.com/myip.json" ``` To allowlist your new server IP so you don't need to send it in proxy auth: * Copy the API\_KEY from Proxy Manager server to new crawler server * Make this request from your new server: ```sh theme={null} curl [REMOTE_SERVER_IP]:22999/api/add_wip -X POST -H "Content-Type: application/json" -H "Authorization:[API_KEY]" -d '{"ip":"[CRAWLER_IP]"}' ``` * Your crawler ip is now allowlisted on the Proxy Manager This will not give access to the Proxy Manager's admin panel but only to send requests through the ports ## Local Network If you want to access Proxy Manager from a network where many people share the same IP then allowlisting IP is not strong enough for you. By allowlisting your IP you are giving an access to all the people from the same local network (corporate environments often look like that). Use `local_login` flag and Proxy Manager will require authentication from each browser separately and a newly generated API key will be stored in the cookies. ```sh Example theme={null} pmgr --local_login ``` # How to Configure Your Residential Proxy Source: https://docs.brightdata.com/proxy-networks/residential/configure-your-proxy Configure Bright Data Residential proxies (400M+ residential IPs): IP types, geolocation targeting, long-session peers, sticky IP duration and rotation. Start by going to the configuration tab of the proxy you want to configure. ## Which proxy type to choose **Choose one of four Proxy types (IPs types) for your proxy zone:** Rotating **IPv4** proxies worldwide, of real devices, worldwide. A combined pool or rotating **IPv4 & IPv6** proxies of real devices, worldwide. Our "Mega Pool". Rotating **IPv6** proxies worldwide, of real devices, worldwide. Sets of proxies with exclusive access to a set of specific domains, with minimal to no rotation at all. *** ## Selecting the right Residential proxies We offer 4 types of proxies on our Residential proxy netowrk: Shared proxies: 1. Shared IPv4 2. Shared IPv4+IPv6 ("Mega pool") 3. Shared IPv6 Dedicated proxies: 4. Dedicated residential proxies ## Residential network access Access to our residential network is subject to our access policy. Our dedicated and IPv6 proxies is only to customers who passed our KYC verfification process. For more information on access - see here: [Residential network access policy](https://docs.brightdata.com/proxy-networks/residential/network-access#residential-network-access-policy). ## Configuring Residential shared proxies (Rotating proxies) Bright data will automatically assign a new proxy for each of your requests. You can control the behavior of the shared proxies as well as rotation using control panel settings and proxy options which are relayed in the proxy username parameter. Most common setup is the Geolocation targeting allowing you to route your requests via proxies in specified location. You can select a default location - which will route all requests thru specific locations via our control panel. Best practice: set up a separate residential proxy zone, for each geolocation you wish to target. ### Geolocation resolution options Geolocation targeting allows you to target specific locations based on `country`,`city`, `state`, `zip code`, or `ASN`. Select the resolution from the drop-down menu in your geolocation settings: Geolocation Targeting ### Shared pool default countries' selection When selecting countries in shared pool configuration, we will assign proxies only from the locations you select. You can select none (which means we will assign the next random proxy from the pool), one or more countries. [Read more...](https://docs.brightdata.com/api-reference/proxy/geolocation-targeting#default-countries-selection) You can override the default selection or explicitly assign a specific country for your peer during rotation, use the flag `-country` in the proxy user name parameter with an ISO-3166 country code. [FAQ: Where can I see the list of country codes?](https://docs.brightdata.com/general/faqs#where-can-i-see-the-list-of-country-codes) *** ## How to configure IPv4+IPv6 Shared residential proxies: "Mega Pool" ### Introduction: IPv6 Bright Data now supports IPv6 on its residential network. Setup and use of IPv6 proxies is very similar to IPv4 proxies.  IPv6 (Internet Protocol version 6) is the most recent version of the Internet Protocol, designed to replace IPv4. It was developed to address the limitations of IPv4, particularly the exhaustion of available IP addresses. While IPv4 uses 32-bit addresses (allowing for about 4.3 billion unique IPs), IPv6 uses 128-bit addresses, enabling a virtually unlimited number of unique IP addresses, over 340 undecillion (3.4×10³⁸). What types of IPv6 Residential pools do we offer? Bright data offers two types of residential pools with IPv6 proxies: 1. Combined IPv4+IPv6: also called "Mega Pool", of shared rotating proxies 2. IPv6 only shared rotating proxies Bright Data currently does not offer IPv6 proxies in Datacenter or ISP networks. ### How big is IPv6 residential network? We now support IPv6 on our worldwide reliable residential proxy network. Approximately 150,000 peers are available, with new ones joining every week. The proxies are collated in our “rotating shared pool” of residential proxies.  ### What is IPv6 Access Policy? IPv6 proxies comply with residential network access policy.It is available only to selected customers who passed our KYC and are eligible to use this protocol over our Residential network.  ### Which options of Bright Data residential IPv6 proxies can I use? All our IPv4 options are supported, except the list below: | Targeting Option | Description | | :--------------- | :--------------------------------------------------- | | `gip` | No selected gIP targeting (group of residential IPs) | | `asn` | No ASN targeting | | `zip` | No ZIP code targeting | | `ip` | No explicit IP targeting | | `carrier` | No mobile carrier targeting | | `os` | No explicit operating system targeting | If you chose to relay those in your proxy username and your zone was set to IPv6, we will ignore them and process the request.  Full list of options can be found here: [https://docs.brightdata.com/proxy-networks/config-options](https://docs.brightdata.com/proxy-networks/config-options) ### What happens if I target IPv4 only host with IPv6 proxy? If you choose to target with IPv6 proxy an IPv4 only domain, which do not have an IPv6 address, your request will result in HTTP error 502, with Bright Data error header (x-brd-err-code): `target_40011`. You should retry the request with IPv4 proxy.  Full list of errors can be seen in our catalog, together with target\_40011 here: [https://docs.brightdata.com/proxy-networks/errorCatalog#target-40011](https://docs.brightdata.com/proxy-networks/errorCatalog#target-40011) ### Can I switching zone from IPv4 to IPv6 and vice versa? Yes. You can switch the zone from IPv4 to IPv6 and vice versa without any limitation. Once protocol version is chosen, it will impact all the proxies assigned to this zone and the selected protocol proxies will be assigned to relay your requests. ### Does the price of IPv6 traffic changes? IPv6 traffic is currently charged at the same rate as IPv4. In your bill we will calculate how much traffic was relayed by which protocol version and charge accordingly. You can switch your zone between IPv6 and IPv4 - Bright Data will calculate the traffic and bill accordingly.  ### Is there any change in access details or proxy credentials for IPv6? No. All access details and credentials are identical to IPv4: Host, port, username and password remain the same. If you provide a username with parameters which are not supported in IPv6 (listed above) they will be ignored. ### Can I use IPv6 to access Bright Data proxy services? No. We do not allow IPv6 to access our own proxy gateway: your accessing scraper or utility must connect to Bright Data using IPv4. Attempting to access with IPv6 will result in error. The error will be DNS related error stating that domain [brd.superproxy.io](http://brd.superproxy.io) could not be resolved. Example with curl call: ```sh theme={null} curl -i --proxy brd.superproxy.io:33335 --proxy-user brd-customer-*******-zone-residential_proxy21:********** "https://geo.brdtest.com/welcome.txt?product=resi&method=native" -g -6 ``` Response error: ```sh theme={null} curl: (5) Could not resolve proxy: [brd.superproxy.io](http://brd.superproxy.io) ``` #### Do I need to define allowlist and denylist in IPv6? No. Allowlist (whitelist) and denylist (blacklist) refer to the IP addresses you use to connect to Bright Data proxy services. Since we allow only IPv4 to connect to our proxy service from your side, settings remain in IPv4 even if the zone is IPv6. Those lists determine which IPs can/cannot send requests to the zone and remain as IPv4 IPs and ranges.  ## Configuring dedicated residential proxies access Our dedicated residential proxies are accessible **only** to customers who were verified by our compliance department (**Full mode**). Customers with "**Immediate access**" mode will see this option as **disabled** in our control panel. To read more about it visit: [https://docs.brightdata.com/proxy-networks/residential/network-access](https://docs.brightdata.com/proxy-networks/residential/network-access). ### IP Groups `gIPs` Only works with the **Dedicated** option `gIP` contains between 6-90 IPs at any given moment while sharing the same attributes, targeting the selected dedicated domains within the zone "Configuration" section. `gIPs` are used by Bright Data to create a single identifier for this group of proxies (with distinct IP addresses). Those proxies will be used explicitly by you towards the domains you target. Geolocation Targeting *** ### How to set dedicated domains Only works with the **Dedicated** option Define the domains you'd like your proxies to be exclusive to. Every request to a domain in this list is served thru your dedicated proxies exclusively. No one else is allowed to target those domains via your dedicated proxies. You can use this zone for requests to other target domains, yet those requests will be served thru our datacenter hosted Bright Data proxies. For example: if in the list you have two domains: a.com and b.com, every request to a.com and b.com are routed thru your dedicated proxies, request to c.com is routed thru our datacenter hosted proxy. Requests to a.com and b.com from others will **never** go thru your dedicated proxies. Domains *** ## How to configure advanced options ### Automatic failover for unavailable peers In case we cannot reach the proxy peer for your request, we will route the request to another available peer. Automatic failover does not apply when you choose default countries: if we cannot find a peer in the country you selected, we will fail the request with error. Enabling automatic failover assures execution of the request, regardless of the availability of a specific peer. #### Automatic failover when accessing target website which does not publish IPv6 address with IPv6 proxy To ensure continuity, we enable IPv6 to IPv4 automatic failover, which you can configure in the zone's advanced settings to either on or off (default: `ON`). When toggled "On" (default), in case your target website does not publish an IPv6 address, we will route the request via an available IPv4 proxy in the same location. If this toggle is not enabled, trying to access a target host without IPv6 address will result in an error: [https://docs.brightdata.com/proxy-networks/errorCatalog#target-40011](https://docs.brightdata.com/proxy-networks/errorCatalog#target-40011) *** ### Special Ports & Protocols Ports `80` and `443` are available by default, supporting HTTP and HTTPS & SOCKS5 protocols. We also support all ports over `1024` in our Datacenter proxy network. [Read more on ports and protocols...](https://docs.brightdata.com/proxy-networks/faqs#how-to-see-supported-ports-and-protocols) Bright Data can support additional ports by request. A dedicated and additional compliance process with the Bright Data compliance team will follow every request to support a new port. If you would like additional port permissions, you can contact Bright Data Support. Examples of ports that require Bright Data compliance review before activation: | Port | Protocol | | ---- | -------- | | `70` | HTTP | | `98` | HTTPS | ### Zone usage limit Set usage limit to your zone: you can limit spending or traffic. This provides additional layer of control to your budget and bandwidth consumption, mostly over our rotating shared pool proxies. # Residential products FAQ Source: https://docs.brightdata.com/proxy-networks/residential/faqs FAQs about Bright Data Residential proxies (400M+ residential IPs): IP types, country coverage, geotargeting, session control and common error codes. To integrate the proxies into your code, please visit the [API examples page](https://brightdata.com/cp/zones/proxy_examples), which can be accessed via your zone's settings, under "access parameters": integrate-new-proxy.gif On this page, you can choose integration examples for most modern coding languages, just choose the integration type, your proxy zone, coding language, etc. and the page will generate a code snippet you can use right away. Check out a few examples in the [API examples](https://brightdata.com/cp/zones/proxy_examples) page mentioned above (just choose "other software" in the "language" drop-down menu), or check our [Integrations page](https://docs.brightdata.com/integrations), where we have specific guides to integrate our proxies within the most popular tools across the industry today. **Important note**: If you are using Bright Data's Unlocker API, Residential Proxies or the SERP API you probably need to use our SSL certificate to enable end-to-end secure connections. See [instructions here](https://dashboard.mintlify.com/editor#how-to-integrate-a-proxy-into-3rd-party-software). We have prepared detailed guides for the most commonly used tools. You can find links to the guides in the list below: BrowserScan [https://docs.brightdata.com/integrations/browserscan](https://docs.brightdata.com/integrations/browserscan) XLogin [https://docs.brightdata.com/integrations/xlogin](https://docs.brightdata.com/integrations/xlogin) GeeLark [https://docs.brightdata.com/integrations/geelark](https://docs.brightdata.com/integrations/geelark) Puppeteer [https://docs.brightdata.com/integrations/puppeteer](https://docs.brightdata.com/integrations/puppeteer) Playwright [https://docs.brightdata.com/integrations/playwright](https://docs.brightdata.com/integrations/playwright) Selenium [https://docs.brightdata.com/integrations/selenium](https://docs.brightdata.com/integrations/selenium) AdsPower [https://docs.brightdata.com/integrations/adspower](https://docs.brightdata.com/integrations/adspower) Dolphin Anty [https://docs.brightdata.com/integrations/dolphin-anty](https://docs.brightdata.com/integrations/dolphin-anty) Incogniton [https://docs.brightdata.com/integrations/incogniton](https://docs.brightdata.com/integrations/incogniton) Marketerbrowser [https://docs.brightdata.com/integrations/marketerbrowser](https://docs.brightdata.com/integrations/marketerbrowser) SMLOGIN [https://docs.brightdata.com/integrations/smlogin](https://docs.brightdata.com/integrations/smlogin) Hidemyacc [https://docs.brightdata.com/integrations/hidemyacc](https://docs.brightdata.com/integrations/hidemyacc) OpenBullet [https://docs.brightdata.com/integrations/openbullet](https://docs.brightdata.com/integrations/openbullet) Switchyomega [https://docs.brightdata.com/integrations/switchyomega](https://docs.brightdata.com/integrations/switchyomega) PhantomBuster [https://docs.brightdata.com/integrations/phantombuster](https://docs.brightdata.com/integrations/phantombuster) BitBrowser [https://docs.brightdata.com/integrations/bitbrowser](https://docs.brightdata.com/integrations/bitbrowser) Maskfog [https://docs.brightdata.com/integrations/maskfog](https://docs.brightdata.com/integrations/maskfog) Ghost Browser [https://docs.brightdata.com/integrations/ghost-browser](https://docs.brightdata.com/integrations/ghost-browser) Postman [https://docs.brightdata.com/integrations/postman](https://docs.brightdata.com/integrations/postman) NGINX [https://docs.brightdata.com/integrations/nginx](https://docs.brightdata.com/integrations/nginx) StablerSOLO [https://docs.brightdata.com/integrations/stablersolo](https://docs.brightdata.com/integrations/stablersolo) VMLogin [https://docs.brightdata.com/integrations/vmlogin](https://docs.brightdata.com/integrations/vmlogin) GoLogin [https://docs.brightdata.com/integrations/gologin](https://docs.brightdata.com/integrations/gologin) Windows [https://docs.brightdata.com/integrations/windows](https://docs.brightdata.com/integrations/windows) Scrapy [https://docs.brightdata.com/integrations/scrapy](https://docs.brightdata.com/integrations/scrapy) AEZAKMI [https://docs.brightdata.com/integrations/aezakmi](https://docs.brightdata.com/integrations/aezakmi) Beautifulsoup [https://docs.brightdata.com/integrations/beautifulsoup](https://docs.brightdata.com/integrations/beautifulsoup) WebHarvy [https://docs.brightdata.com/integrations/webharvy](https://docs.brightdata.com/integrations/webharvy) Ubuntu [https://docs.brightdata.com/integrations/ubuntu](https://docs.brightdata.com/integrations/ubuntu) Lalicat [https://docs.brightdata.com/integrations/lalicat](https://docs.brightdata.com/integrations/lalicat) Multilogin [https://docs.brightdata.com/integrations/multilogin](https://docs.brightdata.com/integrations/multilogin) Undetectable [https://docs.brightdata.com/integrations/undetectable](https://docs.brightdata.com/integrations/undetectable) Apify [https://docs.brightdata.com/integrations/apify](https://docs.brightdata.com/integrations/apify) iPhone [https://docs.brightdata.com/integrations/ios](https://docs.brightdata.com/integrations/ios) MuLogin [https://docs.brightdata.com/integrations/mulogin](https://docs.brightdata.com/integrations/mulogin) Changedetection [https://docs.brightdata.com/integrations/changedetection](https://docs.brightdata.com/integrations/changedetection) Morelogin [https://docs.brightdata.com/integrations/morelogin](https://docs.brightdata.com/integrations/morelogin) Proxifier [https://docs.brightdata.com/integrations/proxifier](https://docs.brightdata.com/integrations/proxifier) Texau [https://docs.brightdata.com/integrations/texau](https://docs.brightdata.com/integrations/texau) Android [https://docs.brightdata.com/integrations/android](https://docs.brightdata.com/integrations/android) Kameleo [https://docs.brightdata.com/integrations/kameleo](https://docs.brightdata.com/integrations/kameleo) Screaming Frog [https://docs.brightdata.com/integrations/screaming-frog](https://docs.brightdata.com/integrations/screaming-frog) Foxy [https://docs.brightdata.com/integrations/foxyproxy](https://docs.brightdata.com/integrations/foxyproxy) SessionBox [https://docs.brightdata.com/integrations/sessionbox](https://docs.brightdata.com/integrations/sessionbox) Insomniac [https://docs.brightdata.com/integrations/insomniac](https://docs.brightdata.com/integrations/insomniac) Helium Scraper [https://docs.brightdata.com/integrations/helium-scraper](https://docs.brightdata.com/integrations/helium-scraper) SaleFreaks [https://docs.brightdata.com/integrations/salefreaks](https://docs.brightdata.com/integrations/salefreaks) Postern [https://docs.brightdata.com/integrations/postern](https://docs.brightdata.com/integrations/postern) Antik [https://docs.brightdata.com/integrations/antik](https://docs.brightdata.com/integrations/antik) Easync [https://docs.brightdata.com/integrations/easync](https://docs.brightdata.com/integrations/easync) ParseHub [https://docs.brightdata.com/integrations/parsehub](https://docs.brightdata.com/integrations/parsehub) Sphere Browser [https://docs.brightdata.com/integrations/sphere-browser](https://docs.brightdata.com/integrations/sphere-browser) Octoparse [https://docs.brightdata.com/integrations/octoparse](https://docs.brightdata.com/integrations/octoparse) ixBrowser [https://docs.brightdata.com/integrations/ixbrowser](https://docs.brightdata.com/integrations/ixbrowser) Shadowrocket [https://docs.brightdata.com/integrations/shadowrocket](https://docs.brightdata.com/integrations/shadowrocket) Firefox [https://docs.brightdata.com/integrations/firefox](https://docs.brightdata.com/integrations/firefox) Chrome [https://docs.brightdata.com/integrations/chrome](https://docs.brightdata.com/integrations/chrome) MacOS [https://docs.brightdata.com/integrations/macos](https://docs.brightdata.com/integrations/macos) ClonBrowser [https://docs.brightdata.com/integrations/clonbrowser](https://docs.brightdata.com/integrations/clonbrowser) Octo Browser [https://docs.brightdata.com/integrations/octobrowser](https://docs.brightdata.com/integrations/octobrowser) Genlogin [https://docs.brightdata.com/integrations/genlogin](https://docs.brightdata.com/integrations/genlogin) Web Scraper [https://docs.brightdata.com/integrations/webscraper](https://docs.brightdata.com/integrations/webscraper) If the integration you're using does not appear on the list and you would like to get a guide for it, contact us! When sending your request, add the `-country` flag, **after** your zone’s name in the request, followed by the 2-letter [ISO code](https://www.nationsonline.org/oneworld/country_code_list.htm) for that country. In the example below: We added `-country-us` to our request, so we will send a request originating from the United States ("us"). ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-us: ``` The allocation of a country within the EU is random. Relevant for DC, ISP, and Unlocker/SERP API You can target the entire European Union region in the same manner as "Country" above by adding "eu" after "country" in your request: -country-eu Requests sent using -country-eu, will use IPs from **one** of the countries below which are included automatically within "eu": ```text theme={null} AL, AZ, KG, BA, UZ, BI, XK, SM, DE, AT, CH, UK, GB, IE, IM, FR, ES, NL, IT, PT, BE, AD, MT, MC, MA, LU, TN, DZ, GI, LI, SE, DK, FI, NO, AX, IS, GG, JE, EU, GL, VA, FX, FO ``` In order to target a specific city you will need to use a [Shared (pay-per-IP)](/proxy-networks/data-center/configure-your-proxy#ip-type) or [Dedicated](/proxy-networks/data-center/configure-your-proxy#ip-type) proxy network. When configuring your proxy zone, after selecting your preferred country, you can add a city, to further specify your geotargeting add-city.png Once you click on **'Add city'** you will be displayed the available cities to target, for the selected country. In order to check the [number of available IPs](https://brightdata.com/cp/ips_availability) for a specific geolocation. Once configured, you'll be able to send requests from the selected city, using the following syntax ```sh theme={null} curl "http://target.site" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country--city-: ``` When selecting a two-word city it'll be written as one word. For example, when targeting Buenos Aires the syntax of the request will be: `-country-ar-city-buenosaires` To view more geotargeting examples, you may want to review our [proxy integration examples page.](https://brightdata.com/cp/zones/proxy_examples) Bright Data offers proxies in every country in the world, except in the following countries: * Iran * Iraq * Syria * Lebanon * Palestine * North Korea * Cuba * Sudan * Belarus * Russia If you need proxies from these countries, unfortunately Bright Data will not be able to help you. The event log will show you (at most) the last 200 requests you made with any zone in your account. In your Bright Data control panel's proxies page: [https://brightdata.com/cp/zones](https://brightdata.com/cp/zones) Go to the "Event Log" tab: event-log.png The presented data is: * **Date:** Time and date of the request * **Zone:** What Zone was used for the request * **Source IP:** What IP the request was made from * **URL:** The target site of the request * **Result:** Success or Fail of the request event-log-headers.png * This can be done by adding the `session` parameter to the proxy username: ```sh theme={null} brd.superproxy.io:33335 br-customer--zone--session-rand39484 ``` Generate the random number on thread startup, and change it when you want to change the Proxy Peer assigned for the thread's connection. * Session ID can be any random string/counter: requests with the same session string will use the same Proxy Peer (as long as possible); requests with different session strings will be assigned different Proxy Peers. - Using the following characters in the session ID will throw an error: `-` `"` \`\`\` - This feature is only available for our proxy products, it will **not** work for Scraping Automation products such as the Unlocker API * To force an IP change, just modify the session ID * If an assigned Proxy Peer (exit node IP) becomes unavailable, the Super Proxy will return an error "502 - No peers available" for the first request and then on the second request the super proxy will assign a new peer even if you do not change the session ID. * The Session IP is kept persistent for up to 5 minute of idle time. After 5 minutes with no requests, the IP is released back to the pool. To keep this Session/IP for longer, send a tiny keep-alive request every 30 seconds, to prevent this session from becoming idle for over a minute. This request may be anything small, such as /favicon.ico, or even a request that returns 404 (as long as the web server does not disconnect the socket due to this request). Bright Data allows targeting the following **Operating Systems**: ```sh Windows theme={null} curl --proxy-user brd-customer--zone--os-windows: --proxy brd.superproxy.io:33335 "" ``` ```sh macOS theme={null} curl --proxy-user brd-customer--zone--os-osx: --proxy brd.superproxy.io:33335 "" ``` ```sh Android theme={null} curl --proxy-user brd-customer--zone--os-android: --proxy brd.superproxy.io:33335 "" ``` When using Bright Data's Residential Proxy network, you may find the need to use a specific IP allocated to your zone. 1. **Send a test request** with a '--verbose' or '-v' option added (this will turn on verbose logging) ```sh theme={null} curl "https://brdtest.com/myip.json" --verbose --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` 2. **Locate** the x-brd-ip response header and copy its value x-brd-ip.png 3. **Add** the -ip- flag to your request, after your zone’s name and use the **hashed IP value** copied in the previous step 4. Send a test request, and **review the response** ```sh theme={null} curl "https://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--ip-: ``` We recommend using [https://brdtest.com/myip.json](https://brdtest.com/myip.json) as the target domain for testing, and to review your IP credentials. This feature can be enabled by adding the ASN parameter to your Zone configuration, under **Geolocation Targeting**. asn-targeting.png Once the configuration is saved, the ASN flag can be added to the Zone's credentials\ and be integrated when using the Residential proxies. For example: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--asn-: "" ``` **Note:** Values for ASN number can be found [here](https://bgp.potaroo.net/cidr/autnums.html). Dedicated residential IPs can be targeted in the form of [gIPs](/proxy-networks/residential/configure-your-proxy#ip-groups-gips). They can be allocated under the zone's configuration page by selecting a "Dedicated" IP type and choosing a number of gips. Also targeting a specific domain is required. number-of-dedicated-gIPs.png Once the configuration is saved, selecting "Show allocated Dedicated residential IPs" will provide a list of hash values that represent group IPs. show-allocated-dedicated-ips.png These values can be used to target a specific gip. For example: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--gip-: "" ``` **When outside of China**\ Targeting Chinese Residential IP peers is enough: ```sh theme={null} curl --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone--country-cn: "" ``` * You can choose to use a specific carrier from this list: ```text theme={null} a1, aircel, airtel, att, celcom, chinamobile, claro, comcast, cox, digi, dt, docomo, dtac, etisalat, idea, meo, mtn, mtnza, optus, orange, qwest, reliance_jio, robi, sprint, telefonica, telstra, tmobile, tigo, tim, verizon, vodacomza, vodafone, vivo, zain, vivabo, telenormyanmar, kcelljsc, swisscom, singtel, asiacell, windit, cellc, ooredoo, drei, umobile, cableone, proximus, mobitel, o2, bouygues, free, sfr, digicel ``` * For Example ```sh Deutsche Telekom theme={null} brd-customer--zone--carrier-dt ``` ```sh Sprint theme={null} brd-customer--zone--carrier-sprint ``` #### For single-step scraping: [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) is the ideal product for targeting SERPs as it has a guaranteed success rate (pay only for success) with active unlocking, automatically chooses the best proxies, customizes headers, fingerprinting, solves CAPTCHAs, and more. #### For multi-step scraping (playwright/puppeteer/selenium): [Browser API](https://docs.brightdata.com/scraping-automation/scraping-browser/introduction) is the ideal product as it is our fully cloud-hosted browser designed to help you easily focus on your multi-step data collection while we take care of the full proxy and unblocking infrastructure for you, including CAPTCHA solving. **Residential Proxy** - No, [SERP API](https://docs.brightdata.com/scraping-automation/serp-api/introduction) is the ideal product for targeting SERPs as it has a guaranteed success rate (pay only for success) with active unlocking, automatically chooses the best proxies, customizes headers, fingerprinting, solves CAPTCHAs, and more. Targeting Google SERPs from the Residential network will result in Super-proxy bypass, which will casue the request to be sent from our servers instead of the peer. **Datacenter & ISP Proxies** - No. When attempting to specifically target Google through either of these proxy networks, your request will be denied and you will receive the following error message in the response headers: ```text theme={null} HTTP/1.1 403 Search engine host is not allowed X-Luminati-Error: Forbidden: This target URL isn't supported on proxy networks, use the SERP API product for targeting this URL. You may contact your account manager or open a support ticket for assistance ``` When targeting search engines through the Residential or Mobile networks, the request will not go through the Residential or Mobile peer but instead will be sent directly through one of our super proxies. The reason for this behavior is to support the integration of the Residential and Mobile networks with a browser, which might need to load search engine resource endpoints from the target website. **In case you target a search engine domain using Residential or Mobile networks, the request will be passed directly through the super proxy, and the following response header will serve as an indication:** ```sh theme={null} x-brd-ip: superproxy bypass ``` Bright Data does not allow to see an open text version of your Residential and Mobile IP addresses. Datacenter and ISP Proxy IPs are open in clear text format.  When you send a request, in the reply header, you will see a reply header of `x-brd-ip` . This reply header includes a unique hash which represents the IP address you used for this request.  # Introduction to Residential Proxies Source: https://docs.brightdata.com/proxy-networks/residential/introduction Bright Data Residential proxy network: 400M+ monthly residential IPs from 195+ countries for browsing and data collection as a real user. Bright Data’s [Residential proxy network](https://brightdata.com/proxy-types/residential-proxies) is one of our core proxy solutions, offering access to **400M+ monthly residential IPs** distributed across **195+ countries worldwide**. Unlike datacenter-based proxies, Residential proxies route traffic through **real devices owned by real users** who have explicitly opted in and are compensated for participating in the network. This opt-in model enables you to access websites using **authentic local IPs**, making your traffic appear as if it originates from genuine residential users in the target location. Because requests are delivered through real residential connections, this network is particularly effective for accessing **sophisticated or highly protected websites** that actively block automated or non-residential traffic. As a result, you can browse websites, view localized content, or collect data in a way that closely mirrors how a real person would experience the site. ## How Residential Proxies Work When you send a request through the Residential proxy network, Bright Data routes that request through a **real residential device** located in your chosen target region. Behind the scenes, Bright Data Residential proxies automatically: * Selects an appropriate residential IP from the target location * Manages IP availability and rotation * Maintains session stability when required * Handles network-level reliability and scaling Because the request originates from a real household or mobile connection, websites perceive the traffic as coming from a genuine end user rather than an automated system or server-based proxy. ## Key Advantages of Residential Proxies Residential proxies provide several advantages over other proxy types: * **Higher success rates** on websites with strict anti-bot or anti-scraping defenses * **Access to localized content** such as regional pricing, language variations, and geo-restricted pages * **Reduced risk of blocks** compared to datacenter-based traffic * **Scalable infrastructure** that supports both small and enterprise-scale workloads These benefits make residential proxies a strong choice for production-grade data collection and web access use cases. ## When to use Residential proxies Residential proxies are particularly well suited for: * Browsing and interacting with sophisticated websites as a real user * Business intelligence, market research, and competitor monitoring * Ad verification and brand protection across different regions * Price comparison and product availability tracking * Scenarios where Datacenter or ISP proxies result in low success rates or frequent blocks If you are currently experiencing access issues with [Datacenter proxies](https://docs.brightdata.com/proxy-networks/data-center/introduction) or\ [ISP proxies](https://docs.brightdata.com/proxy-networks/isp/introduction), switching to Residential proxies can significantly improve reliability. ## Geographic Coverage and Targeting The Residential proxy network supports **fine-grained geographic targeting**, allowing you to route traffic through IPs based on: * Country * State or region (where supported) * City * ZIP code (United States only) * ASN and carrier (depending on proxy configuration) This level of targeting enables highly accurate localization for testing, data collection, and content verification use cases. ## Ethical and Compliant Network Model Bright Data’s Residential proxy network is built on an **explicit opt-in model**. Participants: * Are informed about how their IPs are used * Provide consent through approved applications * Are compensated for their participation This model ensures compliance with data protection regulations and promotes responsible, transparent use of residential IPs. If you need a **fully managed unblocking solution** that goes beyond IP-based access, handling site-specific headers, cookies, CAPTCHAs, JavaScript challenges, and retries automatically,consider using the [Unlocker API](https://docs.brightdata.com/scraping-automation/web-unlocker/introduction). You can also explore our full range of [proxy products](https://brightdata.com/proxy-types) to find the best solution for your workflow. # Residential Network Access Policy Source: https://docs.brightdata.com/proxy-networks/residential/network-access How Bright Data monitors Residential proxy traffic (400M+ IPs) for compliance. Compares Immediate Access and Full Access modes with approved use cases. Bright Data offers two distinct modes for accessing its Residential network: Begin targeting with our Residential network immediately after sign up, without the need for KYC Expand your Residential network access for your approved use case by completing KYC On initial setup of your Residential proxy, by default you are given [**Immediate access**](https://docs.brightdata.com/proxy-networks/residential/network-access#immediate-access) and can get started targeting a wide range of domains right away. If during your initial targeting you encounter a [402 Residential Failed (bad\_endpoint)](https://docs.brightdata.com/proxy-networks/errorCatalog#http-error-402) or `robots.txt` error, you will need to request [**Full access**](https://docs.brightdata.com/proxy-networks/residential/network-access#full-access), which can be granted once we get to know you and your use case better through [KYC](https://brightdata.com/cp/kyc). ## How immediate access works An [SSL certificate](https://docs.brightdata.com/general/account/ssl-certificate) must be installed on your device when accessing our Residential network with *Immediate access*. * Access a wide range of domains without KYC, under the following limitations: * Domains restricted by their own 'robots.txt' rules. * Domains restricted by Bright Data’s compliance policy for Immediate access. * Use of certain HTTP methods (POST, PUT, DELETE) is not permitted. * Automatic throttling may be applied if request volume exceeds acceptable thresholds (`status code: 502`, `error: sr_rate_limit`). * Note: Attempting to access restricted domains or methods will result in a `402 Residential Failed (bad_endpoint)` error and you'll need to apply for [Full access](https://docs.brightdata.com/proxy-networks/residential/network-access#full-access) mode instead. Completing [KYC](https://brightdata.com/cp/kyc) removes the above restrictions and automatically grants you **Full access** to domains under the Residential network, tailored to your approved use case. ### Secure and Ethical Usage Our SSL certificate ensures compliance with Bright Data's ethical guidelines while providing secure encryption. Since Immediate Access does not require KYC, the SSL certificate acts as an added layer of assurance, enabling Bright Data to enforce compliance and safeguard the ethical use of our Residential network. This ensures that the network is used responsibly while protecting both users and our infrastructure. If you don't install our SSL certificate, your requests may be rejected with security errors like "SSL/TLS handshake failure" or "certificate validation error", indicating an insecure connection. While you can bypass and ignore SSL errors, this is not recommended as it compromises your long-term security. By installing the SSL certificate, you can immediately start using the Residential network with minimal friction, while enjoying the peace of mind that your traffic is handled ethically and securely. Installing an SSL certificate may sound daunting, but it’s a quick, secure, and one-time setup process that unlocks Immediate Access. Here’s why it’s worth considering: ### Temporary and Limited Data Handling Bright Data accesses minimal data (e.g., web pages visited, access times) only for troubleshooting and compliance purposes. This data is stored temporarily and is not shared with third parties, except where legally required. ### Privacy-Focused Approach We prioritize your privacy above all else. Learn more in our [Privacy Policy](https://brightdata.com/privacy) ### Still prefer not to install an SSL certificate? If you prefer not to install an SSL certificate, you can complete the [KYC process](https://brightdata.com/cp/kyc) to unlock Full Access, eliminating the need for SSL while enabling broader network capabilities. `robots.txt` is a file that website owners use to define which areas of their site can be accessed by automated systems. In **Immediate access** mode, Bright Data adheres to these rules to ensure ethical compliance. Requests to blocked areas will return a `402 Residential Failed (bad_endpoint)` error. For unrestricted **Full access**, complete [KYC](https://brightdata.com/cp/kyc). Our dedicated residential proxies are available only to customers who complete our verification process. In Bright Data control panel, when you add a residential proxies zone, under "Proxy type" selection, the "Dedicated" proxies will appear disabled until you pass our verification process. You can use our "Shared" residential proxies in immediate access mode, after installing our certificate or ignoring SSL errors. ## How to unlock full access * After completing [KYC](https://brightdata.com/cp/kyc), you will have Full Access to the Residential network, tailored to your approved use case. * Allows the use of HTTP methods in your request * SSL certificate is **not** required * The option to submit a KYC form is only open to customers that signed up on behalf of a registered company. You will be required to add a user with a company email domain to your account and submit a company registration document during the process. ## FAQ: What is Bright Data KYC (Know Your Customer) verification process? * Our KYC (“Know Your Customer”) process is a mandatory step for all new customers who wish to join our residential proxy network or gain special access rights. * The purpose of this stage is to ensure that we maintain the highest possible compliance and ethics standards by verifying your business and use case. * If you were asked to complete the process that means you requested access to our residential network or require a special access right that is not allowed by default in Bright Data. To complete KYC, you’ll need to submit details about your yourself and your scraping use case to verify eligibility by our Compliance team. This process removes the need for an SSL certificate and unlocks access to sites not pre-approved in Immediate Access. Start the KYC process below: [Start KYC Verification](https://brightdata.com/cp/kyc) The KYC process is not available in [Playground](https://docs.brightdata.com/general/faqs#what-is-playground-mode)/[Limited Trial](https://docs.brightdata.com/general/faqs#what-is-limited-trial-mode) modes. The process can be started only after adding real funds to the account balance. * Completing the form should only take a few minutes. * Once submitted, the Bright Data Compliance team validates the information in the submission and the KYC undergoes our compliance review. * You can see the status of your request in your Bright Data control panel, under Account Settings > Profile. * We will update you in up to 48 hours from the time of completing the process regarding your KYC status. * You can check out the status of your KYC process at any time in your control panel. A notification regarding the submission of your KYC and approval or decline of your request will be sent to your email once the process is completed. * The status will be under Settings -> Profile , showing "Account verification status" * On initial setup of your Residential proxy, by default you are given Immediate access to the residential network and can get started targeting a wide range of domains right away. * If during your initial targeting you encounter a 402 Residential Failed (bad\_endpoint) or robots.txt error, you will need to request Full access, which can be granted once we get to know you and your use case better through KYC. The KYC information is documented in our systems to allow us to review your use case if needed in the future. Although we want to make it a one-time process, we also monitor our network 24/7 and we may reach out to you for additional clarifications or information in order to make sure that our network remains safe. Bright Data accepts KYC applications from registered businesses with a company domain. To submit a KYC request, please ensure you verify a company email address. The KYC process requires some basic information about your business, such as a description of your use case and general contact information. The more information we have about your business and your use case the easier it will be for our Compliance & Ethics team to evaluate and approve your request. We may require further clarification, validation, or identification, so if needed we will follow up accordingly once you complete the KYC. In accordance with our verification process, we may request a valid form of identification, such as a driver's license, passport, or other government-issued ID, to verify the identity of the point of contact. This measure helps ensure the safety and integrity of our network. As our IP addresses are linked to 100% real peers, verifying identities is an essential part of our commitment to maintaining a secure and reliable network environment. We may request a brief video call to verify additional information about your business or intended use case. This step ensures our compliance with policy and ethical standards during the review process. A company registration form (also referred to as a “Certificate of incorporation”) is used by government offices as proof of registering new businesses. The form usually contains the company's official information, including the company's formal name, registered office address, company registration unique identifier, and more. The form is usually available to the company legal counsel, financial department, or similar and can be publicly shared as part of the company's routine business activity as proof of registration according to local regulations. * You can use all our other products and services while your KYC request is being processed. * If your KYC was not approved you may still use one of our other products and services according to Bright Data's [license](https://brightdata.com/license). * In the call, we would like to make sure we support your needs as best as possible, by learning more about your company and your activities, understanding your use case and specific requirements, and viewing relevant systems and workflow. * Our verification process requires vetting a company website and an active online presence. If you have any other form of online presence besides LinkedIn (like a portfolio, GitHub, or alternative business profiles), please share those when submitting your application. * If you were requested to do a video call, it is a mandatory step. It helps us verify your identity and clearly understand your use case. Without completing the call, we won't be able to grant you access to the residential network. * No. Bright Data is a B2B platform. We only support business-related use cases. If your project is personal (like scraping for a hobby or side project), it won’t be approved. * For Acceptable Use Policy please refer to our [Acceptable Use Policy](https://brightdata.com/acceptable-use-policy). * You should expect an update from us within 48 hours from the time of the KYC submission. If it's been longer, you can check the status in your Control Panel under Account Settings > Profile, or reach out to your account manager or our support team. # Create Your First Residential Proxy Source: https://docs.brightdata.com/proxy-networks/residential/quickstart Set up your first Bright Data Residential proxy: sign in, create a proxy in the Control Panel, verify your account and earn $5 credit for first-time setup. **Verify your account and get \$5 credit** Add a payment method to verify your account and receive a \$5 credit. You won’t be charged at this stage. Sign in to Bright Data} /> Open the Create Proxy page}> Navigate to **Create Proxy** under the **Proxy** section in the left menu. Create Proxy Select **Residential Proxy** and click **Continue**. Residential Proxy Enter a meaningful name. Optionally, add a short description. **The proxy name cannot be changed once created.** All other settings can be modified later. For details, see [Configure your Proxy](/proxy-networks/residential/configure-your-proxy). Proxy Name If you signed up with a personal email (e.g., Gmail, GitHub) and have not yet added a payment method, the primary button will read **Add payment method** instead of **Create Proxy**. Click the button to open the payment verification form and complete the process. You will **not** be charged, this is for identity verification only. Already have a payment method on file? This step is skipped automatically. For full details, see [Payment Verification](/general/account/billing-and-pricing/payment-verification). Click **Create Proxy**. If you were redirected to add a payment method, your zone is created automatically once verification completes. Your proxy is now ready to use. # Send your first Residential proxy request Source: https://docs.brightdata.com/proxy-networks/residential/send-your-first-request Send your first request through Bright Data Residential proxies with copy-paste code examples in cURL, Python, Node.js, Java, and Go. 1. Residential Proxy 2. Mobile Proxy 3. ISP Proxy 4. Datacenter Proxy 5. SERP API 6. Browser API 7. Unlocker API To get started, you need your proxy credentials, your `Username` and `Password` along with the `Host` name. You can find these credentials in the **Overview** tab of the proxy product. ## Code Examples Once you have your proxy credentials, use the following code to send your first request: ```sh cURL theme={null} curl "http://brdtest.com/myip.json" --proxy brd.superproxy.io:33335 --proxy-user brd-customer--zone-: ``` ```javascript Node.js theme={null} #!/usr/bin/env node require('request-promise')({ url: 'http://brdtest.com/myip.json', proxy: 'http://brd-customer--zone-:@brd.superproxy.io:33335', }) .then(function (data) { console.log(data); }, function (err) { console.error(err); }); ``` ```python Python theme={null} import pprint import requests host = 'brd.superproxy.io' port = 33335 username = 'brd-customer--zone-' password = '' proxy_url = f'http://{username}:{password}@{host}:{port}' proxies = { 'http': proxy_url, 'https': proxy_url } url = "http://brdtest.com/myip.json" response = requests.get(url, proxies=proxies) pprint.pprint(response.json()) ``` ```php PHP theme={null} -zone-:'); curl_exec($curl); ?> ``` ```ruby Ruby theme={null} #!/usr/bin/ruby require 'uri' require 'net/http' require 'net/https' puts 'To enable your free eval account and get CUSTOMER, YOURZONE and YOURPASS, please contact sales@brightdata.com' uri = URI.parse('http://brdtest.com/myip.json') proxy = Net::HTTP::Proxy('brd.superproxy.io', 33335, 'brd-customer--zone-', '') req = Net::HTTP::Get.new(uri) result = proxy.start(uri.host,uri.port, :use_ssl => uri.scheme == 'https') do |http| http.request(req) end puts result.body ``` ```cs C# theme={null} using System; using System.Net; class Example { static void Main() { var client = new WebClient(); client.Proxy = new WebProxy("brd.superproxy.io:33335"); client.Proxy.Credentials = new NetworkCredential( "brd-customer--zone-", "" ); Console.WriteLine(client.DownloadString("http://brdtest.com/myip.json")); } ``` ```java Java theme={null} package example; import org.apache.http.HttpHost; import org.apache.http.client.fluent.*; public class Example { public static void main(String[] args) throws Exception { System.out.println("To enable your free eval account and get " +"CUSTOMER, YOURZONE and YOURPASS, please contact " +"sales@brightdata.com"); HttpHost proxy = new HttpHost("brd.superproxy.io", 33335); String res = Executor.newInstance() .auth(proxy, "brd-customer--zone-", "") .execute(Request.Get("http://brdtest.com/myip.json").viaProxy(proxy)) .returnContent().asString(); System.out.println(res); } } ``` ```perl Perl theme={null} #!/usr/bin/perl print 'To enable your free eval account and get CUSTOMER, YOURZONE and ' .'YOURPASS, please contact sales@brightdata.com'; use LWP::UserAgent; my $agent = LWP::UserAgent->new(); $agent->proxy(['http', 'https'], "http://brd-customer--zone-:\@brd.superproxy.io:33335"); print $agent->get('http://brdtest.com/myip.json')->content(); ``` ```vb VBA theme={null} Imports System.Net Module Module1 Sub Main() Console.WriteLine("To enable your free eval account and get " & "CUSTOMER, YOURZONE and YOURPASS, please contact " & "sales@brightdata.com") Dim Client As New WebClient Client.Proxy = New WebProxy("http://brd.superproxy.io:33335") Client.Proxy.Credentials = New NetworkCredential("brd-customer--zone-", "") Console.WriteLine(Client.DownloadString("http://brdtest.com/myip.json")) End Sub End Module ``` The code above uses the residential proxy to send a request to [http://brdtest.com/myip.json](http://brdtest.com/myip.json). It returns your IP information in a JSON format: ```json Output theme={null} { "ip": "ALLOCATED_IP", "country": "PK", "asn": { "asnum": 203020, "org_name": "HostRoyale Technologies Pvt Ltd" }, "geo": { "city": "Islamabad", "region": "IS", "region_name": "Islamabad", "postal_code": "44040", "latitude": 33.7233, "longitude": 73.0435, "tz": "Asia/Karachi", "lum_city": "islamabad", "lum_region": "is" } } ``` Now, replace “[https://brdtest.com/myip.json”](https://brdtest.com/myip.json”) with the website of your choice and ... **That's it!** # SOCKS and SOCKS5 Proxies Source: https://docs.brightdata.com/proxy-networks/socks5 Use the SOCKS5 protocol with Bright Data Datacenter, ISP, Residential and Mobile proxy networks. Includes connection examples and authentication methods. ## Supported SOCKS Protocols Bright Data supports SOCKS protocol version 5: `SOCKS5`. ## Using SOCKS5 for your scraping tasks The most common protocols for internet data collection are `HTTP` and `HTTPS`, some of the tools or utilities require `SOCKS5` for their operations. In Bright Data, we do not distinguish between `HTTP` , `HTTPS` and [`SOCKS5 proxies`](https://brightdata.com/solutions/socks5-proxies): all our proxies support all three protocols. You can switch between protocols while using the same proxy. ## Do you really need SOCKS5? Our `HTTP` and `HTTPS` proxy solutions are usually the best fit for scraping websites, offering lowest cost and highest performance. However, if the the task still requires `SOCKS5` Bright Data can provide quality proxies around the globe. ## Supported Proxy types & HTTP protocols `SOCKS5` proxy connections are supported on all Bright Data proxy networks: Datacenter, ISP, Residential and Mobile. Bright data support HTTP/S version 2.0 only via SOCKS. We do not support tunneling HTTP/2 versiob 3.0 via SOCKS. Using `SOCKS5` over Bright Data **Residential proxy** is supported only towards `HTTPS` targets, `HTTP` targets will be supported soon. ## SOCKS5 Main proxy port configuration **`Bright Data uses port 22228 for SOCKS5`** When using `SOCKS5` make sure to use `brd.superproxy.io:22228` and not the standard port [`33335`](https://docs.brightdata.com/general/faqs#which-port-shall-i-use-22225-or-33335) for `HTTP` and `HTTPS` protocols. ## SOCKS5 targeting with Bright Data **Bright Data supports only hostnames (domain names) for SOCKS5 proxies** Per our compliance regulation, we allow `SOCKS5` requests **only** with hostnames/domain names relayed as target. Requests sent with explicit IPs or local IP resolution, are **blocked**. Hence, configure your code, client or calling application to: 1. Use domain name as target 2. Resolve DNS remotely and not locally Adhering to those rules will ensure the request to get to the target domain IP, thru our proxy peer. ### Which target ports to use #### Datacenter & ISP Bright Data supports all ports higher than `1024` for datacenter and ISP proxies. #### Residential & Mobile Bright Data supports ports: `8080`, `8443`, `5678`, `1962`, `2000`, `4443`, `4433`, `4430`, `4444` and `1969` for Residential & Mobile proxies. ## Using SOCKS5 with `curl`, `Javascript` & `Python` **`Use socks5h://brd.superproxy.io:22228 when issuing curl requests`** To use `curl` with Bright Data SOCKS5 proxies, you have to explicitly: 1. Add `-x` to your command line parameters 2. Use SOCKS5h protocol for remote DNS lookup 3. Use proxy address as `brd.superproxy.io:22228` 4. Provide Bright Data proxy zone credentials 5. **Residential and Mobile proxies**: Add curl `-k` option to ignore SSL errors proxies or [Setup SSL Certificate](https://docs.brightdata.com/general/account/ssl-certificate#using-the-ssl-certificate-in-your-code) Requests which do not comply with all the above are blocked. Examples `curl` command: ```bash theme={null} curl -i -k -x socks5h://brd.superproxy.io:22228 --proxy-user [USERNAME]:[PASSWORD] "https://geo.brdtest.com/welcome.txt" ``` Example code for `SOCKS5` request: ```javascript theme={null} // install https://www.npmjs.com/package/socks-proxy-agent const https = require('https'); const { SocksProxyAgent } = require('socks-proxy-agent'); const user_pass = 'brd-customer-[ACCOUNT ID]-zone-[ZONE NAME]:[ZONE PASSWORD]'; const socks_proxy_url = `socks5h://${user_pass}@brd.superproxy.io:22228`; const agent = new SocksProxyAgent(socks_proxy_url); https.get('https://geo.brdtest.com/welcome.txt', {agent}, res=>res.pipe(process.stdout)); ``` Example code for `SOCKS5` request: ```python theme={null} # https://docs.python-requests.org/en/latest/user/advanced/#socks import requests user_pass = 'brd-customer-[ACCOUNT ID]-zone-[ZONE NAME]:[ZONE PASSWORD]' socks_proxy_url = f'socks5h://{user_pass}@brd.superproxy.io:22228' resp = requests.get('https://geo.brdtest.com/welcome.txt', proxies=dict(http=socks_proxy_url, https=socks_proxy_url)) print(resp.text) ``` ### Troubleshooting with `curl` We recommend using `curl` to troubleshoot your `SOCKS5` requests, and adding `curl` options `-i` or `-v` for printing header fields. Look for `x-brd-error`, `x-brd-err-code` and `x-brd-err-msg` for elaborated error messages sent by Bright Data proxy networks. To see our full error catalog (for `HTTP` and `HTTPS` as well) visit this page: [Proxy errors troubleshooting](https://docs.brightdata.com/proxy-networks/errorCatalog) ## SOCKS5 Authentication configuration **Bright Data must receive proxy zone credentials to access SOCKS5 proxy** The authentication is done also similarly to `HTTP` and `HTTPS` by relaying the user and password for the proxy access. Some tools or utilities will give you place to input the credentials and port separately as parameters, as seen in the control panel, and some will require you to provide a url with the credentials delimited single parameter: `userName:password@brd.superproxy.io:22228`. ## SOCKS5 Geo-location & country selection Location setting is identical to [HTTP/HTTPS proxies geo-targeting](https://docs.brightdata.com/proxy-networks/config-options) and is set by adding `-country-[country code]` to your SOCKS5 username. Example for `curl` command to get a SOCKS5 proxy in Italy (country code: `it`): ```bash theme={null} curl -i -k -x socks5h://brd.superproxy.io:22228 --proxy-user [proxy zone user]-country-it:[zone password] "https://geo.brdtest.com/welcome.txt" -v ``` ## Difference between SOCKS5 and SOCKS5h The difference between **SOCKS5** and **SOCKS5h** lies in how they handle DNS (Domain Name System) resolution: 1. **SOCKS5**: In the standard SOCKS5 proxy, the **client** resolves the DNS. This means that the domain name (e.g., `example.com`) is resolved into an IP address **before** it is passed through the proxy. The proxy then routes traffic to the resolved IP address. 2. **SOCKS5h**: The "h" stands for "hostname." In this case, the **proxy** server resolves the DNS. The client sends the domain name (not the IP address) to the proxy server, which resolves it and forwards the request. This is useful if you want to hide the destination domain names from the client's network. To summarize: * **SOCKS5**: DNS resolution happens on the**client-side**. * **SOCKS5h**: DNS resolution happens on the **proxy-side**. Bright Data supports **proxy side** SOCKS5h only. # Overcoming website blocking Source: https://docs.brightdata.com/proxy-networks/website-blocking Troubleshoot 4xx and 5xx blocking on Bright Data proxies: read network errors, identify block types and apply rotation, headers and Unlocker fixes. The first step for troubleshooting your error is checking the entire network error response - It could contain critical information regarding the origin of the error and possibly instructions for resolving it. To analyze the entire response you can run a `curl` command from your shell prompt and add the option flag `-v` or `-i`. These flags will run curl in verbose mode and print out the header fields ```bash theme={null} curl -v [rest of curl command options] ``` ## How to avoid blocks ### How to choose IPs The main things to consider for IPs are: * Geolocation: it's generally best to match the peer country to the country of the target. Using more specific targeting can also help: City is more specific than State, and State more specific than country * Pool type: using Shared IPs can be a cost saving measure if the target isn't sensitive to multiple requests from the same IP. If the target is sensitive to that, using Dedicated IPs can help. * Quality: Bright Data offers 4 'normal' proxy networks, in addition to our Automated Scraping Solutions. These are listed below in order of increasing difficulty to detect: Data Center - ISP - Residential - Mobile If one of these networks is consistently blocked, trying the next one down in the list may help get past the blocking. * Consistency: for single-URL scrapes, you should generally be rotating the IP frequently to avoid rate limits. If you're trying to emulate a real user, the tips in the section below can help keep the IP consistent. ### How to manage sessions * If you're trying to mimic a real user, you should use the session ID username parameter: [Proxy and IP Rotation control](https://docs.brightdata.com/api-reference/proxy/rotate_ips#using-the-same-proxy-for-multiple-requests-session) This tells us that for a request with the same ID, you want to keep the same IP for the request. Doing this allows you to appear more like a normal user when using rotating networks like Residential and Mobile. * If your use-case is single scrapes, you might still want to use this parameter, but in a different way: When the ID changes, that tells us that you want to use a different IP than the last one. Iterating over multiple IDs within 60 seconds will allow you to rotate through your allocated IPs. ### Request Method / Fingerprint * Request Method: "Normal users" will typically use a browser to access websites. You can integrate the proxies into a regular browser, either directly or via our extension (available [here](https://chrome.google.com/webstore/detail/bright-data/efohiadmkaogdhibjbmeppjpebenaool?hl=en)). If you're using a different integration, like browser automation, or direct API requests, it's important to keep this in mind and make your requests look as much like a real browser as possible to avoid detection. * Fingerprint: Part of looking like a real user is the headers and cookies you send with the request, but another part is having the same attributes that a real browser would have. You can find many resources online about this, and we also offer the Unlocker API and Browser API, which manage all of this on your behalf. ## When to use an automated solution Should you find that none of our proxy solutions (Datacenter, ISP, Residential, Mobile proxies) are effective for your needs, We recommend trying our [Automated Scraping Solutions](https://docs.brightdata.com/scraping-automation/introduction), particularly the Unlocker API, which autonomously manage all of the above mentioned measures and more to ensure high success rates. # Quick start Source: https://docs.brightdata.com/quick-start Get started with Bright Data Fast SERP (31 languages) for enterprise customers. Apply through your account manager and run high-volume Google search queries. ## How do I get access to Bright Data's Fast SERP? Access to fast SERP is available for enterprise customers: contact your account manager at [sales@brightdata.com](mailto:sales@brightdata.com) to see if your account qualifies. Fast SERP provides best results in high volumes so requests to serve volume below 50 QPS have slim chance to be approved. ## How fast is Fast SERP? Fast SERP responds at least twice as fast than our full regular SERP, with P(90) around 1 second. *P(90) is the 90th percentile meaning 90% of the requests.* ## Which Google searches are supported under Fast SERP? Fast SERP supports multiple search verticals. See the relevant page for that search type. Supported verticals: 1. Web Search 2. News 3. Shopping 4. Images 5. Maps ## What volume in QPS (queries per second) is supported? Bright Data's can support high volume SERP traffic from hundreds to thousands of QPS. Consider both your POC/testing volume and your expected production volume before getting started. This helps ensure your zone is configured correctly for your workload. If you're unsure, start with an estimate, your account manager can adjust your rate allocation as your usage grows. If your usage fluctuates on short time spans (like sudden or planned high bursts, or sudden or planned zero traffic periods) - let us know so we can ensure level of service. ## Do I need to control or throttle traffic on my end? If your system has internal rate-limiting or load control mechanisms, share those details with your account manager. This helps align your zone's capacity with your infrastructure's behavior and avoids unnecessary errors. ## Should I use the native proxy interface or the REST API? Fast SERP works best with the **native proxy interface**, it is slightly faster than the REST API. A REST API interface can be provided if required by your architecture. ## Which geographic region will my scrapers run from? Fast SERP supports multiple deployment regions: **US East**, **US West**, **EU**, and **APAC**. Knowing your scraper region(s) in advance helps optimize routing and latency. If your production traffic is distributed across multiple regions, let your account manager know. # Release Notes Source: https://docs.brightdata.com/release-notes Stay up to date with Bright Data product updates from 2024-2026. Scroll down to explore release notes from previous weeks across all proxy and API products. Questions? Click here to [contact us >>>](https://brightdata.com/?hs_signup=160692) ### 📘 Docs #### Clarified exclusive `to` semantics for `GET /zone/cost` * The `to` query parameter is **exclusive**. The day specified is not included in the result. To match a calendar month shown in the Control Panel or on your invoice, set `to` to the first day of the **following** month. [See the updated docs](/api-reference/account-management-api/Get_the_total_cost_and_bandwidth_stats_for_a_Zone). ### 🚀 Improvements #### LLM Scrapers * **Updated supported countries for LLM Scrapers**: We have revised the list of supported countries across all LLM scrapers (ChatGPT and other answer engines). [View the full list](https://github.com/brightdata/answer-engines-country-codes/blob/main/chatgpt_countries.csv). ### ✨ New Features #### Web Scraper API: Success Rate (SR) Email Alerts Web Scraper API: Success Rate (SR) email alerts are now available in the Control Panel. [Learn More](https://docs.brightdata.com/datasets/scrapers/scrapers-library/success-rate) ### ✨ New Features #### New field for Scraper: ChatGPT R\&D added a new field to the output schema: `prompt_sent_at`. This field allows customers to know the exact time the scraper clicks "Send" to submit the prompt. Until now, we only provided a timestamp for when the Bright Data Web Scraper API received the request, not when the prompt was actually executed. *** #### WSAPI Google SERP - 100 Results * **New `collapse_aio` parameter**: Set `collapse_aio=true` to return the SERP with the AI Overview (AIO) section collapsed. This enables more stable and comparable layout and pixel-position measurements by preventing AIO from pushing organic results down the page. Default is `false` (AIO expanded). [Learn more](/scraping-automation/serp-api/get-top-100-google-results) *** #### Browser API - Session ID & Session Logs * **New `Browser.getSessionId` CDP command**: Retrieve the unique session ID of your current Scraping Browser session. Useful for investigating errors, unexpected behavior, or high bandwidth usage via the Session Logs API. [Learn more](/scraping-automation/scraping-browser/cdp-functions/custom#getting-session-id) * **New Session Logs API endpoints**: * `GET /browser_sessions`, List and filter browser sessions by status, date range, target URL, bandwidth, and more. [Learn more](/api-reference/browser-api/get-sessions) * `GET /browser_sessions/{session_id}`, Retrieve details for a specific browser session. [Learn more](/api-reference/browser-api/get-session) ### Release Notes for Week Ending January 6, 2026 ## ### ✨ New Features #### Model Context Protocol (MCP) * **Custom MCP Configuration**: Fine-tune your AI agents by selecting only the necessary tools from 60+ specialized options (E-commerce, Social Media, Travel, etc.) to optimize performance and reduce token usage. Includes built-in unlocking and CAPTCHA solving. [Try now](https://brightdata.com/cp/mcp/configure) * **One-click MCP Connection**: Instantly connect to the MCP Free Tier with zero configuration. Link to Claude, Cursor, or Visual Studio Code with a single click. [Try now](https://brightdata.com/cp/mcp) *** ### ✨ New Features #### Web Unlocker * **Unlock Fragmented URLs in a Single Call**: Directly unlock URLs containing fragments (the # character) via the Unlocker API, eliminating the need for workarounds. * **REST API**: Simply provide the fragmented URL(e.g. `https://www.somesite.com/#!/path1/id11133/9*Fmt=100`). Response time may be slightly longer due to increased processing. * **Native API**: Use the new `x-unblock-url-fragment` header to pass the fragment portion. [Learn more](https://docs.brightdata.com/scraping-automation/web-unlocker/features#unlock-fragmanted-url-in-a-single-call) *** ### ✨ New Features #### SERP API * **Google Trends Support**: Extract trending data using new dedicated parameters (e.g., `brd_trends=timeseries,geo_map`) to retrieve widget-specific data like time-series and geographic visualizations. Supports "Trending now" with options for geo-targeting, time ranges, categories, and search types. * **Google Reviews Scraping**: Collect Google Reviews data with full control over targeting, localization, sorting, filtering, and pagination. * **Google Lens Integration**: Search by image using Google Lens. Supports image URLs, file uploads, localization, and exact match filtering. * **Google Hotels Data Extraction**: Access hotel search results with support for localization, booking dates, room options, and multiple output formats. * **Google Flights Data Extraction**: Retrieve flight search data with full localization support and comprehensive flight details. [Learn more](https://docs.brightdata.com/scraping-automation/serp-api/query-parameters/google) *** ### ✨ New Features #### Residential Proxies * **Request Peers with Guaranteed Minimum Session Lifetime**: Use the new `min_ttl` parameter (1-60 minutes) to request residential peers estimated to remain online for a specified duration, ideal for extended sessions where IP changes are disruptive. *** ### 🚀 Improvements #### Proxy Infrastructure * **Expanded ISP Proxy Capacity**: Added approximately 200,000 new ISP IPs for increased pool diversity and reduced rotation pressure during high-volume operations. * **Smarter Datacenter Load Balancing**: Improved the bandwidth metrics algorithm for datacenter proxy load distribution, resulting in better traffic allocation. * **New Error Code for Destination Timeouts**: Added a dedicated `brd_error` code for "Destination host connect timeout" errors for clearer distinction between proxy and target site connectivity issues. * **Faster System Alert Delivery**: Optimized email notification system for network status alerts, ensuring prompt delivery upon service disruptions or restorations. * **Enhanced Tunnel Agent Logging**: Added `p_dc` and `p_agent` fields to proxy logs for better visibility into the datacenter and agent handling each request, improving debugging and performance analysis. *** ### 🐞 Bug Fixes #### Proxy Infrastructure * **Fixed IP Range Preset Management in Dashboard**: Resolved issues where removing IP range presets didn't update the UI, loading states weren't displayed, and some presets weren't visible in the table view. * **Fixed Data Inconsistency During Error Resolution**: Resolved a race condition that caused data inconsistency when resolving alert errors, making monitor status updates atomic and reliable. * **Improved Proxy Agent Error Logging**: Fixed an issue where probe timeout errors logged `[object Object]` instead of diagnostic information. Error logs now include the connection ID and relevant details. * **Fixed Tunnel Action Documentation Tooltips**: Added explanatory tooltips to tunnel server actions in the internal documentation, including guidance on checking affected customers when removing IP ranges. ### ⚠️ Deprecations #### SERP API * **Google Maps Pagination Parameters Deprecated**: The `start` and `num` pagination parameters for Google Maps were deprecated on December 15th, 2025. * **Recommended alternative**: Use the Scrapers's Google Maps Scraper for full coverage of all search results. * **Access Scraper (requires login):** `https://brightdata.com/products/web-scraper/google-maps`. [Learn more](https://docs.brightdata.com/scraping-automation/serp-api/query-parameters/google#pagination-deprecated) ### Release notes for week ending December 19, 2025 ## ### ✨ New Features ### Deep Lookup * **Enrich your own entity lists directly in Deep Lookup**: You can now bring your own list of entities and enrich them directly within Deep Lookup. Whether you're discovering new entities or enriching ones you already have, Deep Lookup is now your complete enrichment platform, all in one place. *** ### ✨ New Features ### Web Unlocker * **Unlock fragmented URLs in a single call**: You can now unlock URLs containing fragments (the # character) directly through the Unlocker API, no workarounds needed. [Learn more](https://docs.brightdata.com/scraping-automation/web-unlocker/features#unlock-fragmanted-url-in-a-single-call) * **REST API**: Simply provide the fragmented URL and Bright Data Unlocker handles the rest. Response time may be slightly longer due to increased processing. * **Native API**: Use the new x-unblock-url-fragment header to pass the fragment portion of your URL. *** ### ✨ New Features ### Residential Proxies * **Request peers with guaranteed minimum session lifetime**: You can now request residential peers that are estimated to remain online for a specified duration. Use the new `min_ttl` parameter (1-60 minutes) to get peers that will stay connected longer, ideal for extended browser sessions and multi-step scraping jobs where mid-session IP changes would disrupt your workflow. *** ### ✨ New Features ### SERP API * **Configure default data format in zone settings**: You can now set your preferred default data format (JSON, HTML, etc.) directly in your SERP API zone configuration. This eliminates the need to specify the format header on every request, just set it once and all requests will use your preferred format automatically. *** ### 🚀 Improvements ### Datasets * **Up to 85% faster checkout**: Dataset purchases that previously took 15-30 seconds now complete in just 2-5 seconds. Enjoy a much snappier buying experience with dramatically reduced checkout latency. * **Expanded e-commerce data coverage**: We've significantly grown the Bright Data product catalog across key e-commerce datasets: * **Wayfair**: 6M → 15M products (+150%) * **Amazon Global**: 35M → 85M products (+143%) * **Google Shopping**: 84M → 113M products (+35%) * **Amazon Products US**: 310M → 374M products (+20.6%) * **Higher data quality with improved validation**: A new validation flow for full datasets ensures higher data quality before delivery. This enhancement is currently rolling out across our data pipelines. *** ### 🚀 Improvements ### Proxy Infrastructure * **Expanded ISP proxy capacity in US regions**: Added over 300,000 new ISP IPs across key US locations including Dallas, Los Angeles, and Ashburn, giving you more IP diversity and reduced rotation pressure for high-volume operations. * **Faster detailed statistics loading**: Optimized the bank statistics service to eliminate timeout issues when loading detailed stats reports. You'll experience more reliable access to your proxy usage analytics. * **Reduced latency during proxy bank updates**: Optimized the DC proxy bank processing to eliminate lag spikes during index updates. Your requests now maintain consistent low latency even during background data refreshes. *** ### 🚀 Improvements ### Control Panel * **Unified proxy list download experience**: We've streamlined how you download proxy lists across the Control Panel. All download locations now offer the same consistent experience with multiple format options: * **Colon-separated**: `host:port:usr:pwd or usr:pwd@host:port` * **CSV**: `host`,`port`,`usr`,`pwd` (with optional location data) * **IP list**: single column with IPs * Downloads now include timestamps in filenames to prevent overwrites, and you'll see a preview before downloading. A security warning reminds you to keep your proxy credentials safe. *** ### 🐞 Bug Fixes ### Datasets * **Fixed missing enriched fields in exports**: Resolved an issue where enriched fields were missing when downloading datasets in CSV or JSON format. All enriched data now exports correctly, ensuring your downloads contain the complete dataset you expect. *** ### 🐞 Bug Fixes ### Proxy Infrastructure * **Fixed session drops for persistent connections**: Resolved an issue where sessions with const=true were incorrectly dropped mid-job when peers temporarily disconnected. Your persistent sessions now maintain IP consistency as expected throughout browser jobs and extended scraping tasks. * **Fixed IP range preset management in dashboard**: Resolved issues where removing IP range presets didn't update the UI correctly and some presets weren't displaying in table view. The static IP management interface now reflects changes immediately. * **Fixed data inconsistency during error resolution**: Resolved a race condition that could cause data inconsistency when resolving alert errors. Monitor status updates are now atomic, ensuring reliable alert state management. * **Improved proxy agent error logging**: Fixed an issue where probe timeout errors logged `[object Object]` instead of useful debugging information. Error logs now include the connection ID and relevant diagnostic details for faster troubleshooting. ## Release notes for week ending December 02, 2025 ### 🚀 **Improvements** #### Browser API **Expanded C# support for CAPTCHA solving**: We have added dedicated examples for C# developers using PuppeteerSharp and Playwright. You can now copy-paste ready-made code to handle CAPTCHA challenges directly from the documentation. #### Proxy Network **Unified proxy list export**: Export your proxy lists with a consistent experience. You can now easily choose your preferred format (CSV, TXT, or IP-only) and customize delimiter styles for faster integration. Just go to "My Proxies" -> choose a proxy -> In the "Overview" tab, click "Download" -> Choose format -> Click "Download". Or, in the "Overview" tab, click "View" -> Click "Download" -> Choose format -> Click "Download". **Identify abrupt disconnects**: Added new error code [client\_10140](/proxy-networks/errorCatalog#client-10140) to signal "brute client disconnects". You can now distinguish when a connection was forcibly terminated by the client side rather than a network error, aiding in faster debugging. ### 🐞 Bug Fixes #### Web Unlocker **Accurate header usage logging**: Corrected a reporting issue in system logs; the custom\_expect field now accurately reflects when your custom headers or cookies are actively utilized by the Web Unlocker logic. #### Proxy Network **Clarified SOCKS5 port errors**: Fixed an issue where attempting to use a disallowed port via SOCKS5 returned an incorrect error message. You will now receive accurate feedback to debug connection strings faster. **Corrected IP assignment alerts**: Resolved a bug where failed dedicated residential proxy assignments triggered the wrong email notification. You will now receive the correct alerts if an allocation fails, ensuring you can react immediately. ## Release notes for week ending Nov 14, 2025 ### 🚀 **Improvements** **Clearer guidance when approaching usage limits**: Improved alert emails now provide straightforward explanations of your usage status and next steps to help you manage your unlimited proxy plans effectively. **Distribute unlimited proxy traffic freely across zones**: Use your [fair use allowance](/general/usage-monitoring/fair_use_allowance) across all zones of the same type instead of per individual zone, reducing the risk of unexpected overages while one zone sits idle. **Easier debugging with industry-standard error reporting**: Proxy error information now follows [RFC 9209](https://www.rfc-editor.org/rfc/rfc9209.html) standards, making it simpler to integrate monitoring tools and troubleshoot issues. Legacy error headers will be deprecated in 2026 [**review the migration guide**](https://gpt.brightdata.com/link) if you rely on custom error handling. ## Release notes for week ending Oct 31, 2025 ### 🆕 New features #### Scrapers **New social media scrapers**: You can now collect data from [**Facebook profiles**](https://brightdata.com/cp/scrapers/api/gd_mf0urb782734ik94dz/pdp/overview?id=all), [**Reddit profiles**](https://brightdata.com/cp/scrapers/api/gd_mgnh0p8w16o65lmhp/pdp/overview?id=all), and [**Reddit posts**](https://brightdata.com/cp/scrapers/api/gd_lvz8ah06191smkebj4/pdp/overview?id=all) within a specific community (subreddit). **New YouTube scrapers**: We've added new scrapers for YouTube, allowing you to collect data from [YouTube Podcasts ](https://brightdata.com/cp/scrapers/api/gd_lk56epmy2i5g7lzu0k/podcast_url/overview?id=all) and the [**YouTube Explore page,**](https://brightdata.com/cp/scrapers/api/gd_lk56epmy2i5g7lzu0k/explore/overview?nav_from=\&id=all) focusing on news content. **Goodreads reviews scraper**: A new scraper is available to collect [**book reviews**](https://brightdata.com/cp/scrapers/api/gd_mgryny1rtzjskcjxz/pdp/overview?nav_from\&id=all) from [**Goodreads**](https://www.goodreads.com/). #### Proxy **IP Country Verification Endpoint**: You can now use a dedicated endpoint to check the country that Google associates with a specific IP address, helping you verify geolocation for your requests. #### Browser Automation **Automation scripts that don't break when sites update**: Your browser automation continues working even when websites redesign their pages or change their structure. Spend less time fixing broken scripts and more time using your data. **MCP** **Keep your automation data separate and clean**: When running multiple MCP browser sessions at once, each operates in complete isolation, no data mixing, no session conflicts, just reliable parallel operations. ### 🚀 Improvements #### Scrapers **Google num=100 is gone, but your top‑100 isn’t: 1 request, 10x fewer calls**: Get the top 100 Google results with the [Scrapers (SERP100)](https://brightdata.com/cp/scrapers/api/gd_mfz5x93lmsjjjylob/pdp/overview?id=all), no pagination, set language/country and depth, and get the original SERP HTML for audit. Cut request volume by up to 10x. [Learn more](/scraping-automation/serp-api/get-top-100-google-results) **Faster, more reliable E-commerce data collection**: Experience faster data retrieval from Amazon, Etsy, and eBay with fewer errors and timeouts. Your scraping jobs complete more quickly with more complete and accurate results. **Quicker Captcha resolution**: Your requests spend less time waiting when captchas appear. Reduced delays mean faster data collection and more efficient scraping operations. ## Release notes for week ending Oct 10, 2025 ### 🆕 New features **Test Web MCP without any setup**: Explore what's possible with our[ Web MCP](https://brightdata.com/ai/mcp-server) directly in your browser. No installation or configuration required. Run live scraping tests, experiment with different targets, and see results instantly before integrating into your workflow. [Try now](https://brightdata.com/ai/playground-chat) **Start building in minutes, not hours**: Integrate Bright Data directly into your Python or NodeJS applications with native [Python SDK](/api-reference/SDK) and [JavScript SDK](/api-reference/SDK-JS) designed for your workflow. Get autocomplete, type hints, built-in error handling, and comprehensive examples in the language you already use. ### 🚀 Improvements **Find the exact data you need faster**: Filtering large datasets is now quicker and more intuitive. Select multiple criteria at once, pick date ranges more easily, and get to your refined dataset in fewer clicks. ### 🐞 Bug Fixes **Smoother filtering experience**: Fixed issues that interrupted your workflow when refining dataset filters, including problems with clearing selections and unexpected page scrolling. ## Release notes for week ending Sep 30, 2025 ### 🆕 New features #### Datasets **Quick Filtering for datasets**: Start filtering immediately with commonly-used options always at your fingertips. Type to get instant autocomplete suggestions, or describe what you need in plain language and let AI build the filter for you. **Automate Web Archive delivery to Azure**: Send [Web Archive](/datasets/archive/faqs#what-is-archive-api) data directly to your Azure storage, eliminating manual downloads and uploads. Your data flows straight into your existing cloud infrastructure where your team already works. ### 🚀 Improvements #### Datasets **Understand Dataset fields instantly**: No more guessing what cryptic field names mean. Dataset filters, previews, and documentation now use plain-language labels that clearly describe what each field contains, so you spend less time deciphering and more time analyzing. **No more guessing about "Empty" updates**: When your scheduled dataset refresh finds no new or changed data, you'll now see a clear "No changes detected" status and receive an email explaining what happened with an option to trigger a full refresh if you prefer. #### Scrapers **Capture all Amazon reviews, not just text-based ones**: Get a fuller picture of product sentiment by collecting reviews that appear in image galleries. Your Amazon review data now includes feedback that was previously hidden in carousel sections. **Track scraper jobs without switching tools**: When running [synchronous requests](/api-reference/scrapers/synchronous-requests), you now get a clickable link in your command-line response that takes you directly to the job monitoring page no need to manually navigate or search for your job. ### 🐞 Bug Fixes #### Scrapers **Collect all Glassdoor reviews without gaps**: Fixed an issue where some reviews would be skipped during collection. Your [Glassdoor scraping jobs](https://brightdata.com/cp/scrapers/browse?domain=glassdoor.com\&id=all) now retrieve complete review sets more consistently. **Fixed empty results for products with reviews**: Resolved an issue where the Amazon scraper would return no data even when products clearly had customer reviews. Your Amazon review collections are now more reliable. #### Web Archive **Search large Web Archive datasets without timeouts**: The [Web Archive](/datasets/archive/overview#run-a-search) `/webarchive/search` endpoint now returns a `search_id` immediately. So, you can now query large datasets and track search progress in real-time without interruption. *** ## Release notes for week ending Sep 28, 2025 ### 🆕 New features **Get Web MCP running with your AI tools in minutes**: Find everything you need to integrate Model Context Protocol in one place, step-by-step setup guides for Claude, ChatGPT, Cursor, LangChain, and more, plus ready-to-use examples from the community. [Learn more](https://brightdata.com/cp/mcp) *** ## Release notes for week ending Sep 19, 2025 ### 🚀 Improvements **Complete account verification (KYC) faster**: Account verification is now more straightforward with clearer instructions and a simpler step-by-step process. Get verified and access your account more quickly. [Learn more](/proxy-networks/residential/network-access) **Higher success rates for Google scraping**: Collect data from Google with fewer interruptions. Improved unblocking techniques result in more consistent, reliable scraping performance. ### 🐞 Bug Fixes **Better Safari browser emulation**: Fixed an issue that could cause requests using Safari browser profiles to be detected or blocked. Safari-based scraping now works more reliably. *** ## Release notes for week ending Sep 12, 2025 ### 🚀 Improvements **More predictable unlimited plan usage**: Fair use limits for unlimited Datacenter and ISP plans now apply across all your zones combined, giving you more flexibility in how you distribute traffic and reducing the risk of unexpected overage charges. **Find what you need faster in the Control Panel**: Redesigned navigation makes it quicker to access your zones, datasets, scrapers, and settings. Rolling out to all new users now, with existing users gaining access in December. ## Release notes for week ending Aug 31, 2025 ### 🆕 New features #### Datasets **Filter thousands of records at once**: Upload a CSV or JSON file to filter datasets by large lists of values, no need to manually enter hundreds of product IDs, URLs, or other criteria. Perfect for bulk operations and matching datasets to your existing data. **See enriched data instantly, filter before you buy**: Datasets with additional enrichment (like LinkedIn profiles with company information) now load and preview immediately. Filter by enriched fields to validate the data meets your needs before purchasing. #### Scrapers **Monitor e-commerce pricing on three major platforms**: Collect current prices and stock availability from Coupang, Amazon, and Walmart to track competitors, validate pricing strategies, or analyze market trends. **Scrape complete hotel data from Google**: Collect everything from basic details (name, location, star rating) to booking information (prices, availability, trends), guest insights (reviews, ratings), and amenities, all from [Google's hotel listings](https://brightdata.com/cp/scrapers/api/gd_mg3gjfmg12tc2n5d4d/pdp/overview?nav_from\&id=all). ### 🚀 Improvements #### Datasets **Delivery progress indicator**: Track your data deliveries in real time, see exactly how far along your dataset deliveries are with live progress updates in the Control Panel. No more guessing when your data will be ready. **Quicker SFTP transfers**: Your datasets now transfer to SFTP destinations faster, reducing wait times for large data deliveries. **Less alert noise, clearer information**: When delivery issues occur, you'll now see one consolidated notification with all the details instead of multiple separate alerts cluttering your Dashboard. **Smarter delivery rate limiting**: A new rate limiter for data deliveries has been implemented to improve stability, with a default of 100 concurrent deliveries and per-customer configuration available. #### Scrapers **Troubleshoot scraper errors faster**: Find clear explanations for every Scrapers error code in our [documentation](/datasets/scrapers/scrapers-library/error-list-by-endpoint). Understand what went wrong and how to fix it without contacting support. ### 🐞 Bug Fixes #### Datasets **Dataset preview table no longer shows as empty**: Fixed an issue where the preview table would appear blank even when the dataset contained data. Your dataset samples now display correctly every time. **CSV filtering handles empty lines**: Removed errors when filtering with CSV files that contain blank rows. ## Release notes for week ending Aug 29, 2025 ### 🆕 New features **Instant support in Chinese**: Get immediate help in your language when visiting [bright.cn](http://bright.cn). Our AI assistant Sophie provides instant answers in Chinese, with seamless handoff to live support agents during business hours when you need more help. ## Release notes for week ending Aug 22, 2025 ### 🚀 Improvements **Proxy Network Simplification**: Streamlined zone settings by removing rarely-used option "Cache proxy", making it easier to configure exactly what you need without confusion. ### 🐞 Bug Fixes **Better readability in dark mode**: Fixed display issues that made parts of the Control Panel difficult to read or visually inconsistent when using dark mode. dark-mode-ui-fixes.png ## Release notes for week ending Aug 8, 2025 ### 🆕 New features **MCP Playground**: Test and interact with the new interactive MCP playground. This feature allows you to send and receive messages to test crawler logic. [Try now](https://brightdata.com/ai/playground-chat) **Protection against accidental account deletion**: Changed account to "deactivate" instead of deleting immediately? You now have 30 days to change your mind and reactivate. Plus, your account manager will reach out to understand what went wrong and help if you're facing issues. [Learn more](/general/account/faqs) ### 🚀 Improvements **Test any API before committing**: Try Proxy networks, Web Unlocker and SERP API in the Control Panel for FREE! Validate your use case and see real results before writing your integration code. [Try now](https://brightdata.com/cp/web_access/playground) **Get to human support in one click**: When you ask to speak with someone, BrightAI now provides a direct link to create a support ticket, ensuring your issue gets proper attention and tracking instead of getting lost in chat. ## Release notes for week ending Jul 29, 2025 ### 🆕 New features #### IP Orders for Verified Accounts Order large quantities of dedicated IPs with processing time and delivery tracking. [Read more](https://brightdata.com/cp/zones/order_ips/new) #### Deep Lookup Preview Mode Preview table structure for free before pulling data, with a built-in co-pilot to refine prompts for better accuracy. [Read more](https://brightdata.com/cp/deep_lookup) #### Light Parser for Google Parse top 10 search results up to 2.5× faster for quicker responses. [Read more](https://docs.brightdata.com/scraping-automation/serp-api/parsed-json-results/parsing-search-results#light-parser-for-google) #### Bing → Bright Data SERP API Migration 1-to-1 migration path for moving Bing API parsing to Bright Data’s SERP API. [Read more](https://docs.brightdata.com/scraping-automation/serp-api/parsed-json-results/bing-to-bright-data-serp-migration-guide) *** ## Release notes for week ending Jul 22, 2025 ### 🆕 New features #### Scrapers – Gemini/Grok/Google AIO Added AI Scraper support for multiple models, making it easier for users of one AI scraper to leverage others. [Read more](https://docs.brightdata.com/datasets/scrapers/scrapers-library/ai-scrapers) #### BrightAI Start Page Introduction of BrightAI, a RAG-based assistant that uses account logs and settings to guide users through setup, optimization, and navigation of Bright Data tools. #### Data and Data Rate Overview New filters on the [Zone Dashboard](https://brightdata.com/cp/zones/dashboard) provide insights into traffic volume and connection speed by zone, type, and target domain for better optimization and anomaly detection. [Read more](https://brightdata.com/cp/zones/dashboard) #### Residential Mega Pool Access to a larger pool of rotating IPv4 and IPv6 residential proxies. #### IPv6 to IPv4 Failover Automatic fallback to IPv4 when target sites don’t support IPv6, improving success rates. #### Datacenter and ISP Bulk Orders Selected customers can place future orders for dedicated datacenter and static residential proxies with delivery tracking in the control panel. #### MCP Cloud Storage Option to use cloud-hosted or self-hosted MCP for broader compatibility. [Read more](https://docs.brightdata.com/ai/mcp-server/overview) #### Web Archive Prefix Customization Ability to set a custom prefix for the top-level export folder path. [Read more](https://docs.brightdata.com/datasets/archive/overview#deliver-snapshot-to-amazon-s3-storage) ### 🆕 New features #### Scraper IDE (Functions) WARC Support Capture the full context of web content in a robust, standardized WARC format for preservation, compliance, and reproducible research. [Read more](https://docs.brightdata.com/datasets/scraper-studio/warc-ide) ### 🆕 New features #### Residential network: IPv6 support You can now use IPv6 on Bright Data’s residential network. With 150,000+ IPv6-enabled peers and growing, this upgrade offers greater scalability and access to a larger IP pool. [Read more.](https://docs.brightdata.com/proxy-networks/residential/configure-your-proxy#how-to-configure-ipv6-shared-residential-proxies) #### Custom Scrapers Easily extract data from any website, no coding or infrastructure needed. Just provide target URLs and define the data you want. Choose to manage the project yourself or let us handle it end-to-end. [Read more.](https://docs.brightdata.com/datasets/scrapers/custom-scrapers/scrape-any-web) #### Scrapers: custom field selection Save storage and streamline output by selecting only the fields you need using a simple pipe-separated list. [Read more.](https://docs.brightdata.com/datasets/scrapers/custom-scrapers/scrape-any-web) ### 🚀 New Integrations #### LangChain Power LLM agents with real-time, anonymous web data. [Read more.](https://docs.brightdata.com/integrations/langchain) #### Lindy.ai Enable AI "employees" to automate tasks using live web data. [Read more.](https://docs.brightdata.com/integrations/lindy-ai) #### LlamaIndex Ingest and index web data seamlessly into your knowledge base to enable powerful retrieval-augmented generation (RAG) workflows. [Read more.](https://docs.brightdata.com/integrations/llamaindex) #### Make Automate scraping, dataset retrieval, and API calls, no code required. [Read more.](https://docs.brightdata.com/integrations/make) #### n8n Build automated workflows that connect Bright Data’s capabilities with hundreds of other apps and services, all with a visual editor. [Read more.](https://docs.brightdata.com/integrations/n8n) ## Release notes for week ending Mar 20, 2025 ## Datasets ### 🆕 New features **Large Dataset Splitting and Download in UI**: You can now download large datasets directly from the UI. Large files are automatically split into smaller parts with easy download links through the email, making big data access smoother and more convenient. ### 🚀 Improvements * **Improved Delivery System**: We made backend improvements to ensure faster and more reliable dataset deliveries. * **Filter API Tweaks**: We fine-tuned the Filter API for better performance and more accurate filtering. * **Support for Free Datasets**: We added billing-side support for free datasets, making it easier to access datasets that are available at no cost. #### Error Status Documentation Added We updated our documentation to include error status codes for the Dataset API, helping developers troubleshoot issues faster. ### 👉 View Documentation #### Download Large Snapshots via Email You can now receive an email with download links for snapshots larger than 5GB, offering another easy way to access big datasets. #### Snapshot Metadata API Update The Snapshot Metadata API now returns error details, error codes, and initiation type, giving you better visibility into your dataset operations. ### 🐞 Bug Fixes * Fixed "Custom Dataset" Button: The "Custom Dataset" button now works properly. * Fixed Parquet Delivery "Out of Memory" Error: Large Parquet file deliveries no longer cause memory errors. * Fixed Filter Issues * Missing "list exact match" and "include" options in filters were fixed. * Filtering issues for the Enriched Employee Business dataset were resolved. * Unclear filter error messages in the UI are now clearer and more helpful. * Fixed Snapshots Table UI: The snapshots table now displays correctly without empty columns. ## Release notes for week ending Mar 20, 2025 ### **General**: #### 🆕 New features * **AI-Powered Support** * BrightAI now serves as the first responder to support tickets for small and new customers, providing immediate assistance while maintaining our commitment to quality service. You'll receive faster initial responses, but rest assured that you can request a human support specialist at any point during your conversation if needed. ### **Datasets**: #### 🆕 New features * **Easier Filtering with Auto-Complete** * Filtering datasets is now faster and more intuitive with auto-complete suggestions. For example, when selecting an Amazon category, you can now choose from a predefined list instead of searching manually on Amazon. Release Notes * **New API for Dataset Metadata** * Developers can now access dataset metadata through our API, making it easier to integrate with automation tools like Zapier, Make.com, and n8n.io. This allows you to retrieve dataset details and schema to set up automated workflows and get the exact data you need. 👉 View API Documentation ([link](https://docs.brightdata.com/api-reference/marketplace-dataset-api/get-dataset-list)) #### 🚀 Improvements * **Better Search in the Marketplace** * Searching for datasets is now more flexible, allowing for slight variations and even typos. This makes it easier to find what you need, even if your search isn't perfectly accurate. Release Notes * **Clearer Messages for Filter Limits** * Reaching the daily filtering limit now triggers a clear message explaining the limit and next steps. You can also submit a request to our data experts for help in refining your dataset filters. Release Notes * **Helpful Tooltips for Date Columns** * Date columns now include tooltips that explain the date format, ensuring you understand that records for the selected dates are inclusive. Release Notes #### 🐞 Bug Fixes * **Improved Usability and UI** * We've made several design and usability improvements, including fixing typos, to make your experience smoother. ### **Scrapers**: #### 🆕 New features * **New endpoint allows sync calls to retrieve the scraped data to the requested origin** * We've introduced a new endpoint that enables synchronous calls to retrieve scraped data directly from the requested origin, improving efficiency and streamlining the process. This enhancement alongside the upcoming design changes that will be implemented in the next weeks will allow users to access and test their scraped data more quickly and reflect the potential value ([link](https://docs.brightdata.com/api-reference/scrapers/synchronous-requests)) * **New "Wikipedia articles" scrapers** * Users can now discover (by keyword) and collect article information from Wikipedia. #### 🚀 Improvements * **Search and navigation** * We've made several improvements to enhance search results and navigation, making it easier for users to find relevant data and explore related products. Search results will now prioritize domain-only results, ensuring more accurate and streamlined discovery. Additionally, Dataset (DS) results will be displayed below Scraper results and vice versa, providing a more structured and intuitive search experience. Release Notes * **A new banner in SERP to redirect users interested in Chat GPT and perplexity search results** * This banner redirects users to additional search engine results data, making it easier to access the AI-powered result searches Release Notes #### 🐞 Bug Fixes * **Refresh API key Fix** * We've resolved an issue affecting the API key refresh option to ensure seamless authentication and session continuity. * **Scraper Request Call Scheduled Notification Fix** * Fixed a bug where scheduled notifications for new custom scraper requests were not triggering correctly, ensuring timely and accurate alerts to the relevant personnel ## Release notes for week ending Mar 13, 2025 ### Web Archive API: #### 🚀 Improvements * **Hot Storage Duration** Web Archive API now offers 72h of hot storage data instead of 96h. For more details [see here](https://docs.brightdata.com/datasets/archive/overview#how-data-range-affects-delivery-time) ### Scrapers: #### 🆕 New features * **Output Schema Change Monitoring** We have released our "output schema change monitoring system" to improve detection accuracy and transparency. Schema change notifications are now consolidated into a single email for customer updates. Release Notes * **New discovery method for "Walmart products"** Users can now discover and collect product information based on the SKU. #### 🚀 Improvements * **External Storage Option for Large Files** If the compressed file still exceeds 5GB, users will be prompted with an option to send the file to an external storage location for easier access and management. * **Custom scrapers - modify the customs scraper request flow** We are now routing calls based on customer type (Community, Named, Key, Strategic), and only the relevant personnel are added to the invite to increase efficiency * **Custom scrapers schema changes agility** If there are any changes to the schema defined by the customer during the call, the team can now update the schema before it is sent to the partners. ### Proxy products: #### 🚀 Improvements * Enable moving datacenter and ISP proxies from legacy pay per GB zones to new datacenter and ISP zones with unlimited plans. #### 🐞 Bug Fixes * Fix wrong country assignment for default country in Residential proxy network. ### Datasets: #### 🆕 New features * **eCommerce Datasets now have Daily & Weekly Subscriptions** You can now get daily or weekly updates for 41 out of 73 eCommerce datasets. This makes it easier to track new products in a category or monitor price changes more frequently. We’re working on adding support for more datasets soon! Release Notes 🚀 Improvements * **Improved Filtering Options** * See Matching Records Before Applying Filters – Now you can see how many records match your criteria before applying filters. * Filter by Date – You can now filter datasets using relative dates for more precise data selection. Release Notes * **Estimated Cost Label on Dataset Page view** * We’ve added an estimated cost label below the purchase button so you can see pricing details before buying. * A new "Filter Dataset" button next to the cost label lets you quickly refine your dataset selection, helping you get the exact data you need while managing costs. Release Notes * **Better Checkout Experience** * Clearer Navigation – Breadcrumbs now guide you through the checkout process. * Smarter Updates – We’ve improved how we explain delta subscriptions (smart updates) so you can make better decisions. * Promo Codes – You can now apply discount codes directly at checkout. Release Notes * **Better Marketplace Experience** * Breadcrumbs in Marketplace – Easily track where you are while browsing datasets. * Redesigned Marketplace UI – We’ve refreshed the header, category list, and dataset cards grid to make browsing easier. Release Notes #### 🐞 Bug Fixes * **Faster Quote Calculation** removed unnecessary calculations in the checkout process, improving performance. * **Subscription Update Fix** Updating a dataset subscription no longer redirects you to a different page, it will keep you on the same page. * **Improved Dataset Preview Speed** The dataset preview now loads faster for a smoother experience. ### Scrapers: #### 🆕 New features * **Cancel snapshot from the No-Code Scraper** – Users can now cancel a running snapshot directly from the No-Code Scraper interface. * **New logs functionality** – New buttons were added to the logs section to provide better interaction options and debugging capabilities to the customers Release Notes * **New discovery method for "Airbnb Properties"** – Allowing users to retrieve Airbnb property information based on filtered URLs. * **New discovery method for "Glassdoor Companies"** – Users can now collect company information based on filtered URLs. #### 🚀 Improvements **UI Enhancements to Scrapers Home Page** We've improved the usability and navigation of the Scrapers home page enabling faster search, displaying smaller cards for better display and explore more scrapes to users, enhanced Custom Scraper suggestions, and added search within category pages Release Notes * **Unified the API and No-Code delivery options** – We have fixed inconsistencies between the API and No-Code Scraper delivery settings. Now, both methods follow the same logic, making it easier for users to configure and manage their data delivery preferences. #### 🐞 Bug Fixes * **Fixed broken delivery settings** – Resolved an issue that was causing delivery settings to not function correctly. This fix ensures that users can reliably configure and receive their scraped data without disruptions. * **Filter functionality** - Filtering my "My scrapers" table according to product is now working * **URL structure** - The URL structure were inconsistent across the scrapers pages (e.g, some api\_data and some scrapers) now all URLs are consist in structure and contain the word scrapers as part of the URL * **Fixed search results page on Scraper home page** – Corrected an issue where search results on the Scraper home page were not displaying correctly. This fix ensures that users can find relevant scrapers more easily. ### **Proxy products**: #### 🚀 Improvements * Added option to breakdown zone statistics by domain in zone overview page: Release Notes ### **Unlocker API**: #### 🆕 New features * You can now get HTML automatically converted into Markdown Language. It's supported both in API and native proxy interfaces. See [https://docs.brightdata.com/scraping-automation/web-unlocker/features#scrape-as-markdown](https://docs.brightdata.com/scraping-automation/web-unlocker/features#scrape-as-markdown) ### **Datasets**: #### 🆕 New features * Support for Date Expressions in Dataset Filters:You can now use date expressions in dataset filters (Relative Date), making it easier to refine your data selection based on time-based criteria. This feature is supported in both the Filter API and Dataset Subscriptions, allowing for more flexible and dynamic filtering. Example Use Case: Suppose you want to filter records to include only those from the last 7 days. You can use the "Last" expression to retrieve all records from the past week while excluding older data. Release Notes #### 🚀 Improvements * We have enhanced the way Personally Identifiable Information (PII) is masked to improve data security and compliance. * Improved Quote Generation Time on Checkout Page - loading time is now faster to get quote data and quote the final price. * Released a new checkout page. Users can now see added and updated records directly on the checkout page. #### 🐞 Bug Fixes * Fixed Preview Table Errors:Resolved an issue that caused slow loading times in the dataset preview table, ensuring faster and smoother data previews. ### **Scrapers**: #### 🆕 New features * **Perplexity scraper -** Introducing a brand-new Perplexity Scraper, similar to our chatGPT scraper! This scraper allows customers to interact with Perplexity programmatically, retrieving responses as structured data. Now, you can automate queries and extract insights from Perplexity effortlessly. [Try it here](https://brightdata.com/cp/scrapers/browse?domain=perplexity.ai) Release Notes * **Monitoring system for schema changes** – The first release of a monitoring and alerting system for schema changes was implemented to improve data accuracy and stability. It detects changes and sends automatic notifications to ensure seamless data operation. Expect improvements to this system in the coming weeks. * **New delivery feature for the No-Code Scraper** – We’ve added delivery methods, giving no-code users more flexibility in exporting and accessing their scraped data. Release Notes #### 🚀 Improvements * **Enhanced search option to include new result types –** The search functionality now displays data points along with their respective scrapers, making it easier to identify relevant scrapers according to their outputs. Release Notes * **"Deliver to external storage" is now enabled by default –** To streamline workflows, external storage delivery is now automatically enabled on the Scrapers, reducing manual setup steps. * **Custom scrapers request** - We simplified the request process. Now, it only requires two URLs, and the rest will be handled automatically, to try and streamline the request process #### 🐞 Bug Fixes * Resolved issues affecting custom scrapers and implemented an alert system to notify partners when action is required. * Fixed undefined URL structure – Improved URL handling to ensure consistent and well-defined structures across different pages. ### **Proxy products**: #### 🆕 New features * New API will provide the list of proxies pending replacement in advance and prepare for. Try it here: [Get proxies pending replacement API.](https://docs.brightdata.com/api-reference/account-management-api/get-proxies-pending-replacement) #### 🚀 Improvements * Integrate faster with pre-made connect strings for proxy access details (host, port, user and password) accompanied with new set of configuration guides [Integration guides](https://docs.brightdata.com/integrations/introduction). * We added error codes to our error catalog. Find and resolve issues faster by yourself [Proxy errors catalog](https://docs.brightdata.com/proxy-networks/errorCatalog). * We have increased our servers deployment in Asia, and added some performance boosts. ### **SERP API**: #### 🆕 New features * **Google’s Generative AI Overviews** - you can now increase the likelihood of this overview appearing in your SERP results: * [https://docs.brightdata.com/scraping-automation/serp-api/query-parameters/google#ai-overview](https://docs.brightdata.com/scraping-automation/serp-api/query-parameters/google#ai-overview) * **Google Trends** - new parameters to get more accurate widget specific data: * \`brd\_trends = timeseries,geo\_map\` * [https://docs.brightdata.com/scraping-automation/serp-api/query-parameters/google#trends](https://docs.brightdata.com/scraping-automation/serp-api/query-parameters/google#trends) ### **Datasets**: #### 🆕 New features * **Delta Data for Dataset Subscriptions** - Customers can now enable delta logic to receive only new or updated records instead of full datasets for every collection cycle. This improves data relevance and allows flexible snapshot comparisons. No more manually identifying changes, as Bright Data does it for you. Release Notes #### 🚀 Improvements * **New Pricing Table** - A redesigned pricing table provides clearer information, making it easier for customers to understand pricing tiers and make informed decisions. * **Enhanced Dataset Checkout Confirmation Page** - The confirmation page has been fixed to ensure a smoother and more reliable checkout experience. * **Improved Error Messaging for Missing Payment Details -** Customers attempting to purchase without adding payment and billing details will now receive clearer and more informative error messages. * **Refined Delivery Methods** - The order of delivery options has been reorganized, and UI improvements have been made for better usability. * **Keyboard Shortcuts for "Update Dataset"** - New keyboard shortcuts have been implemented to streamline dataset updates and UI enhancements for a better user experience. * **Better Data Sample Preview Table -** Users can now intuitively open table rows and view object data types in a popover for improved clarity and visibility. #### 🐞 Bug Fixes * Fixed Routing Bug - Unnecessary query parameters no longer persist when navigating the dataset page. * Resolved Promotions Card UI Issue - The promotions cards now display correctly according to the intended UI layout. ### **Scrapers**: #### 🆕 New features * **AI Scraper Agents** – Our first AI scraper agent allows users to extract data from any website by simply providing its domain. It automatically retrieves all URLs under that domain and extracts content in HTML, Markdown, or plain text. Ideal for AI companies, researchers, and developers needing high-quality text data for training models, analysis, or content generation. [Try it here](https://brightdata.com/cp/scrapers/browse?domain=example.com) Release Notes Release Notes Release Notes * **ChatGPT scraper** - Introducing a brand-new ChatGPT Scraper, similar to our SERP scrapers! This scraper allows customers to interact with ChatGPT programmatically, retrieving responses as structured data. Now, you can automate queries and extract insights from ChatGPT effortlessly. [Try it here](https://brightdata.com/cp/scrapers/browse?domain=chatgpt.com) Release Notes * **"Run Again" Button in Logs Page -** We've added a "Run Again" button to the Logs page, allowing users to quickly re-run the same request with a single click. making it easier to retry failed or past jobs without manually re-entering parameters. Release Notes #### 🚀 Improvements * **My scrapers table**- Scrapers that are currently running or the most recent scraper that was in use will now appear at the top of the "My Scraper" table. This makes it easier to track active jobs without having to scroll through completed ones. * **WSA API**- To improve navigation and organization, we’ve moved the "Delivery Options" section to the "Management API" tab. This change makes it more intuitive for users managing API-based data deliveries. #### 🐞 Bug Fixes * If a collection job fails in the No-Code Scraper, users can now download error details to better understand what went wrong. Previously, the download button was disabled, making debugging difficult. This improvement ensures better transparency and troubleshooting. * We've resolved an issue where the "Report an Issue" feature did not correctly associate snapshots with tickets. Now, when customers report a problem, the correct snapshot is automatically linked, making it easier to troubleshoot and resolve issues efficiently. ### **Proxy products**: #### 🆕 New features * **HTTP3 beta is live** - The proxy network was upgraded to handle HTTP3/QUIC requests. Contact Bright Data sales - [sales@brightdata.com](mailto:sales@brightdata.com) if you want to try it out! #### 🚀 Improvements * It is now easier to **copy your proxy credentials** on the ‘overview’ tab, in different formats. #### 🐞 Bug Fixes * **Fix** **broken code examples** on account management API doc playground * **Added missing documentation** for endpoint and some old doc links not redirecting properly. ### **Datasets**: #### 🆕 New features * **"AI Filter Assistant"** allows users to filter datasets using **Natural Language** - just describe desired filters in English and get the relevant records. Release Notes Release Notes * **Payment Link Sharing** – Dashboard users can now generate and share payment links, making the purchasing process easier for others (e.g. their CFO) without logging in to the control panel. Release Notes * **Additional Dataset Statistics** – Each Dataset now includes additional statistics regarding its content, for example: geographical distribution of records. This information is updated every month. Release Notes #### 🚀 Improvements * **Enhanced Filtering Experience** – You can now move the filter window while reviewing and refining your filters and datasets. No more hiding of the table! * **Better data sample preview** – We’ve limited the cell size for better readability. You can now click on fields to expand and view the full data point in the sample dataset. #### 🐞 Bug Fixes * Fixed incorrect parsing of CSV files uploaded as inputs to the filter component. * Made sure the record count always gets updated, to show the effect of the filter. ### **Scrapers**: #### 🆕 New features * **Custom scrapers** - Allows users to request a custom scraper if the domain is unavailable in our marketplace. Just supply 2 URLs to get the process started - [see the video!](https://youtu.be/YhJWRQW6FSE) #### 🚀 Improvements * **An automatic email notification** that is being sent after a customer triggers a scraper for the first time, for better onboarding experience. * **Added code examples in multiple languages** to allow users to copy the API code in their preferred language on all of our API requests * **Reduced the number of examples from 10 to 5** in the "Overview" tab to provide a "clear" view to the users * **Sophie:** Users can now ask questions about specific use cases and receive relevant suggestions along with a direct link to the dataset. #### 🐞 Bug Fixes * Fixed broken links across the Scraper pages. # Residential Source: https://docs.brightdata.com/residential-quickstart # Scraper Studio Source: https://docs.brightdata.com/scraper-studio-quickstart # Scrapers quickstart Source: https://docs.brightdata.com/scrapers-quickstart # Ethical web scraping best practices Source: https://docs.brightdata.com/scraping-automation/concepts/ethical-web-scraping 5 core principles of ethical web data collection, the legal risks of non-compliant scraping and a practical checklist for sustainable data pipelines. How do you build a data pipeline that won't get shut down by a lawsuit, a regulatory change, or a blocked IP range? As scraping lawsuits multiply and AI-specific regulation accelerates, how you collect data matters as much as what you collect. This guide covers the risks of non-compliant scraping, five core principles for ethical data collection, and a practical checklist you can apply today.