BrightData

BrightDataTools enable an Agent to scrape webpages as markdown, capture screenshots, run search engine queries, and pull structured data feeds from LinkedIn, Amazon, Instagram, and more.

BrightDataTools provide comprehensive web scraping capabilities including markdown conversion, screenshots, search engine results, and structured data feeds from various platforms like LinkedIn, Amazon, Instagram, and more.

Prerequisites

The following examples require the requests library:

uv pip install -U agno requests openai

You'll also need a BrightData API key. Set the BRIGHT_DATA_API_KEY environment variable:

export BRIGHT_DATA_API_KEY="YOUR_BRIGHTDATA_API_KEY"

Use the names of existing Web Unlocker and SERP zones in your Bright Data account. The default names and environment variables do not create zones:

export BRIGHT_DATA_WEB_UNLOCKER_ZONE="your_web_unlocker_zone"
export BRIGHT_DATA_SERP_ZONE="your_serp_zone"

Example

Scrape a webpage and return its content as Markdown:

from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.brightdata import BrightDataTools

agent = Agent(
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[
        BrightDataTools(
            enable_screenshot=False,
        )
    ],
    markdown=True,
    )

# Example 1: Scrape a webpage as Markdown
agent.print_response(
    "Scrape this webpage as markdown: https://docs.agno.com/introduction",
)

Toolkit Params

ParameterTypeDefaultDescription
api_keyOptional[str]NoneBrightData API key. If not provided, uses BRIGHT_DATA_API_KEY environment variable.
enable_scrape_markdownboolTrueEnable the scrape_as_markdown function.
enable_screenshotboolTrueEnable the get_screenshot function.
enable_search_engineboolTrueEnable the search_engine function.
enable_web_data_feedboolTrueEnable the web_data_feed function.
allboolFalseEnable all available functions. When True, all enable flags are ignored.
serp_zonestr"serp_api"SERP zone for search operations. Can be overridden with BRIGHT_DATA_SERP_ZONE environment variable.
web_unlocker_zonestr"web_unlocker1"Web unlocker zone for scraping operations. Can be overridden with BRIGHT_DATA_WEB_UNLOCKER_ZONE environment variable.
verboseboolFalseEnable verbose logging.
timeoutint600Timeout in seconds for operations.

Toolkit Functions

FunctionDescription
scrape_as_markdownScrapes a webpage and returns content in Markdown format. Parameters: url (str) - URL to scrape.
get_screenshotCaptures a screenshot of a webpage and adds it as an image artifact. Parameters: url (str) - URL to screenshot. The toolkit has no output_path parameter.
search_engineSearches using Google, Bing, or Yandex and returns results in Markdown. Parameters: query (str), engine (str, default: "google"), num_results (int, default: 10), language (Optional[str]), country_code (Optional[str]).
web_data_feedRetrieves structured data from various sources like LinkedIn, Amazon, Instagram, etc. Parameters: source_type (str), url (str), num_of_reviews (Optional[int]).

Current adapter limitations

get_screenshot stores base64 text where the image artifact expects PNG bytes, so it produces an invalid image artifact. The example disables screenshots until this is corrected upstream.

The youtube_videos data-feed mapping currently points to the Booking.com dataset. Use a direct request to the YouTube Videos dataset for that feed.

num_results, language, and country_code are applied only to Google queries by this adapter, not Bing or Yandex.

Supported Data Sources

E-commerce

  • amazon_product - Amazon product details
  • amazon_product_reviews - Amazon product reviews
  • amazon_product_search - Amazon product search results
  • walmart_product - Walmart product details
  • walmart_seller - Walmart seller information
  • ebay_product - eBay product details
  • homedepot_products - Home Depot products
  • zara_products - Zara products
  • etsy_products - Etsy products
  • bestbuy_products - Best Buy products

Professional Networks

  • linkedin_person_profile - LinkedIn person profiles
  • linkedin_company_profile - LinkedIn company profiles
  • linkedin_job_listings - LinkedIn job listings
  • linkedin_posts - LinkedIn posts
  • linkedin_people_search - LinkedIn people search results

Social Media

  • instagram_profiles - Instagram profiles
  • instagram_posts - Instagram posts
  • instagram_reels - Instagram reels
  • instagram_comments - Instagram comments
  • facebook_posts - Facebook posts
  • facebook_marketplace_listings - Facebook Marketplace listings
  • facebook_company_reviews - Facebook company reviews
  • facebook_events - Facebook events
  • tiktok_profiles - TikTok profiles
  • tiktok_posts - TikTok posts
  • tiktok_shop - TikTok shop
  • tiktok_comments - TikTok comments
  • x_posts - X (Twitter) posts

Other Platforms

  • google_maps_reviews - Google Maps reviews
  • google_shopping - Google Shopping results
  • google_play_store - Google Play Store apps
  • apple_app_store - Apple App Store apps
  • youtube_profiles - YouTube profiles
  • youtube_videos - Currently mapped incorrectly; see the adapter limitation above
  • youtube_comments - YouTube comments
  • reddit_posts - Reddit posts
  • zillow_properties_listing - Zillow property listings
  • booking_hotel_listings - Booking.com hotel listings
  • crunchbase_company - Crunchbase company data
  • zoominfo_company_profile - ZoomInfo company profiles
  • reuter_news - Reuters news
  • github_repository_file - GitHub repository files
  • yahoo_finance_business - Yahoo Finance business data

Developer Resources