Skip to main content

LangChain integration for Scavio Search API -- real-time Google, Amazon, Walmart, and YouTube data with knowledge graphs and structured results

Project description

langchain-scavio

PyPI version PyPI - Downloads License: MIT Python 3.10+ LangChain

LangChain integration for the Scavio Search API. Real-time structured data from Google, Amazon, Walmart, and YouTube — all through a single package.

Why Scavio? Multi-platform coverage, structured knowledge graph data, and competitive pricing at $0.005/credit.

Installation

pip install langchain-scavio

Tools

Tool Description
ScavioSearch Google web search with knowledge graphs, PAA questions, news
ScavioAmazonSearch Search Amazon product listings
ScavioAmazonProduct Fetch full details for an Amazon product by ASIN
ScavioWalmartSearch Search Walmart product listings
ScavioWalmartProduct Fetch full details for a Walmart product by ID
ScavioYouTubeSearch Search YouTube videos with duration/date/type filters
ScavioYouTubeMetadata Fetch metadata for a YouTube video by video ID

Quick Start

Get your API key at dashboard.scavio.dev.

import os
from langchain_scavio import ScavioSearch

os.environ["SCAVIO_API_KEY"] = "sk_live_..."

tool = ScavioSearch()
result = tool.invoke({"query": "best python web frameworks 2026"})

Use with a LangChain Agent

Scavio tools plug into the current create_agent API from langchain.agents:

from langchain.agents import create_agent
from langchain_scavio import (
    ScavioSearch,
    ScavioAmazonSearch, ScavioAmazonProduct,
    ScavioWalmartSearch,
    ScavioYouTubeSearch, ScavioYouTubeMetadata,
)

agent = create_agent(
    "openai:gpt-4o",
    tools=[
        ScavioSearch(max_results=5),
        ScavioAmazonSearch(max_results=5),
        ScavioAmazonProduct(),
        ScavioWalmartSearch(max_results=5),
        ScavioYouTubeSearch(max_results=5),
        ScavioYouTubeMetadata(),
    ],
)

response = agent.invoke({
    "messages": [{"role": "user", "content": "Find me a Python book on Amazon under $30"}]
})

Async Support

All tools support async invocation:

result = await tool.ainvoke({"query": "async python frameworks"})

Configuration

Google Search

from langchain_scavio import ScavioSearch

tool = ScavioSearch(
    scavio_api_key="sk_live_...",       # or SCAVIO_API_KEY env var
    max_results=5,
    light_request=None,                  # None=light/1 credit, False=full/2 credits
    include_knowledge_graph=True,
    include_questions=True,
    include_related=False,
    country_code="us",
    language="en",
    search_type="classic",               # classic|news|maps|images|lens
    device="desktop",
)

Amazon

from langchain_scavio import ScavioAmazonSearch, ScavioAmazonProduct

search = ScavioAmazonSearch(
    max_results=5,
    pages=1,                             # number of result pages to fetch
    domain="com",                        # see supported marketplaces below
)

product = ScavioAmazonProduct()
result = product.invoke({"query": "B08N5WRWNW"})  # query = ASIN

Targeting a marketplace: use domain to pick which Amazon store to search — do not use a country code. Supported domains: com (US), co.uk (UK), ca, de, fr, es, it, co.jp, in, com.au, com.br, com.mx, nl, pl, se, sg, ae, sa, eg, cn, com.be, com.tr.

Walmart

from langchain_scavio import ScavioWalmartSearch, ScavioWalmartProduct

search = ScavioWalmartSearch(max_results=5)
result = search.invoke({
    "query": "air fryer",
    "sort_by": "price_low",              # best_match|price_low|price_high|best_seller
    "max_price": 5000,                   # in cents
    "fulfillment_speed": "2_days",       # today|tomorrow|2_days|anytime
})

product = ScavioWalmartProduct()
result = product.invoke({"product_id": "123456789"})

YouTube

from langchain_scavio import ScavioYouTubeSearch, ScavioYouTubeMetadata

