Best for
- Use when a coding agent first encounters Bright Data — for live web work (search, scrape, structured data), for wiring Bright Data into product code, for installing the agent skill bundle, or for getting an API key.
brightdata/skills/skills/agent-onboarding/SKILL.md
Onboard an agent to Bright Data. Use when a coding agent first encounters Bright Data — for live web work (search, scrape, structured data), for wiring Bright Data into product code, for installing the agent skill bundle, or for getting an API key. One install command sets up the CLI, agent skills, and authentication. Routes the reader to the right path: live tools, app integration, MCP, auth-only, or direct REST without any install.
Decision brief
Bright Data gives agents reliable access to the open web: SERP results that look like a real browser, clean markdown from any URL (with CAPTCHA + JS handled), structured datasets for 40+ platforms (Amazon, LinkedIn, Instagram, TikTok, YouTube, Reddit, Crunchbase, …), and a Brows…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/brightdata/skills --skill "skills/agent-onboarding"Inspect the Agent Skill "agent-onboarding" from https://github.com/brightdata/skills/blob/e825f02fbcd7a89087fd1053a57ddcd45113370f/skills/agent-onboarding/SKILL.md at commit e825f02fbcd7a89087fd1053a57ddcd45113370f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
One command installs the CLI and the agent skills, and walks the human through OAuth in the browser:
curl -fsSL https://cli.brightdata.com/install.sh | bash
Review the “Cross-platform (or if you don't want the install script)” section in the pinned source before continuing.
Review the “One-off, no install” section in the pinned source before continuing.
export BRIGHTDATAAPIKEY= bash bdata version bdata config confirms auth + zones bdata zones should list cliunlocker, clibrowser bdata budget confirms account + balance bash
Permission review
The documentation includes network, browsing, or remote request actions.
curl -fsSL https://cli.brightdata.com/install.sh | bashThe documentation asks the agent to run terminal commands or scripts.
npm install -g @brightdata/cliThe documentation asks the agent to run terminal commands or scripts.
npx --yes --package @brightdata/cli brightdata <command>The documentation includes network, browsing, or remote request actions.
curl -sS https://api.brightdata.com/request \Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 255 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Bright Data gives agents reliable access to the open web: SERP results that look like a real browser, clean markdown from any URL (with CAPTCHA + JS handled), structured datasets for 40+ platforms (Amazon, LinkedIn, Instagram, TikTok, YouTube, Reddit, Crunchbase, …), and a Browser API for pages that need real interaction.
This skill is the entry point. Read it once, pick a path, then hand off to the narrower skill that owns that path.
One command installs the CLI and the agent skills, and walks the human through OAuth in the browser:
# macOS / Linux — fastest install
curl -fsSL https://cli.brightdata.com/install.sh | bash
# Cross-platform (or if you don't want the install script)
npm install -g @brightdata/cli
# One-off, no install
npx --yes --package @brightdata/cli brightdata <command>
Requires Node.js >= 20. After install, both brightdata and bdata
(shorthand) are available.
Then authenticate once:
bdata login
This single command:
bdata login --device on
headless / SSH machines)cli_unlocker,
cli_browser)For non-interactive setups you can pass the key directly:
bdata login --api-key <key>
# or
export BRIGHTDATA_API_KEY=<key>
Verify the install before doing real work:
bdata version
bdata config # confirms auth + zones
bdata zones # should list cli_unlocker, cli_browser
bdata budget # confirms account + balance
Branch deterministically on the result — don't eyeball it:
bdata config or bdata budget exits non-zero, route to Path C
(auth) before continuing.unauthorized, invalid api key, not logged in, no such zone, zone not found), treat it as a failure and route to
Path C.cli_unlocker / cli_browser zones.The CLI ships an installer that drops Bright Data skills directly into your coding agent's skill directory:
# Interactive picker — choose skills + target agent
bdata skill add
# Install a specific skill
bdata skill add scrape
bdata skill add data-feeds
bdata skill add competitive-intel
# See everything available
bdata skill list
These are the skills you'll hand off to from the paths below
(scrape, search, data-feeds, scraper-builder,
brightdata-cli, bright-data-mcp, …).
All paths share the same install + auth above. The difference is what you do next.
| Situation | Path |
|---|---|
| Need web data during this session | Path A — live CLI tools |
| Need to add Bright Data to app code | Path B — SDK / REST integration |
| Want a drop-in tool layer for an LLM agent | Path M — MCP server |
| Need an API key first | Path C — auth only |
| Don't want to install anything | Path D — REST API directly |
If your task spans paths, do them in order: auth → live tools to explore → app integration once the shape is known.
Use this when the agent itself needs web data right now: discovering URLs, fetching clean content, pulling structured records from a known platform, or running a quick competitive scan.
After install + login, hand off to the narrower skills:
brightdata-cli — overall command surface (scrape, search,
pipelines, status, zones, budget, config)search — discovery via bdata search (Google / Bing / Yandex
SERP, structured JSON)scrape — clean content from a known URL via bdata scrape
(markdown / HTML / JSON / screenshot)data-feeds — structured records from 40+ supported platforms via
bdata pipelines <type> (Amazon, LinkedIn, Instagram, TikTok,
YouTube, Reddit, Crunchbase, Google Maps, …)discover-api — intent-ranked semantic web search via
bdata discover (relevance-scored results + optional page content)scraper-studio — generate and run an AI-built scraper from a
plain-English description via bdata scraper create / bdata scraper runcompetitive-intel — packaged competitor / pricing / review /
hiring / SEO analyses on top of the CLIprice-comparison — "where is this cheapest, in stock?" across
Amazon, Walmart, eBay, Best Buy, Google Shopping, into one ranked tablebrand-listening — social-listening / sentiment digest of what
people are saying about a brand across Reddit, X, TikTok, news, reviewslive-research — multi-query Discover → dedup → a cited research briefseo-audit — sitemap-stratified live SEO auditsDefault flow for live web work:
bdata search "query" --jsonbdata pipelines amazon_product "https://amazon.com/dp/..."bdata scrape "https://example.com" -f markdownbrightdata-cli skill for bdata browser and the
bright-data-best-practices browser-api reference)When the task shifts from "fetch data now" to "wire this into an app," switch to Path B.
Use this when you're building an application, agent, or workflow that
calls Bright Data from code and needs BRIGHTDATA_API_KEY (and a
zone) in .env or runtime config.
The required question on this path is:
What should Bright Data do in the product?
Use the answer to pick the API:
| Job in product | API | Skill |
|---|---|---|
| Fetch a single page as markdown / HTML / JSON | Web Unlocker | bright-data-best-practices → web-unlocker.md |
| Search engine results in structured JSON | SERP API | bright-data-best-practices → serp-api.md |
| Structured records from supported platforms | Web Scraper API | bright-data-best-practices → web-scraper-api.md |
| JS-heavy / interactive pages with Playwright/Puppeteer | Browser API | bright-data-best-practices → browser-api.md |
| Build a custom scraper for an arbitrary site | All four, picked by site shape | scraper-builder |
Python → use the official SDK
pip install brightdata-sdk
Hand off to python-sdk-best-practices for client setup
(async/sync), platform scrapers, SERP, datasets, Browser API, and
error handling.
Node / TypeScript → use the official JS/TS SDK
npm install @brightdata/sdk
Hand off to js-sdk-best-practices for client setup (bdclient),
platform scrapers, SERP, Discover, datasets, Browser API, Scraper
Studio, and error handling.
Shell / other languages → call the REST API directly (Path D
below has the endpoints), or use the CLI as a library via
npx @brightdata/cli.
Raw proxy access (route HTTP through Bright Data IPs) → hand off
to proxy for network/pool choice, the brd-customer- username
format, SSL CA setup, and framework integrations.
Web-grounded retrieval / RAG for an LLM → hand off to
rag-pipeline (Discover as the retrieval / ingestion layer).
LLM tool layer (Claude, ChatGPT, etc.) → use the MCP server (Path M).
BRIGHTDATA_API_KEY=...
BRIGHTDATA_UNLOCKER_ZONE=cli_unlocker # created automatically by `bdata login`
BRIGHTDATA_SERP_ZONE=cli_unlocker # or a dedicated SERP zone
If you don't have a key yet, do Path C first.
Always run one real Bright Data request before scaling up integration work — catches auth, zone, and quota issues before they hide inside your app's error paths.
# Web Unlocker via REST
curl -sS https://api.brightdata.com/request \
-H "Authorization: Bearer $BRIGHTDATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"zone": "'"$BRIGHTDATA_UNLOCKER_ZONE"'",
"format": "raw",
"data_format": "markdown"
}' | head -40
If this prints clean markdown, you're wired up. If not, check the zone name and key.
Use this when the consumer is an LLM agent that should call Bright Data as tools (e.g., Claude Code, ChatGPT desktop, custom agent loops). The MCP server exposes 60+ tools — search, scrape, structured data per platform, browser automation — over a single URL.
Connect with:
https://mcp.brightdata.com/mcp?token=YOUR_BRIGHTDATA_API_TOKEN
Optional URL parameters:
| Parameter | Effect |
|---|---|
pro=1 | Enable all 60+ Pro tools |
groups=<name> | Enable a tool group (social, ecommerce, business, finance, research, app_stores, travel, browser, advanced_scraping) |
tools=<names> | Enable a specific tool list, comma-separated |
Hand off to the bright-data-mcp skill for tool selection, tool-group
auto-enabling, and workflow patterns. That skill explicitly replaces
WebFetch / WebSearch with Bright Data MCP equivalents.
MCP requests run on the Unlocker API and draw from the same monthly free-credit pool described under Path C — there's no separate MCP allowance.
Use this when the human still needs to sign up, sign in, or generate
a key. Skip this path if bdata config already shows an authenticated
account, or if BRIGHTDATA_API_KEY is already set in the environment.
Free tier — no card needed to start. Every new account gets 5,000 free credits / month (~$7.50) from one shared pool, so you can build and test before depositing anything. The docs are the source of truth for these numbers: https://docs.brightdata.com/general/account/billing-and-pricing/free-tier
- Shared pool across Unlocker API, SERP API, Web Scraper API, and Scraper Studio — 1 credit per request/record (Scraper Studio: 1 credit per page load).
- Bright Data MCP server requests draw from the same pool — MCP runs on the Unlocker API.
- Hard stop when credits run out if no funds are deposited — never a surprise bill.
- Credits reset on the 1st of each month and do not roll over.
- Not covered by monthly credits: Proxy products and the Browser API. Those use a separate one-time $2 trial (7 days) plus a $5 bonus (30 days) after adding a payment method.
- Not eligible: custom-PAYG and pre-commit plans.
bdata login # browser-based OAuth
bdata login --device # headless / SSH (device-code flow)
This handles signup-or-signin, key generation, zone creation, and local config in one step. Prefer this over manual flows.
If the human prefers the web UI:
echo "BRIGHTDATA_API_KEY=..." >> .env
echo "BRIGHTDATA_UNLOCKER_ZONE=<zone-name>" >> .env
bdata budget # any successful response means the key works
If verification fails, the key is wrong, the zone is wrong, or the account has no active subscription — surface the error to the human rather than guessing.
Use this when the environment can't run npm / curl | bash, or
when you only need one or two requests and don't want the CLI / SDK.
Works for both live agent work and app integration.
You still need an API key and a zone. Two ways to get them:
BRIGHTDATA_API_KEY=... and BRIGHTDATA_UNLOCKER_ZONE=... in the
environmentBase URL: https://api.brightdata.com
Auth header: Authorization: Bearer $BRIGHTDATA_API_KEY
# Web Unlocker — clean content from any URL
POST /request
{
"url": "https://target.com",
"zone": "<unlocker-zone>",
"format": "raw",
"data_format": "markdown" // or "html", "screenshot", "parsed_light"
}
# SERP API — structured search results
# Use the same /request endpoint with a SERP zone and a search URL,
# adding `brd_json=1` to receive parsed JSON instead of raw HTML.
POST /request
{
"url": "https://www.google.com/search?q=web+scraping&brd_json=1",
"zone": "<serp-zone>",
"format": "raw"
}
# Web Scraper API — structured data for 40+ platforms (async)
POST /datasets/v3/trigger?dataset_id=<id>
[ { "url": "https://amazon.com/dp/B09V3KXJPB" } ]
# then poll
GET /datasets/v3/snapshot/<snapshot_id>?format=json
For the full parameter surface (special headers like
x-unblock-expect, async response IDs, dataset progress states,
Browser API CDP commands), read the bright-data-best-practices
skill — its references are the source of truth for REST-level work.
Once the agent is set up, route the work to the narrowest skill that fits. Quick map:
| User says… | Skill |
|---|---|
| "scrape this URL" / "get this page" | scrape |
| "search Google for…" / "find URLs about…" | search |
| "find pages about matching " / "semantic / intent search" | discover-api |
| "get Amazon / LinkedIn / Instagram / TikTok / YouTube / Reddit data" | data-feeds |
| "build a scraper for " (I want runnable code I own) | scraper-builder |
| "generate a scraper from a description" / "bdata scraper run" (AI-built, no code) | scraper-studio |
| "analyze my competitor" / "competitor's pricing strategy" / "market landscape" | competitive-intel |
| "compare prices" / "cheapest place to buy X" / "price check" (shopping) | price-comparison |
| "what are people saying about us" / "monitor mentions" / "brand sentiment" | brand-listening |
| "research deeply" / "write a cited brief" | live-research |
| "build a RAG pipeline" / "add web search to my LLM" / "ground my model" | rag-pipeline |
| "audit SEO" / "rank check" / "schema check" | seo-audit |
| "make my app look like " / "mirror this design" | design-mirror |
| "write Bright Data code in Python" | python-sdk-best-practices |
| "write Bright Data code in JS / TypeScript" | js-sdk-best-practices |
| "route requests through a Bright Data proxy" / "brd-customer- username" | proxy |
| "plug Bright Data into my LLM agent" | bright-data-mcp |
| "use the CLI" / "run from terminal" | brightdata-cli |
| "debug a Browser API / Scraping Browser session" | brd-browser-debug |
When in doubt, prefer the more specific skill: data-feeds over
scrape for supported platforms, scraper-builder over scrape for
multi-page extraction, bright-data-mcp over brightdata-cli when
the consumer is an LLM agent rather than a human at a terminal.
Two pairs are easy to confuse:
scraper-builder vs scraper-studio — scraper-builder writes a
scraper you own and run yourself (real code + selectors + pagination).
scraper-studio turns a URL + plain-English description into an
AI-generated Bright Data collector you run via bdata scraper create / bdata scraper run — no code to maintain.competitive-intel vs price-comparison — competitive-intel is
business analysis of a competitor's pricing strategy and positioning;
price-comparison is consumer purchase research ("where is this
product cheapest and in stock").Frequently asked questions
Bright Data gives agents reliable access to the open web: SERP results that look like a real browser, clean markdown from any URL (with CAPTCHA + JS handled), structured datasets for 40+ platforms (Amazon, LinkedIn, Instagram, TikTok, YouTube, Reddit, Crunchbase, …), and a Brows…
The source record exposes this install command: npx skills add https://github.com/brightdata/skills --skill "skills/agent-onboarding". Inspect the command and pinned source before running it.
Static rules flagged network, exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing