option
HomeHome Skill API Development brightdata-cli

brightdata-cli

brightdata/skills brightdata/skills

Guide for using the Bright Data CLI (`brightdata` / `bdata`) to scrape websites, search the web, extract structured data from 40+ platforms, manage proxy zones, and check account budget. Use this skill whenever the user wants to scrape a URL, search Google/Bing/Yandex, extract data from Amazon/LinkedIn/Instagram/TikTok/YouTube/Reddit or any other platform, check their Bright Data balance or zones, or do anything involving web data collection from the terminal. Also trigger when the user mentions

...Expand all
74
Updated time June 29, 2026

About brightdata-cli

The Bright Data CLI is a command-line tool that provides direct terminal access to Bright Data's web data platform. It eliminates the complexity of web scraping by automatically handling authentication, proxy management, anti-bot bypass, CAPTCHA solving, and JavaScript rendering. Users simply log in once via OAuth, and the CLI handles all subsequent operations seamlessly without manual configuration or API key management.

This skill enables scraping any URL in multiple formats (markdown, HTML, JSON, screenshot), performing web searches across Google, Bing, and Yandex with structured results, and extracting data from over 40 platforms including Amazon, LinkedIn, Instagram, TikTok, YouTube, and Reddit. The CLI supports both synchronous and asynchronous operations, geo-targeted scraping from specific countries, and provides account management features like budget checking and proxy zone configuration. All operations work through simple commands like 'bdata scrape' or 'bdata search'.

The tool is designed for developers, data analysts, and researchers who need reliable web data collection without infrastructure overhead. Whether gathering competitive intelligence, monitoring content, performing SEO analysis, or collecting training data, the Bright Data CLI handles the technical complexities while exposing a straightforward command interface. It works across macOS, Linux, and Windows, requires only Node.js 20+, and can even run without installation via npx for one-off tasks.

FAQ

How do I authenticate with the Bright Data CLI?

Run 'bdata login' once to authenticate via OAuth in your browser. This saves your credentials locally and auto-configures required proxy zones. For headless environments, use 'bdata login --device' or 'bdata login --api-key ' for non-interactive authentication.

What platforms can I extract data from?

The CLI supports structured data extraction from 40+ platforms through pipelines, including Amazon, LinkedIn, Instagram, TikTok, YouTube, Reddit, and many others. Use 'bdata pipelines list' to see all available platform types.

What output formats are supported for scraping?

Scraping supports multiple formats: markdown (default), HTML, JSON for structured data, and screenshot images. Specify format with the -f flag like 'bdata scrape -f html' or 'bdata scrape -f screenshot -o image.png'.

Do I need to manage proxies or handle CAPTCHAs myself?

No. The CLI automatically handles proxy management, anti-bot bypass, CAPTCHA solving, and JavaScript rendering. After the initial 'bdata login', all technical complexity is abstracted away.

Can I scrape from specific geographic locations?

Yes. Use the --country flag to specify geo-targeted scraping, for example 'bdata scrape https://amazon.com --country us' to scrape from a US IP address.

View on GitHub

Bright Data CLI

The Bright Data CLI (brightdata or bdata) gives you full access to Bright Data's web data platform from the terminal. It handles authentication, proxy zones, anti-bot bypass, CAPTCHA solving, and JavaScript rendering automatically — the user just needs to log in once.

Installation

If the CLI is not installed yet, guide the user:

macOS / Linux:

curl -fsSL https://cli.brightdata.com/install.sh | bash

Windows or manual install (any platform):

npm install -g @brightdata/cli

Without installing (one-off usage):

npx --yes --package @brightdata/cli brightdata <command>

Requires Node.js >= 20. After install, both brightdata and bdata (shorthand) are available.

First-Time Setup

Before anything else, check if the user is authenticated. If they haven't logged in yet, guide them through the one-time setup:

# One-time login — opens the browser for OAuth, then everything is automaticbdata login

This single command:

  1. Opens the browser for secure OAuth authentication
  2. Saves the API key locally (never needs to be entered again)
  3. Auto-creates required proxy zones (cli_unlocker, cli_browser)
  4. Sets default configuration

After login, every subsequent command works without any manual intervention.

For headless/SSH environments where no browser is available:

bdata login --device

For direct API key authentication (non-interactive):

bdata login --api-key <key>

To verify setup is complete, run:

bdata config

Command Reference

Read references/commands.md for the full command reference with all flags, options, and examples for every command.

Read references/pipelines.md for the complete list of 40+ pipeline types (Amazon, LinkedIn, Instagram, TikTok, YouTube, Reddit, and more) with their specific parameters.

Quick Command Overview

bdata is the shorthand for brightdata. Both work identically.

CommandPurpose
bdata scrape <url>Scrape any URL as markdown, HTML, JSON, or screenshot
bdata search "<query>"Search Google/Bing/Yandex with structured results
bdata pipelines <type> [params]Extract structured data from 40+ platforms
bdata pipelines listList all 40+ available pipeline types
bdata status <job-id>Check async job status
bdata zonesList proxy zones
bdata budgetView account balance and costs
bdata skill addInstall AI agent skills
bdata skill listList available skills
bdata configView/set configuration
bdata loginAuthenticate with Bright Data
bdata versionShow CLI version and system info

How to Use Each Command

Scraping

Scrape any URL with automatic bot bypass, CAPTCHA handling, and JS rendering:

