Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Bright Data Python SDK Changelog

## Version 3.0.0 - Discover API removed

### 🚨 Breaking Changes

The Bright Data Discover API integration is removed from the SDK. Everything below is gone:

- **Async client**: `BrightDataClient.discover()` and `BrightDataClient.discover_trigger()`
- **Sync client**: `SyncBrightDataClient.discover()`, `discover_trigger()`, `discover_status()`, `discover_wait()`, `discover_fetch()` and `discover_to_result()`
- **Exported models**: `DiscoverResult`, `DiscoverJob` and `DiscoverSnapshot` are no longer exported from `brightdata`
- **Module**: the `brightdata.discover` package (`DiscoverService` and its models) is deleted

**Migration**: use `client.search.google()` / `bing()` / `yandex()` to find sources and `client.scrape_url()` to read them.

Unaffected: the dataset *discovery* endpoints (`client.search.instagram.posts()`, `discover_by_category()`, the `InstagramPostsDiscoverPayload` / `InstagramReelsDiscoverPayload` payloads, and every `discover_by` / `discover_new` dataset trigger) are a different feature and are untouched.

## Version 2.5.1 - Lint cleanup

- **Chore**: pinned an explicit `ruff` lint rule scope (`select`) and sorted imports repo-wide. No behavior changes.
Expand Down
25 changes: 0 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,31 +184,6 @@ async with async_playwright() as pw:

**When to use:** sites that require full browser automation — JS rendering, login flows, interactive clicks. For plain HTML fetches, prefer `client.scrape_url()`.

### Discover API

AI-ranked web search. Unlike SERP (which returns engine-ordered results), Discover takes a `query` plus an `intent` phrase and re-ranks by relevance. Optionally extracts full page content as markdown.

```python
async with BrightDataClient() as client:
result = await client.discover(
query="artificial intelligence trends 2026",
intent="latest AI technology developments",
country="us",
num_results=10,
)
for item in result.data:
print(f"[{item['relevance_score']:.2f}] {item['title']} {item['link']}")
```

For long-running discoveries, trigger and poll separately:

```python
job = await client.discover_trigger(query="...", intent="...")
result = await job.wait_and_fetch(timeout=60)
```

**When to use Discover vs SERP:** Discover when you want *entity-level* relevance ranking driven by a natural-language intent (e.g. "find sustainability-focused AI companies"). SERP when you want raw search engine results.

### Scraper Studio

Run custom collectors built in [Bright Data's Scraper Studio](https://brightdata.com/cp/scrapers). One call triggers the job, polls until ready, and returns the records:
Expand Down
Loading