- Notifications
You must be signed in to change notification settings - Fork2
🦁 Brave Search Python Client supporting Web, Image, News and Video Search.
License
helmut-hoffer-von-ankershoffen/brave-search-python-client
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Tip
Note
🧠 This project was scaffolded using the templateoe-python-template withcopier.
Brave Search Python Client supporting Web, Image, News and Video search.
Use Cases:
- Integrate into your Python code to help users find what they're looking for.
- Add to your AI applications to give LLMs access to current web information.
- Use the built-in CLI in shell scripts to get search results in JSON format.
Adding Brave Search Python Client to your project as a dependency is easy.
uv add brave-search-python-client# add dependency to your projectIf you don't have uv installed followthese instructions.If you still prefer pip over the modern and fast package manageruv, you can install the library like this:
pip install brave-search-python-client# add dependency to your projectObtain your Brave Search API key bysigning up here - the free tier includes 2,000requests per month. For guidance on how to integrate the Brave Search Pythonclient into your code base check out the examples below and explore thereference documentation.If you just want to try out the client without having to write code you can usethe integrated CLI:
export BRAVE_SEARCH_API_KEY=YOUR_API_KEY# replace YOUR_API_KEYuvx brave-search-python-client web"hello world"# search for hello world
All advanced search options of Brave Search are supportedby the clientand in the CLI:
# Find all German content about AI added in the last 24 hoursuvx brave-search-python-client web --country=DE --search-lang=de --units=metric --freshness=pd aiThe CLI provides extensive help:
uvx brave-search-python-client --help# all CLI commandsuvx brave-search-python-client web --help# all options for web searchuvx brave-search-python-client images --help# all options image searchuvx brave-search-python-client videos --help# all options video searchuvx brave-search-python-client news --help# all options news search
This project is designed with operational excellence in mind, using modernPython tooling and practices. It includes:
- Various examples demonstrating usage: a.Simple Python scriptb.Streamlit web applicationdeployed onStreamlit Community Cloud c.JupyterandMarimonotebook
- Complete reference documentationon Read the Docs
- Transparent test coverageincluding unit and E2E tests (reported on Codecov)
- Matrix tested withmultiple python versionsto ensure compatibility (powered byNox)
- Compliant with modern linting and formatting standards (powered byRuff)
- Up-to-date dependencies (monitored byRenovate andDependabot)
- A-grade code qualityin security, maintainability, and reliability with low technical debt andcodesmell (verified by SonarQube)
- Additional code security checks usingCodeQL
- Security Policy
- License compliant with the Open Source Initiative (OSI)
- 1-liner for installation and execution of command line interface (CLI) viauv(x) orDocker
- Setup for developing inside adevcontainerincluded (supports VSCode and GitHub Codespaces)
"""Example script demonstrating the usage of the Brave Search Python Client.For web, image, video and news search."""importasyncioimportosfromdotenvimportload_dotenvfromrich.consoleimportConsolefrombrave_search_python_clientimport (BraveSearch,CountryCode,ImagesSearchRequest,LanguageCode,NewsSearchRequest,VideosSearchRequest,WebSearchRequest,)# Load .env file and get Brave Search API key from environmentload_dotenv()api_key=os.getenv("BRAVE_SEARCH_API_KEY")ifnotapi_key:msg="BRAVE_SEARCH_API_KEY not found in environment"raiseValueError(msg)asyncdefsearch()->None:"""Run various searches using the Brave Search Python Client (see https://brave-search-python-client.readthedocs.io/en/latest/lib_reference.html)."""# Initialize the Brave Search Python client, using the API key from the environmentbs=BraveSearch()# Perform a web searchresponse=awaitbs.web(WebSearchRequest(q="jupyter"))# Print results as JSON# Iterate over web hits and render links in markdownfor_resultinresponse.web.resultsifresponse.webelse []:pass# Advanced search with parametersresponse=awaitbs.web(WebSearchRequest(q="python programming",country=CountryCode.DE,search_lang=LanguageCode.DE, ), )for_resultinresponse.web.resultsifresponse.webelse []:pass# Search and render imagesresponse=awaitbs.images(ImagesSearchRequest(q="cute cats"))for_imageinresponse.resultsor []:pass# Search and render videosresponse=awaitbs.videos(VideosSearchRequest(q="singularity is close"))for_videoinresponse.resultsor []:pass# Search and render newsresponse=awaitbs.news(NewsSearchRequest(q="AI"))for_iteminresponse.resultsor []:pass# Run the async search function# Alternatively use await search() from an async functionasyncio.run(search())
Read the library reference documentationfor an explanation of available classes and methods.
Run withuvx
Add Brave Search API key to the environment
export BRAVE_SEARCH_API_KEY=YOUR_API_KEYShow available commands:
uvx brave-search-python-client --help
Search the web for "hello world":
uvx brave-search-python-client web"hello world"Show options for web search
uvx brave-search-python-client web --help
Search images:
uvx brave-search-python-client images"hello world"Show options for image search
uvx brave-search-python-client images --help
Search videos:
uvx brave-search-python-client videos"hello world"Show options for videos search
uvx brave-search-python-client videos --help
Search news:
uvx brave-search-python-client news"hello world"Show options for news search
uvx brave-search-python-client news --help
Read the CLI reference documentationfor an explanation of all commands and options.
Note: Replace YOUR_BRAVE_SEARCH_API_KEY with your API key in the followingexamples.
Show available commands:
docker run helmuthva/brave-search-python-client --help
Search the web:
docker run --env BRAVE_SEARCH_API_KEY=YOUR_BRAVE_SEARCH_API_KEY helmuthva/brave-search-python-client web"hello world"Show options for web search
docker run helmuthva/brave-search-python-client web --help
Search images:
docker run --env BRAVE_SEARCH_API_KEY=YOUR_BRAVE_SEARCH_API_KEY helmuthva/brave-search-python-client images"hello world"Show options for image search
docker run helmuthva/brave-search-python-client images --help
Search videos:
docker run --env BRAVE_SEARCH_API_KEY=YOUR_BRAVE_SEARCH_API_KEY helmuthva/brave-search-python-client videos"hello world"Show options for video search
docker run helmuthva/brave-search-python-client videos --help
Search news:
docker run --env BRAVE_SEARCH_API_KEY=YOUR_BRAVE_SEARCH_API_KEY helmuthva/brave-search-python-client news"hello world"Show options for news search
docker run helmuthva/brave-search-python-client news --help
Or use docker compose
File .env is passed through
docker compose updocker compose run brave-search-python-client --help
- Inspect oursecurity policy with detailed documentation of checks, tools and principles.
- Check out theCLI reference with detailed documentation of all CLI commands and options.
- Check out thelibrary reference with detailed documentation of public classes and functions.
- Check out theAPI reference with detailed documentation of all API operations and parameters.
- Ourrelease notes provide a complete log of recent improvements and changes.
- In case you want to help us improve 🦁 Brave Search Python Client: Thecontribution guidelines explain how to setup your development environment and create pull requests.
- We gratefully acknowledge theopen source projects that this project builds upon. Thank you to all these wonderful contributors!
About
🦁 Brave Search Python Client supporting Web, Image, News and Video Search.
Topics
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.


