feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat!: remove the Discover API surface - #51

Open
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api
Open

feat!: remove the Discover API surface#51
nirsha-brd wants to merge 1 commit into
brightdata:mainfrom
nirsha-brd:remove-discover-api

Conversation

@nirsha-brd

Copy link
Copy Markdown

Removes the Bright Data Discover API integration (POST/GET https://api.brightdata.com/discover).

Changes

FileChange
src/brightdata/discover/deleted (__init__.py, models.py, service.py)
notebooks/07_discover_api.ipynbdeleted
src/brightdata/client.pyremoved the imports, the _discover_service field, and discover() / discover_trigger()
src/brightdata/sync_client.pyremoved the import and all six sync verbs — discover, discover_trigger, discover_status, discover_wait, discover_fetch, discover_to_result — plus the _discover_service helper
src/brightdata/__init__.pyremoved the import and the DiscoverResult / DiscoverJob / DiscoverSnapshot__all__ entries
src/brightdata/models.pyremoved the trailing comment pointing at discover/models.py
tests/unit/test_colorless_service_verbs.pyremoved TestDiscoverServiceVerbs and the imports it orphaned
tests/unit/test_sync_client_coverage.pyremoved TestDiscoverSyncPath and the DiscoverSnapshot import
README.mdremoved the ### Discover API section
CHANGELOG.md / pyproject.toml2.5.1 → 3.0.0

The trap worth flagging in review

"discover" means two different products in this repo. 204 files match the string. All but a handful belong to the dataset discovery feature, which this PR does not touch:

  • discover_by / discover_new dataset triggers
  • discover_by_category (DigiKey, and its sync wrappers)
  • InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload
  • the client.search.* scrapers
  • 305 files under src/brightdata/datasets/ — I checked every one; their only match is the English verb in docstrings like "Use get_metadata() to discover all available fields"

I classified each reference before deleting anything. tests/unit/test_x_scraper.py::test_forwarded_on_discover_trigger is likewise unrelated — it is a test name, and its body calls posts_by_profile_trigger.

Verification

Baseline captured on pristine mainbefore any edit, then re-run on this branch.

CheckPristine mainThis branch
pytest321 passed, 0 failed313 passed, 0 failed
ruff check .1 error1 error (same one)
black --check .passpass — 391 files unchanged

The suite is fully green before and after. The delta of 8 is exactly the removed Discover tests: 5 from TestDiscoverServiceVerbs and 3 from TestDiscoverSyncPath. No test that existed before fails now.

The single ruff error is setup.py:8:1: I001 Import block is un-sorted or un-formatted — pre-existing and identical on untouched main, in a file this PR never opens.

Import smoke test on the built package:

import brightdata -> OK
BrightDataClient.discover -> gone
SyncBrightDataClient.discover -> gone
SyncBrightDataClient.discover_fetch -> gone
brightdata.DiscoverResult -> gone

Python resolves imports at module load, so a dangling reference to the deleted package would surface immediately on import brightdata. It does not.

Migration

Use client.search.google() / bing() / yandex() to find sources and client.scrape_url() to read them.

Version

3.0.0, matching this changelog's precedent — ## Version 2.0.0 carried a ### 🚨 Breaking Changes section for a change of this class. Removing eight public methods and three exported models is breaking.

Out of scope

brightdata/skills still ships a discover-api skill, and its python-sdk-best-practices, live-research and rag-pipeline skills reference client.discover. Those need a follow-up PR.

Removes the Bright Data Discover API integration
(POST/GET https://api.brightdata.com/discover).
Deletes the brightdata.discover package and notebooks/07_discover_api.ipynb;
removes BrightDataClient.discover() / discover_trigger(); removes the six
SyncBrightDataClient verbs (discover, discover_trigger, discover_status,
discover_wait, discover_fetch, discover_to_result) and the _discover_service
helper; drops the DiscoverResult / DiscoverJob / DiscoverSnapshot exports from
brightdata.__init__; and removes the Discover test classes from
test_colorless_service_verbs.py and test_sync_client_coverage.py along with
the imports they orphaned.
The dataset discovery feature is a DIFFERENT product and is untouched:
discover_by / discover_new dataset triggers, discover_by_category,
InstagramPostsDiscoverPayload / InstagramReelsDiscoverPayload, and the
search.* scrapers all remain.
BREAKING CHANGE: client.discover(), client.discover_trigger() and the sync
discover_* verbs are removed, along with the DiscoverResult, DiscoverJob and
DiscoverSnapshot exports.
@nirsha-brd
nirsha-brd marked this pull request as ready for review August 12, 2026 15:45
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@nirsha-brd