Skip to main content

How to Set Up Bright Data Proxies: Complete Integration Guide

· 6 min read
Yassine El Haddad
Software Developer & Automation Specialist

I build production AI agents, web scrapers, and automation pipelines. Most of what I publish here comes from the actual problems they run into: proxies that get banned, anti-bot stacks that fingerprint your client, RAG that drifts when the underlying data moves. Stack: Python, TypeScript, Go, FastAPI, LangChain, Crawlee, Playwright, deployed on AWS, GCP, and Cloudflare.

Quick Answer

Set up Bright Data proxies in 3 steps: (1) Create an account and complete any required verification, (2) choose a proxy typeresidential, datacenter, ISP, or mobile—and create a zone, then generate username/password and host/port, (3) paste credentials into your scraper, script, or Apify proxy settings and test with Bright Data’s geo check endpoint before hitting real targets.

Bright Data offers residential, datacenter, ISP, and mobile proxy products behind a single Super Proxy hostname. Correct zone choice and credential format prevent surprise bills (residential is priced per GB) and avoid blocked or unsupported destinations.

This post is a practical setup path: pick a network, provision a zone, verify connectivity, then wire Python, Node.js, or cURL. For teams that do not want to own retry logic and browser farms, Apify is a common managed alternative—Bright Data and Apify are often used together when you need custom proxy pools inside your own code.

Step 1 — Create an account and pick a proxy type

  1. Sign up at Bright Data.
  2. Complete KYC / compliance steps if prompted (some networks stay locked until verification finishes).
  3. Choose the minimum network that solves your blocking problem:
NetworkBest forTradeoff
DatacenterFast, cheap throughput on less aggressive targetsEasier to flag on strict sites
ResidentialWAF-heavy pages that distrust DC IPsPer-GB cost; watch media-heavy pages
ISPSticky sessions that look like consumer ISP IPsPriced per IP / plan tier
MobileMobile-only or very hostile surfacesPremium pricing

Rule of thumb: start datacenter, escalate when you see 403/429, hard blocks, or fingerprint failures—then justify the budget for residential or mobile.

Step 2 — Create a zone and generate credentials

  1. Open the Bright Data control panel.
  2. Go to Proxies / Proxy zones (wording may vary slightly in the UI).
  3. Add a zone and select the network type you chose in Step 1.
  4. Set geo targeting (country, city, ASN) if needed—narrow targeting can increase cost or reduce pool size.
  5. Copy:
  • Customer ID (embedded in the username)
  • Zone name
  • Zone password
  • Super Proxy host: brd.superproxy.io
  • Ports: 33335 (HTTP/HTTPS) · 22228 (SOCKS5)

Username format (conceptually):

brd-customer-<CUSTOMER_ID>-zone-<ZONE_NAME>

Full proxy URL (HTTP):

http://brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD@brd.superproxy.io:33335

Step 3 — Connect from your scraper or Apify

Verify the exit IP first

Hit Bright Data’s test endpoint to confirm IP and geonot a production target:

https://geo.brdtest.com/welcome.txt

Search engines

Many proxy zones are not meant for raw Google/Bing SERP scraping. If you need search results, use a dedicated SERP product or a provider workflow built for that—otherwise expect 403 or policy blocks from the proxy vendor, not only the target.

Python (requests)

import requests

proxy_url = (
"http://brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD@"
"brd.superproxy.io:33335"
)
proxies = {"http": proxy_url, "https": proxy_url}

response = requests.get(
"https://geo.brdtest.com/welcome.txt",
proxies=proxies,
verify=False, # often required for Bright Data TLS termination—pin carefully in prod
timeout=30,
)
print(response.text)

Node.js (axios)

const axios = require("axios");
const https = require("https");

const httpsAgent = new https.Agent({ rejectUnauthorized: false });

axios
.get("https://geo.brdtest.com/welcome.txt", {
httpsAgent,
proxy: {
host: "brd.superproxy.io",
port: 33335,
auth: {
username: "brd-customer-CUSTOMER_ID-zone-ZONE_NAME",
password: "ZONE_PASSWORD",
},
},
})
.then((r) => console.log(r.data))
.catch((e) => console.error(e.message));

cURL

curl -x "http://brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD@brd.superproxy.io:33335" \
--insecure "https://geo.brdtest.com/welcome.txt"

Using Bright Data inside Apify

Apify Actors accept custom proxy URLs. Paste the same Super Proxy string into proxy configuration (or secret env vars) so browser and HTTP traffic exit through Bright Data. You still pay Apify compute plus Bright Data bandwidth—instrument both.

Browse Apify Actors

Session stickiness and TTL

By default you may get a new exit IP per request. For multi-step flows (login → navigate → export), add a session id to the username (exact syntax is documented in Bright Data’s portal for your zone):

...-zone-ZONE_NAME-session-mysession123:PASSWORD@...

If peers drop mid-flow, use min_ttl (when supported for your product) so the session tries to stay alive for N minutes—still retry with backoff on disconnects.

SOCKS5

For non-HTTP stacks or clients that need SOCKS5, use port 22228 and prefer socks5h:// so DNS resolves on the proxy (avoids DNS leaks):

curl -x "socks5h://brd-customer-CUSTOMER_ID-zone-ZONE_NAME:ZONE_PASSWORD@brd.superproxy.io:22228" \
"https://geo.brdtest.com/welcome.txt"

See Bright Data’s SOCKS5 docs in-product for product-specific limits.

Cost and failure modes engineers actually hit

  1. Headless browsers + residential = large downloads (images, video, fonts) → GB charges spike. Block assets you do not need.
  2. DNS leaks misconfigure “proxied HTTP but local DNS” → WAFs see your real resolver. Use socks5h:// or client settings that force remote resolution.
  3. Residential peers disappear → design retries, idempotent fetches, and checkpointing.
Apify Affiliate Banner 728x90Apify Affiliate Banner 728x90Apify Affiliate Banner 300x50Apify Affiliate Banner 300x50
Frequently Asked Questions

You may be hitting a domain blocked for that product (search engines are a common case), using the wrong product for the job, or missing compliance steps. Read the error body and Bright Data’s policy docs; switch to an approved workflow such as a SERP API or a different zone type.

Often it means the account or zone is not cleared for the network you selected, or the destination requires a different Bright Data product. Finish KYC, confirm the zone is active, and retry with the geo test URL.

Yes—that is the default for many configurations. For scraping, combine rotation with polite rate limits and retries; brute-forcing requests will still burn money and get you blocked.

They solve different layers: Bright Data sells proxy infrastructure; Apify runs hosted Actors, browsers, storage, and scheduling. Many teams use Apify for orchestration and optionally attach Bright Data as a custom proxy provider.

It is common in quickstarts because of TLS termination at the proxy. In production, follow Bright Data’s current guidance on certificate pinning or official client libraries if available, and document the security tradeoff for your org.