search = ScavioYouTubeSearch(max_results=5)
result = search.invoke({
    "query": "python tutorial",
    "duration": "medium",                # short|medium|long
    "upload_date": "this_month",         # last_hour|today|this_week|this_month|this_year
    "sort_by": "view_count",             # relevance|date|view_count|rating
    "video_type": "video",               # video|channel|playlist
})

metadata = ScavioYouTubeMetadata()
result = metadata.invoke({"video_id": "dQw4w9WgXcQ"})

Agent-Controllable Parameters

ScavioSearch

Parameter Type Description
query str Search query
search_type classic|news|maps|images|lens Type of search
country_code str ISO 3166-1 alpha-2
language str ISO 639-1
device desktop|mobile Device type
page int Result page number

ScavioAmazonSearch

Parameter Type Description
query str Product search query
domain str Amazon marketplace — the only way to select a store (com, co.uk, de, co.jp, ...)
sort_by str featured|most_recent|price_low_to_high|price_high_to_low|average_review|bestsellers
start_page int Page number
category_id str Category filter
merchant_id str Seller filter
language / currency str Localization
zip_code str Local pricing

ScavioWalmartSearch

Parameter Type Description
query str Product search query
sort_by str best_match|price_low|price_high|best_seller
min_price / max_price int Price range in cents
fulfillment_speed str today|tomorrow|2_days|anytime
delivery_zip str Delivery ZIP code

ScavioYouTubeSearch

Parameter Type Description
query str Search query
upload_date str last_hour|today|this_week|this_month|this_year
video_type str video|channel|playlist
duration str short|medium|long
sort_by str relevance|date|view_count|rating
hd / subtitles / live bool Content filters

Error Handling

  • Empty results raise ToolException with actionable suggestions for the LLM
  • API errors return {"error": "message"} without crashing the agent
  • handle_tool_error=True ensures LangChain passes errors to the LLM as context

Architecture

ScavioBaseAPIWrapper                      # Auth, headers, sync/async HTTP POST
  +-- ScavioSearchAPIWrapper              # -> /api/v1/google
  +-- ScavioAmazonSearchAPIWrapper        # -> /api/v1/amazon/search
  +-- ScavioAmazonProductAPIWrapper       # -> /api/v1/amazon/product
  +-- ScavioWalmartSearchAPIWrapper       # -> /api/v1/walmart/search
  +-- ScavioWalmartProductAPIWrapper      # -> /api/v1/walmart/product
  +-- ScavioYouTubeSearchAPIWrapper       # -> /api/v1/youtube/search
  +-- ScavioYouTubeMetadataAPIWrapper     # -> /api/v1/youtube/metadata

Each tool splits parameters into init-only (developer-controlled, e.g. max_results, domain) and LLM-controllable (passed via args_schema at invocation time, e.g. query, sort_by).

Migrating from Tavily

- from langchain_tavily import TavilySearch
+ from langchain_scavio import ScavioSearch

- tool = TavilySearch(max_results=5)
+ tool = ScavioSearch(max_results=5)

See the full migration guide for parameter mapping and feature comparison.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langchain_scavio-2.4.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langchain_scavio-2.4-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file langchain_scavio-2.4.tar.gz.

File metadata

  • Download URL: langchain_scavio-2.4.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for langchain_scavio-2.4.tar.gz
Algorithm Hash digest
SHA256 05f22d9a8a238cda8282c325acc4b3c51c132e79921e9365ffc205515eb550b9
MD5 9b8f9b83d19c253d821c1b658c3a3bde
BLAKE2b-256 ee5cf4fc8087554eac11d5ea24d8d24ed28e5036abfcfd437613bd04174c396f

See more details on using hashes here.

File details

Details for the file langchain_scavio-2.4-py3-none-any.whl.

File metadata

  • Download URL: langchain_scavio-2.4-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for langchain_scavio-2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7efe9da4360326f105f2378b1a5b61e3f97850e94b7358bcd98b2b542b525acd
MD5 653a67adc35165db2c872ef153230b29
BLAKE2b-256 e2d72eaf60b1359acb6df3bba51c10b7369b83311a6747e3bca5a7c3ea08309e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page