API template library

Simulate the Tavily search and extract API

A WireMock simulation of Tavily's REST API — covering web search, content extraction, site crawling and mapping, and research tasks, plus credit usage, request logs, and feedback.

Vendor
Tavily
Functionality
Search, extract, crawl, research
Spec version
1.0.0
Endpoints
10
Stubs
14
Protocol
REST
Validation
AI-validated Before publication, an AI agent exercised these endpoints against the real Tavily API through WireMock's recording proxy, and the recorded traffic was used to verify each stub's request and response shapes.

Live sandbox · no signup, no API key

Tavily Search and Extract API

A running WireMock Cloud instance of this template, callable right now from a terminal, a script, or an AI agent.

Base URL
https://78vyrd.wiremockapi.cloud

POST Search for data based on a query [search]

curl -s -X POST 'https://78vyrd.wiremockapi.cloud/search' \
  -H 'Content-Type: application/json' \
  -d '{}'

POST Retrieve raw web content from specified URLs [extract]

curl -s -X POST 'https://78vyrd.wiremockapi.cloud/extract' \
  -H 'Content-Type: application/json' \
  -d '{}'

POST Initiate a web crawl from a base URL [crawl]

curl -s -X POST 'https://78vyrd.wiremockapi.cloud/crawl' \
  -H 'Content-Type: application/json' \
  -d '{}'
Method Path Summary
POST /crawl Initiate a web crawl from a base URL
POST /extract Retrieve raw web content from specified URLs
POST /feedback Submit feedback on a search request or session
POST /logs Get usage logs for your API keys
POST /map Initiate a web mapping from a base URL
POST /org-usage Get organization usage across all API keys
POST /research Initiate a research task
GET /research/{request_id} Get research task status and results
POST /search Search for data based on a query
GET /usage Get API key and account usage details

Unauthenticated WireMock Cloud demo sandbox for Tavily — not an official Tavily sandbox, and it returns simulated example data only.

What's inside the Tavily Search template

The template simulates api.tavily.com, the search API built for LLM agents. A search returns as many scored results as max_results asks for, adds an answer only when include_answer is set, and adds images, raw content and favicons only when their flags are. Each billable call is charged by Tavily's credit rules and added to the calling key's usage counters, so agent tools that watch their own budget can be tested too.

  • Search — general and news topics, domain filters, answers, images and raw content on request
  • Extract — one or many URLs, with images and favicons on request and a predictable failure path
  • Crawl and map — a base URL and its subpages, limited by limit, with page content on crawls
  • Research — tasks that report in progress, then complete with a markdown or schema-shaped report and sources
  • Usage and logs — per-key and account credit counters, request logs, organization usage and feedback

Example implementation using tavily-python

tavily-python accepts an api_base_url argument, so the client talks to the sandbox without any other change:

Agent frameworks that wrap the Tavily client, such as a LangChain or LlamaIndex search tool, pick up the same client configuration, so an agent can be pointed at the mock without code changes.

Fixed results keep agent evaluations comparable from run to run, and no credits are spent while a tool-calling loop is being built.

from tavily import TavilyClient

# api_base_url points the client at the sandbox;
# the key is never checked, but usage is counted per key
client = TavilyClient(
    api_key="tvly-dev-any-value",
    api_base_url="https://78vyrd.wiremockapi.cloud",
)

response = client.search("contract testing tools", max_results=3, include_answer=True)
print(response["answer"])
for result in response["results"]:
    print(result["score"], result["url"])

Tavily search and extract mock API FAQ

Use a URL on the reserved .invalid top-level domain, such as https://unreachable.invalid/page. It always lands in failed_results while the other URLs in the same request succeed.

Creating one answers 201 with status pending. The first poll answers 202 in_progress and the next one 200 completed with the report. An input containing [fail] produces a task that ends failed instead, and costs no credits.

No. Titles, URLs, snippets and reports are synthesized from your query. They have the right structure for parsing and citation code, not facts to reason about.

No. stream set to true on a research request is ignored and the normal JSON task comes back, since the spec documents no event-stream response for it.

Vendor names identify APIs represented by WireMock template sources. This page does not imply vendor endorsement, certification, partnership, or official integration status.