Integrations

Can I use the Tavily SDK with UpRock?

Yes, for search and extract. Create the client with the base URL https://edge.uprock.com/compat/tavily (api_base_url in Python, apiBaseURL in JavaScript) and your UpRock API key. The search call returns live results from several engines in Tavily's format, and extract returns each page as markdown or text. Crawl, map and research aren't available on UpRock, and search never returns an LLM answer.

Updated · Read as markdown

Change two values

UpRock answers Tavily's search and extract requests under https://edge.uprock.com/compat/tavily and returns Tavily's response shape, so the official SDKs work once you change the base URL and the key. Get a key at uprock.ai/app/api-keys.

Python

# pip install tavily-python   env: UPROCK_API_KEYimport osfrom tavily import TavilyClient​client = TavilyClient(    api_key=os.environ["UPROCK_API_KEY"],    api_base_url="https://edge.uprock.com/compat/tavily",)​found = client.search("best espresso machine 2026", max_results=5)for r in found["results"]:    print(r["score"], r["title"], r["url"])​pages = client.extract([found["results"][0]["url"]], format="markdown", include_usage=True)print(pages["results"][0]["raw_content"][:300])print(pages["failed_results"], pages["usage"])

TypeScript

// npm i @tavily/core   (Node 18+)   env: UPROCK_API_KEYimport { tavily } from "@tavily/core";​const client = tavily({  apiKey: process.env.UPROCK_API_KEY,  apiBaseURL: "https://edge.uprock.com/compat/tavily",});​const found = await client.search("best espresso machine 2026", { maxResults: 5 });for (const r of found.results) console.log(r.score, r.title, r.url);​const pages = await client.extract([found.results[0].url], { format: "markdown", includeUsage: true });console.log(pages.results[0]?.rawContent.slice(0, 300));console.log(pages.failedResults, pages.usage);

Use the base URL exactly as written, with no trailing slash: the SDKs add /search and /extract to it.

What comes back

Search returns Tavily's fields: query, results, answer, images, follow_up_questions, response_time and request_id. Each result has title, url, content (a snippet), score and raw_content. Extract returns results (each with url, title and raw_content), failed_results with the URL and the reason, response_time, request_id and, when you ask for it, usage.credits.

Which options work

We ran each call below with tavily-python 0.8.5 and @tavily/core 1.0.0 against the live API on 8 Nov 2026, and re-ran search and the examples above on 10 Nov.

Call or optionOn UpRock
search with query and max_results (up to 20)Works
countryWorks, but slower: on 10 Nov, 2 of 4 searches with a country came back with no results after 35 seconds
search_depth, topic, time_range, start_date, end_date, include_domains, exclude_domainsAccepted and ignored
include_answer, include_raw_content, include_imagesAccepted; answer and raw_content are null and images is empty
extract with one URL or a list of up to 20, format (markdown or text), timeout, include_usageWorks. Each page is loaded in a real browser, so extract_depth is ignored
crawl, map, research404 (HTTPError in Python). Keep Tavily for these

A missing or wrong key returns Tavily's 401, which the SDK raises as MissingAPIKeyError or InvalidAPIKeyError.

FAQ

Can I keep my code and change only the URL?

Almost. The SDKs read the key from TAVILY_API_KEY when you don't pass one, so you can put your UpRock key there. The base URL has no environment variable in tavily-python 0.8.5 or @tavily/core 1.0.0; pass it when you create the client.

Why is answer always null?

UpRock returns search results, not an LLM-written answer, so include_answer is accepted and ignored. The same goes for include_raw_content; to get the full text of the results, pass their URLs to extract.

What does score mean?

It follows the order of the results, 1 for the first and lower for each one after it. It isn't a relevance score from a model, so use it to keep the order, not to set a cut-off.

How do I choose the country?

Pass country with Tavily's lowercase country name, such as "canada" or "united states". The search runs from that country. An unknown name returns a 400.

What does it cost?

A search is billed as one web research query, $1 per 1,000 searches by card or USDC. Extract is billed per page delivered, $0.50 per 1,000 pages. URLs that fail are listed in failed_results and aren't charged; include_usage returns the number of pages billed.

Other use cases to explore

References

Get started

Add UpRock in one paste.

Paste this into Claude Code, Codex, Cursor or any agent with a terminal. It reads our docs, sets up the MCP server or CLI, and tells you the cost before it spends anything.

Set up UpRock for me: read https://uprock.ai/agents.md, connect the UpRock MCP server, and run one test crawl. Tell me what it costs before you spend anything.

Can I use the Tavily SDK with UpRock? | UpRock AI