| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Full Changelog: v2.5.0...v2.5.2
CLI-credentials auth fallback — one brightdata login now authenticates the SDK too. With no token given, the client falls back to the token already saved by the Bright Data CLI:
client = BrightDataClient() # zero configuration on a logged-in machineResolution order: token= parameter → BRIGHTDATA_API_TOKEN / BRIGHTDATA_API_KEY env vars → CLI login → actionable error mentioning brightdata login.
Every request now reports how the token was obtained via the User-Agent header (auth=param / env / cli_credentials) — the token itself is never logged.
Internal: shared ScraperCore — the 7 search scrapers (Amazon, ChatGPT, Instagram, LinkedIn, Pinterest, TikTok, YouTube) now share one construction core instead of hand-copied __init__s, fixing drift where Amazon/ChatGPT/LinkedIn search were missing the BRIGHTDATA_API_TOKEN environment fallback that the others already had.
Full diff: v2.4.1...main
Merge pull request #44 from omri-rulf/update_API_key_URL_to_current_C…
Full changelog: https://github.com/brightdata/sdk-python/blob/main/CHANGELOG.md
Add browser-api to readme & various fixes to discovery api and scrapers
We are excited to announce the latest release of the Bright Data SDK! This update brings major new capabilities to our Web Scraper API, introduces new supported targets, and includes a massive under-the-hood cleanup to improve stability, maintainability, and test coverage.
Access 100+ ready-made datasets from Bright Data — pre-collected, structured data from popular platforms.
E-commerce (Amazon, Walmart, Shopee, Zalando, Zara, H&M, IKEA, Shein, Sephora), Social media (Instagram, TikTok, Pinterest,
YouTube, Facebook), Business intelligence (ZoomInfo, PitchBook, Owler, Slintel, G2, Trustpilot), Jobs & HR (Glassdoor, Indeed,
Xing), Real estate (Zillow, Airbnb + 8 regional), Luxury brands (Chanel, Dior, Prada, Hermes, YSL), Entertainment (IMDB, NBA,
Goodreads), and more.
| Method | Description |
|---|---|
| client.scrape.instagram.profiles/posts/reels/comments(url) | Extract data from URL |
| client.search.instagram.profiles(user_name) | Find profile by username |
| client.search.instagram.posts/reels/reels_all(url, ...) | Discover content with filters |
Full Changelog: v2.1.0...v2.1.1
Non-blocking async mode for SERP and Web Unlocker APIs using mode="async":
result = await client.search.google(query="python", mode="async")
result = await client.scrape_url(url="https://example.com", mode="async")
How it works: Triggers request → gets response_id → polls until ready
Full Changelog: https://github.com/brightdata/sdk-python/blob/main/CHANGELOG.md
This is a major breaking release requiring code changes. Python 3.9+ now required.
# ❌ Old
from brightdata import bdclient
client = bdclient(api_token="your_token")
# ✅ New
from brightdata import BrightDataClient
client = BrightDataClient(token="your_token")# ❌ Old - Flat API
client.scrape_linkedin.profiles(url)
client.search_linkedin.jobs()
result = client.scrape(url, zone="my_zone")
# ✅ New - Hierarchical API
client.scrape.linkedin.profiles(url)
client.search.linkedin.jobs()
result = client.scrape_url(url, zone="my_zone")# ✅ New - Recommended approach
client.scrape.amazon.products(url)
client.scrape.amazon.reviews(url)
client.scrape.amazon.sellers(url)
client.scrape.linkedin.profiles(url)
client.scrape.instagram.profiles(url)
client.scrape.facebook.posts(url)# ❌ Old
results = client.search(query, search_engine="google")
# ✅ New - Dedicated methods
client.search.google(query)
client.search.bing(query)
client.search.yandex(query)# ✅ Sync (still supported)
client = BrightDataClient(token="...")
result = client.scrape_url(url)
# ✅ Async (recommended for performance)
async with BrightDataClient(token="...") as client:
result = await client.scrape_url_async(url)
# ✅ Async batch operations
async def scrape_multiple():
async with BrightDataClient(token="...") as client:
tasks = [client.scrape_url_async(url) for url in urls]
results = await asyncio.gather(*tasks)# ✅ Fine-grained control
job = await scraper.trigger(url)
# Do other work...
status = await job.status_async()
if status == "ready":
data = await job.fetch_async()# ❌ Old - untyped dicts
payload = {"url": "...", "reviews_count": 100}
# ✅ New - structured with validation
from brightdata import AmazonProductPayload
payload = AmazonProductPayload(
url="https://amazon.com/dp/B123",
reviews_count=100
)
result = client.scrape.amazon.products(payload)# ✅ New - structured objects with metadata
result = client.scrape.amazon.products(url)
print(result.data) # Actual scraped data
print(result.timing) # Performance metrics
print(result.cost) # Cost tracking
print(result.snapshot_id) # Job identifier# ✅ Command-line interface
brightdata scrape amazon products --url https://amazon.com/dp/B123
brightdata search google --query "python sdk"
brightdata search linkedin jobs --location "Paris"
brightdata crawler discover --url https://example.com --depth 3# ❌ Old
client = bdclient(
api_token="token", # Changed parameter name
auto_create_zones=True, # Default changed to False
web_unlocker_zone="sdk_unlocker", # Default changed
serp_zone="sdk_serp", # Default changed
browser_zone="sdk_browser" # Default changed
)
# ✅ New
client = BrightDataClient(
token="token", # Renamed from api_token
auto_create_zones=False, # New default
web_unlocker_zone="web_unlocker1", # New default name
serp_zone="serp_api1", # New default name
browser_zone="browser_api1", # New default name
timeout=30, # New parameter
rate_limit=10, # New parameter (optional)
rate_period=1.0 # New parameter
)| Platform | Status | Methods |
|---|---|---|
| Amazon | ✅ NEW | products(), reviews(), sellers() |
| ✅ NEW | profiles(), posts(), comments(), reels() | |
| ✅ NEW | posts(), comments(), groups() | |
| ✅ Enhanced | Full scraping and search | |
| ChatGPT | ✅ Enhanced | Improved interaction |
| Google/Bing/Yandex | ✅ Enhanced | Dedicated services |
Full Changelog: v1.1.3...v2.0.0
| Back | FazBrowse Home | New Git URL |