""" Simple Search API Example This example shows how to use the Browser Use API to search and extract content from multiple websites based on a query. Usage: # Copy this function and customize the parameters result = await simple_search("your search query", max_websites=5, depth=2) """ import asyncio import os import aiohttp from dotenv import load_dotenv # Load environment variables load_dotenv() async def simple_search(query: str, max_websites: int = 5, depth: int = 2): # Validate API key exists api_key = os.getenv('BROWSER_USE_API_KEY') if not api_key: print('❌ Error: BROWSER_USE_API_KEY environment variable is not set.') print('Please set your API key: export BROWSER_USE_API_KEY="your_api_key_here"') return None payload = {'query': query, 'max_websites': max_websites, 'depth': depth} headers = {'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json'} print('Testing Simple Search API...') print(f'Query: {query}') print(f'Max websites: {max_websites}') print(f'Depth: {depth}') print('-' * 50) try: async with aiohttp.ClientSession() as session: async with session.post( 'https://api.browser-use.com/api/v1/simple-search', json=payload, headers=headers, timeout=aiohttp.ClientTimeout(total=300), ) as response: if response.status == 200: result = await response.json() print('✅ Success!') print(f'Results: {len(result.get("results", []))} websites processed') for i, item in enumerate(result.get('results', [])[:2], 1): print(f'\n{i}. {item.get("url", "N/A")}') content = item.get('content', '') print(f' Content: {content}') return result else: error_text = await response.text() print(f'❌ Error {response.status}: {error_text}') return None except Exception as e: print(f'❌ Exception: {str(e)}') return None if __name__ == '__main__': # Example 1: Basic search asyncio.run(simple_search('latest AI news')) # Example 2: Custom parameters # asyncio.run(simple_search("python web scraping", max_websites=3, depth=3)) # Example 3: Research query # asyncio.run(simple_search("climate change solutions 2024", max_websites=7, depth=2))