# Default: returns clean markdownbdata scrape https://example.com# Get raw HTMLbdata scrape https://example.com -f html# Get structured JSONbdata scrape https://example.com -f json# Take a screenshotbdata scrape https://example.com -f screenshot -o page.png# Geo-targeted scrape from the USbdata scrape https://amazon.com --country us# Save to filebdata scrape https://example.com -o page.md# Async mode for heavy pagesbdata scrape https://example.com --async

Searching

Search engines with structured JSON output (Google returns parsed organic results, ads, People Also Ask, and related searches):

# Google search with formatted tablebdata search "web scraping best practices"# Get raw JSON for pipingbdata search "typescript tutorials" --json# Search Bingbdata search "bright data pricing" --engine bing# Localized searchbdata search "restaurants berlin" --country de --language de# News searchbdata search "AI regulation" --type news# Extract just URLsbdata search "open source tools" --json | jq -r '.organic[].link'

Pipelines (Structured Data Extraction)

Extract structured data from 40+ platforms. These trigger async jobs that poll until results are ready:

# LinkedIn profilebdata pipelines linkedin_person_profile "https://linkedin.com/in/username"# Amazon productbdata pipelines amazon_product "https://amazon.com/dp/B09V3KXJPB"# Instagram profilebdata pipelines instagram_profiles "https://instagram.com/username"# Amazon searchbdata pipelines amazon_product_search "laptop" "https://amazon.com"# YouTube comments (top 50)bdata pipelines youtube_comments "https://youtube.com/watch?v=..." 50# Google Maps reviews (last 7 days)bdata pipelines google_maps_reviews "https://maps.google.com/..." 7# Output as CSVbdata pipelines amazon_product "https://amazon.com/dp/..." --format csv -o product.csv# List all available pipeline typesbdata pipelines list

Checking Status

For async jobs (from --async scrapes or pipelines):

# Quick status checkbdata status <job-id># Wait until completebdata status <job-id> --wait# With custom timeoutbdata status <job-id> --wait --timeout 300

Budget & Zones

# Quick account balancebdata budget# Detailed balance with pending chargesbdata budget balance# All zones cost/bandwidthbdata budget zones# Specific zone costsbdata budget zone my_zone# Date range filterbdata budget zones --from 2024-01-01T00:00:00 --to 2024-02-01T00:00:00# List all zonesbdata zones# Zone detailsbdata zones info cli_unlocker

Configuration

# View all configbdata config# Set defaultsbdata config set default_zone_unlocker my_zonebdata config set default_format json

Installing AI Agent Skills

# Interactive picker — choose skills and target agentsbdata skill add# Install a specific skillbdata skill add scrape# List available skillsbdata skill list

Output Modes

Every command supports multiple output formats:

FlagEffect
(none)Human-readable formatted output with colors
--jsonCompact JSON to stdout
--prettyIndented JSON to stdout
-o <path>Write to file (format auto-detected from extension)

When piped (stdout is not a TTY), colors and spinners are automatically disabled.

Chaining Commands

The CLI is pipe-friendly:

# Search → extract first URL → scrape itbdata search "top open source projects" --json \  | jq -r '.organic[0].link' \  | xargs bdata scrape# Scrape and view with markdown readerbdata scrape https://docs.github.com | glow -# Amazon product data to CSVbdata pipelines amazon_product "https://amazon.com/dp/xxx" --format csv > product.csv

Environment Variables

These override stored configuration:

VariablePurpose
BRIGHTDATA_API_KEYAPI key (skips login entirely)
BRIGHTDATA_UNLOCKER_ZONEDefault Web Unlocker zone
BRIGHTDATA_SERP_ZONEDefault SERP zone
BRIGHTDATA_POLLING_TIMEOUTPolling timeout in seconds

Troubleshooting

ErrorFix
CLI not foundInstall with npm i -g @brightdata/cli or curl -fsSL https://cli.brightdata.com/install.sh | bash
"No Web Unlocker zone specified"bdata config set default_zone_unlocker <zone> or re-run bdata login
"Invalid or expired API key"bdata login
"Access denied"Check zone permissions in the Bright Data control panel
"Rate limit exceeded"Wait and retry, or use --async for large jobs
Async job timeoutIncrease with --timeout 1200 or BRIGHTDATA_POLLING_TIMEOUT=1200

Key Design Principles

  • One-time auth: After bdata login, everything is automatic. No tokens to manage, no keys to pass.
  • Zones auto-created: Login creates cli_unlocker and cli_browser zones automatically.
  • Smart defaults: Markdown output, auto-detected formats from file extensions, colors only in TTY.
  • Pipe-friendly: JSON output + jq for automation. Colors/spinners disabled in pipes.
  • Async support: Heavy jobs can run in background with --async + status --wait.
  • npm package: @brightdata/cli — install globally or use via npx.

Install brightdata-cli

Download and extract the skill files to your .claude/skills/ directory.

Download ZIP

Clone the repository and copy the skill files to your project.

git clone https://github.com/brightdata/skills/blob/main/skills/brightdata-cli/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Copy Copy
Quick Setup: Copy the skill folder to .claude/skills/Claude will automatically detect and use the skill
Repository brightdata/skills

Related Skills

agentwallet
Updated time July 7, 2026
humanize
Updated time July 7, 2026
korean-stock-search
Updated time July 8, 2026
trello
Updated time July 1, 2026
OR