Skip to content

Search

Execute web search queries using specified search engine. Supports three search engines:Exa (AI-native search, default), Tavily (with AI summary), Google (custom search)

from r9s import R9S, models
with R9S(api_key=os.getenv("R9S_API_KEY",""),) as r9_s:
res = r9_s.search.create(extra=models.Extra(
query="What is artificial intelligence?",
**{
"num": 5,
"contents": {
"text": True,
},
},
), engine="exa")
# Handle response
print(res)
ParameterTypeRequiredDescription
extraExtra:heavy_check_mark:Engine-specific parameters. Different engines support different parameters:

Exa engine parameters:
- query (string, required): Search query
- num (integer): Number of results to return, default 10
- contents.text (boolean): Whether to return full text content

Tavily engine parameters:
- query (string, required): Search query
- max_results (integer): Maximum number of results, default 10
- search_depth (string): Search depth, “basic” or “advanced”, default “basic”
- include_answer (boolean): Whether to include AI-generated summary answer, default true

Google engine parameters:
- query (string, required): Search query
- num (integer): Number of results (1-10), default 10
- start (integer): Starting position (pagination), default 1
- safe (string): Safe search, “active” or “off”, default “active”
enginestring (exa, tavily, google):heavy_minus_sign:Search engine name (optional, defaults to exa)
- exa: AI-native search engine, suitable for semantic search
- tavily: AI search API, supports deep search and summary answers
- google: Google custom search, most comprehensive index
retriesobject:heavy_minus_sign:Configuration to override the default retry behavior of the client.

SearchResponse

Error TypeStatus CodeContent Type
errors.BadRequestError400application/json
errors.AuthenticationError401application/json
errors.PermissionDeniedError403application/json
errors.InternalServerError500application/json
errors.ServiceUnavailableError503application/json
errors.R9SDefaultError4XX, 5XX*/*