Skip to content

serpdive/serpdive-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SERPdive Python SDK

The official Python client for SERPdive, the AI Search API: ask a question, get answer-ready web content that is extracted, cleaned, and sized for an LLM. On a public, replayable 1,000-question benchmark, SERPdive runs at the same speed as Tavily, feeds your LLM 20.2% fewer tokens, and wins 60.7% of decided quality duels. If you are evaluating Tavily alternatives, that benchmark is public and replayable end to end: same questions, same judge, your machine.

Install

pip install serpdive

Quickstart

from serpdive import SerpDive

client = SerpDive(api_key="sd_live_...")  # or set SERPDIVE_API_KEY
response = client.search("who won the 2026 champions league final", answer=True)

print(response.answer)
for result in response.results:
    print(result.url, result.content[:100])

Get your API key at serpdive.com/dashboard/keys.

Usage

Choosing a model

# mako (default): answers in a few seconds
client.search("best rust web frameworks")

# moby: reads whole pages, for deep research
client.search("timeline of the OpenAI board dispute", model="moby", answer=True)

Options

client.search(
    "your question",
    model="moby",        # "mako" (fast, default) or "moby" (whole pages)
    answer=True,         # also return a written answer built from the sources
    max_results=5,       # hard cap on delivered results, 1 to 10
)

Localization is automatic: the language of the query picks where we search. There is no country parameter to configure.

Async

from serpdive import AsyncSerpDive

async with AsyncSerpDive() as client:
    response = await client.search("latest developments in solid state batteries")

Errors

Every API error is a typed exception with a stable code, the human message, and the HTTP status_code:

from serpdive import SerpDive, RateLimitError, QuotaExceededError, SerpDiveError

try:
    response = client.search("your question")
except RateLimitError:
    ...  # slow down, then retry
except QuotaExceededError:
    ...  # monthly credits exhausted
except SerpDiveError as e:
    print(e.code, e.message)

Transient failures (HTTP 502/503) are retried automatically; failed searches are never billed. Tune with SerpDive(max_retries=..., timeout=...).

Response shape

search() returns a SearchResponse:

Field Type Notes
query str your query, echoed
results list[SearchResult] each has url, content, optional title and ISO date
answer str | None only when answer=True was requested
extra_info dict | None direct-answer block (weather, rates, scores...) when the query has one
model str which model answered
response_time_ms int end-to-end latency
raw dict the verbatim API payload

Docs

Full documentation: serpdive.com/docs. The API is also self-describing for agents: llms.txt, openapi.json.

License

MIT

About

Official Python SDK for SERPdive, the AI Search API and Tavily alternative. Answer-ready web content for LLMs and agents: same speed as Tavily, 20.2% fewer tokens, 60.7% of decided duels on a public benchmark.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages