Can an AI agent use Tavily?
As of 14 Oct 2026, an AI agent gets into Tavily on its own and does 50% of the core work.
- Find: Docs for agents: llms.txt, an OpenAPI and an MCP server; a docs page for each core task.
- Access: No key needed: Can't sign up for one.
- Use: 50% of the work.
- Pay: Tried to pay: The payment failed on the seller's side.
- Leave: Leaves on its own: Nothing to cancel, made nothing to delete.
To reach L4 · Runs on its own: let an agent sign up for an account on its own (without one it does 50% of the core work).
What the levels meanDriven 14 Oct 2026Same level in 2 drives in a rowRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsThe site opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 16 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Tavily.
On its own
- Search the web and get an AI-written answer, with no account needed
- Pull clean readable text out of web pages, with no account needed
- Filter searches by topic, date, country, or website
1 more
- Use these features from a command-line tool or from Tavily's AI-agent connector (MCP)
What it can't, and why
- Create an account or get an API keythe site's robots.txt blocks sign-up pages for all automated agents
- Crawl a whole website, map its pages, or run a research reportthese need an account and key, which sign-up blocks
- Pay per search automaticallyevery payment attempt was refused by the site with a settlement error
Can an AI agent sign up for Tavily on its own?
Not needed: a documented route works without an account.
Every way in it offers, as our agent tried them
| Way in | What happened |
|---|---|
| No key needed | Got in, 1 min |
| Pay per call | An error from the product |
| Email and password | Stopped by robots.txt |
| Continue with GitHub | Not tried: robots.txt |
| Continue with Google | Not tried: robots.txt |
| Sign‑in for apps (OAuth, MCP) | Stopped by robots.txt |
| A key from a person | Not tried: needs a person's account |
Does Tavily have an MCP server, and can an agent connect to it?
Yes. Tavily has an official MCP server. The server is hosted, lists 5 tools and speaks the 28 Jul 2026 MCP spec.
A new agent can get in on its own: in the drive of 14 Oct 2026, our agent got working access without signing up. Through the MCP server, 3 of our agent's 11 attempts worked.
What the drive found
APIOpenAPIMCP · officialCLIllms.txt–Webhooks–SandboxHow does an AI agent get a Tavily API key?
In the drive of 14 Oct 2026, our agent needed no key. Not needed: a documented route works without an account.
Can an AI agent delete its Tavily account?
Not applicable: our agent used Tavily without an account, and it made nothing to delete.
Can an AI agent pay for Tavily?
Tried to pay: the payment failed on the seller's side.
Plan and price: x402 advanced search, $0.01 a call.
No CAPTCHA at checkoutOffers x402 payment- x402 on its own domain · Base, another network
- MPP a third party's · listed or named only
No card needed to start.
What would let agents pay on their own
- List your plans on Stripe Projects. Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev).
- Sell the plan or credits over the rail, not only side endpoints. Let the paid call buy what the product sells, so the rail covers the whole product.
x402 v2 on Tavily's own host sells only advanced /search ($0.01). We signed six payments; each was answered 402 settlement_failed, no transaction, nothing returned: no payment proven. Plans (Pay As You Go $0.008/credit, Project $30/month) are bought in app.tavily.com after sign-up, which robots.txt closes to our agent, so no checkout was opened
Ways to pay checked 14 Oct 2026.
For the team behind Tavily.
Where agents stop in Tavily today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Open sign-up pages to agents in robots.txt
- Fix x402 settlement on x402.tavily.com
- Add a headless key route for agentsStep-by-step guide
5 more fixes
- Sell extract, crawl, map and research over x402
- Mark MCP limit answers as errors
- Add include_answer to the MCP search tool
- Serve an MCP server card Step-by-step guide
- Return errors as problem+json
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · the docs · level history
Part scores
- Holds up: 86 of 100, fair
Agent-ready setup
- llms.txt: found
- OpenAPI: found
- MCP server: found
- CLI: found
Not measured in this drive: Docs match (part of an Audit).
The measures
- Work done50
- Reliability85
- Crash test87
The docs
112 of 113 pages read. Complete.
- A getting-started page
- An auth page
- Errors listed with their codes
- Code examples on most pages
- Newest page updated 8 Oct 2026
- A page for 8 of 8 core tasks
Read on 14 Oct 2026.
Tried as documented
9 of 24 documented ways to do the core work worked when tried.
| What happened | Ways |
|---|---|
| Worked when tried | 9 |
| Documented, didn't work | 3 |
| Not tried (a paid plan, or no way to reach it) | 12 |
| Worked, but not in the docs | 0 |
Level history
- 6 Oct 2026L3Does the work
- 14 Oct 2026L3Does the work
How Tavily handles an agent's mistakes · 6 probes · core run 3×
Malformed requests, a retry, a wrong key and a short burst of reads on our agent's own account, and how Tavily answered.
- Clear errors85
- Recovery75
- Rate limits100
- Clearkeyless rate limit met in normal use (no burst)Run a real-time web search429 application/json, Retry-After: 115, error.code hourly_cap_reached, message names x402 or sign-up or retry after Retry-After; window: hour
- Clearbad credentialRun a real-time web search401 {"detail":{"error":"Unauthorized: missing or invalid API key."}} (application/json, not problem+json)
- Clearmissing required fieldRun a real-time web search422 {"detail":[{"type":"missing","loc":["body","query"],"msg":"Field required"}]} (validated before the key check)
- Clearbad enum valueChoose search depth (basic/advanced/fast/ultra-fast) to trade latency for relevance400 {"detail":{"error":"Invalid search depth. Must be 'ultra-fast', 'fast', 'basic' or 'advanced'."}} [exit 0]
- Clearidempotency / safe retryRun a real-time web searchSearch and Extract are stateless reads: a repeat returns fresh results and creates nothing; no Idempotency-Key needed
- Clearpartial failure in a multi-URL extractExtract clean content from one or more URLs200 with results[] for example.com and failed_results[] naming the other URL ('404 page not found'); the batch is not half-written
For agents and builders.
The drive as data, every checkpoint and all 103 attempts.
How an agent connects · 6 tips
/api/tools/tavily.json/tools/tavily.mdMCP get_tool {"slug":"tavily"}
- Send X-Tavily-Access-Mode: keyless to POST api.tavily.com/search and /extract: no account needed
- Keyless REST has an hourly cap: on 429 wait out Retry-After (115 s seen) and retry
- Use include_usage=true to see credits per call (advanced search 2, others 1)
- On the MCP server, check structuredContent.code: limit answers come back with isError:false
- tvly CLI falls back to keyless when no key is set and exits 3 on a cap
- Extract's failed_results lists URLs it could not fetch; one live Wikipedia page came back as '404 page not found'
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessllms.txt with an agents section, .md pages and Accept: text/markdown, OpenAPI 3.0.3 on docs.tavily.com, keyless and x402 pages
- Sign upNot neededNot needed: a documented route works without an account.
- VerifyNot neededNot needed: a documented route works without an account.
- KeyNot neededNot needed: a documented route works without an account.
- First callHeadlessPOST api.tavily.com/search with the documented X-Tavily-Access-Mode: keyless header answered 200 with results; also through the CLI and the MCP extract tool
- First actionHeadlessKeyless search with an AI answer and keyless extract of several URLs; crawl, map and research answer 404 unsupported_endpoint without a key
- PayTried, not settledx402 v2 on Tavily's own host sells only advanced /search ($0.01). We signed six payments; each was answered 402 settlement_failed, no transaction, nothing returned: no payment proven. Plans (Pay As You Go $0.008/credit, Project $30/month) are bought in app.tavily.com after sign-up, which robots.txt closes to our agent, so no checkout was opened
- CancelNot neededNothing to cancel: our agent used the free plan.
- DeleteNot neededNo account was made; keyless calls store nothing for the caller and the x402 payments were refused
The attempt log · 103 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| Try Search and Extract without an API key: Keyless search 'Tavily API rate limits documentation' max_results=3 | api | done ✓ | POST api.tavily.com/search with X-Tavily-Access-Mode: keyless, no Authorization -> 200, results[] with url/title/content |
| Try Search and Extract without an API key: Keyless extract of www.tavily.com and en.wikipedia.org/wiki/Web_search_engine | api | done ✓ | POST /extract keyless -> 200, results[] raw_content 11205 and 126555 chars, failed_results []. A first try on docs.tavily.com/documentation/rate-limits came back 200 with failed_results 'Error fetching content' (request_id 71156b3c...) |
| Sign up | api | done ✓ | No account needed for /search and /extract with X-Tavily-Access-Mode: keyless (docs keyless page); crawl/map/research need a key |
| Sign up: Sign up with email at app.tavily.com (Try it for free -> app.tavily.com/home) | browser | blocked | app.tavily.com/home redirects to https://app.tavily.com/api/auth/login?returnTo=...; app.tavily.com/robots.txt 'User-agent: *' 'Disallow: /api/' (also 'Disallow: /sign-in'). pw did not open it. |
| Sign up: Sign up through the documented CLI login (tvly login --no-browser) -> mcp.tavily.com/authorize -> auth.tavily.com Auth0 universal login, 'Sign up' link | cli | blocked | tvly 0.1.8 login registers an OAuth client (DCR at mcp.tavily.com/register) and prints mcp.tavily.com/authorize URL; it redirects to https://auth.tavily.com/u/login/identifier (email, Continue with Google/GitHub/LinkedIn/Microsoft, Sign up link). https://auth.tavily.com/robots.txt: 'User-agent: *' 'Disallow: /'. pw refused the page on the next step. |
| Sign up | skipped | not offered: the Auth0 login shows email + password identifier flow only; and auth.tavily.com is closed by robots.txt | |
| Sign up | skipped | not offered on the login page seen; auth.tavily.com is closed by robots.txt | |
| Sign up | skipped | Continue with GitHub is on auth.tavily.com (Auth0), whose robots.txt disallows / for all user agents; the button page cannot be opened by our agent | |
| Sign up | skipped | Continue with Google is on auth.tavily.com (Auth0), robots.txt Disallow: / for all user agents | |
| MCP OAuth sign-in: MCP OAuth at mcp.tavily.com (PRM, CIMD and DCR offered) | browser | blocked | mcp.tavily.com/authorize hands over to auth.tavily.com, robots.txt Disallow: / for all user agents; it also needs an account we could not make |
| Sign up | skipped | not offered: no sign-up API, no /auth.md (404), no agent_auth block in mcp.tavily.com AS metadata, no AgentID, not in Stripe Projects catalog (pay_probe) | |
| Sign up | skipped | not offered: no sign-up API, no /auth.md (404), no agent_auth block in mcp.tavily.com AS metadata, no AgentID, not in Stripe Projects catalog (pay_probe) | |
| Sign up | skipped | not offered: no sign-up API, no /auth.md (404), no agent_auth block in mcp.tavily.com AS metadata, no AgentID, not in Stripe Projects catalog (pay_probe) | |
| Sign up | skipped | Tavily not in the Stripe Projects catalog (pay_probe registries.stripe_projects = []) | |
| Sign up | skipped | not offered: no sign-up API, no /auth.md (404), no agent_auth block in mcp.tavily.com AS metadata, no AgentID, not in Stripe Projects catalog (pay_probe) | |
| Sign up | skipped | not offered: no sign-up API, no /auth.md (404), no agent_auth block in mcp.tavily.com AS metadata, no AgentID, not in Stripe Projects catalog (pay_probe) | |
| Sign up | skipped | tvly login uses loopback OAuth (127.0.0.1 callback) via mcp.tavily.com, not a device code; AS metadata lists no device_authorization_endpoint; covered by the CLI login try | |
| Sign up | skipped | A person signs up at app.tavily.com and pastes a key; this drive is not assisted | |
| x402 pay per call: We paid x402 search on x402.tavily.com (pay_tx.json) | api | failed | pay_tx.json: 6 payments to https://x402.tavily.com/search, each answered HTTP 402 {"x402Version":2,"error":"settlement_failed"}; tx null, entitled false |
| Docs: llms.txt | api | done ✓ | https://docs.tavily.com/llms.txt 200 text/plain: 'Start Here For Agents', CLI, remote MCP, keyless, x402 pages; llms-full.txt named; '.md' appended to any docs URL |
| Docs: MCP server/discover (2026-07-28) | api | done ✓ | POST https://mcp.tavily.com/mcp/ no credentials -> 401 WWW-Authenticate: Bearer scope="openid offline_access", resource_metadata=".../.well-known/oauth-protected-resource/mcp"; with X-Tavily-Access-Mode: keyless -> 200 result supportedVersions ["2026-07-28"], serverInfo tavily-mcp 4.0.4, capabilities logging/prompts/resources/tools, extension io.modelcontextprotocol/ui |
| Docs: MCP tools/list keyless | mcp | done ✓ | 5 tools: tavily_search, tavily_extract, tavily_crawl, tavily_map, tavily_research (underscore names; the map lists tavily-search etc.) |
| Docs: MCP OAuth metadata | api | done ✓ | AS metadata https://mcp.tavily.com/.well-known/oauth-authorization-server: client_id_metadata_document_supported true, registration_endpoint /register (DCR), S256 PKCE, authorization_response_iss_parameter_supported true, no device_authorization_endpoint, no agent_auth block; PRM at /.well-known/oauth-protected-resource/mcp (door_probe) |
| Docs: MCP server card | api | failed | https://mcp.tavily.com/mcp/server-card 404 text/plain; https://tavily.com/.well-known/ai-catalog.json 404 text/html; /.well-known/mcp/server-card.json 404 |
| Docs: A2A agent card | api | done ✓ | https://tavily.com/.well-known/agent-card.json 200 application/json, protocolVersion "1.0", url https://api.tavily.com, skills web-search etc.; legacy /.well-known/agent.json serves the same card |
| Docs: robots.txt and aipref | api | done ✓ | tavily.com/robots.txt: User-Agent * Allow / Disallow /api/ /enterprise/thank-you /legal/; named groups for ChatGPT-User, PerplexityBot, ClaudeBot, GPTBot etc. allow /. No Content-Usage or Content-signal lines; no Content-Usage header seen. app.tavily.com/robots.txt: Disallow /api/ /settings/ /billing /admin/ /sign-in /history/. auth.tavily.com/robots.txt: User-agent * Disallow / |
| Docs: Markdown docs | api | done ✓ | GET docs.tavily.com/documentation/quickstart with Accept: text/markdown -> 200 content-type text/markdown, vary includes Accept; .md URLs (keyless.md, x402.md) 200 markdown |
| Docs: OpenAPI | api | failed | https://api.tavily.com/openapi.json 404; no OpenAPI file found in llms.txt |
| Docs: docs pass | api | done ✓ | docs_pass.json verdict: getting started, auth, errors found; examples good; capabilities covered 8 of 8 core |
| Docs: OpenAPI (correction of the line above) | api | done ✓ | https://docs.tavily.com/documentation/api-reference/openapi.json 200 application/json, openapi 3.0.3, 10 paths: /crawl /extract /feedback /logs /map /org-usage /research /research/{request_id} /search /usage. (api.tavily.com/openapi.json is 404; the spec lives on docs.) |
| Run a real-time web search: Search 'Who maintains the Model Context Protocol specification' max_results=5 | api | done ✓ | POST /search keyless 200 in 1.08s; 5 results with url/title/content/score incl. blog.modelcontextprotocol.io/posts/2026-07-28; request_id a58dfbfe-... GET /usage not reachable without a key |
| Run a real-time web search: Search 'Tavily x402 pricing per call' max_results=3 (repeat) | api | done ✓ | POST /search keyless 200; 3 results; request_id [id] |
| Run a real-time web search: Search 'Base network USDC contract address' max_results=3 (repeat) | api | done ✓ | POST /search keyless 200; 3 results; request_id [id] |
| Choose search depth: Same query at basic/advanced/fast/ultra-fast with include_usage | api | done ✓ | all 200; usage.credits basic 1, advanced 2, fast 1, ultra-fast 1 (matches docs: advanced 2 credits); response_time basic 1.28s, advanced 3.38s, fast 0.44s, ultra-fast 0.12s |
| Choose search depth: advanced vs fast, include_usage (repeat) | api | done ✓ | advanced 200 credits {'credits': 2}, 2.72s; fast 200 credits {'credits': 1}, 0.49s |
| Choose search depth: advanced vs fast, include_usage (repeat) | api | done ✓ | advanced 200 credits {'credits': 2}, 2.86s; fast 200 credits {'credits': 1}, 0.71s |
| AI-generated answer with search: Search 'What is the current MCP spec revision' include_answer | api | done ✓ | POST /search 200; answer: 'The current MCP spec revision is `2026-07-28`. This revision was released on July 28, 2026, and it formalizes extensions, removes sessions, drops the initializa' |
| AI-generated answer with search: Search 'When was the Agentic AI Foundation formed' include_answer | api | done ✓ | POST /search 200; answer: 'The Agentic AI Foundation (AAIF) was formed in December 2025 under the Linux Foundation umbrella. This was announced by the Linux Foundation on December 9, 2025' |
| AI-generated answer with search: Search 'What is x402' include_answer | api | done ✓ | POST /search 200; answer: 'x402 is an open payment protocol built for the internet of autonomous agents, named after the HTTP status code 402, which means “Payment Required.” It enables a' |
| Extract clean content from URLs: Extract www.tavily.com + en.wikipedia.org/wiki/Web_search_engine | api | done ✓ | POST /extract keyless 200; raw_content 11205 and 126555 chars, failed_results [] |
| Extract clean content from URLs: Extract ['https://en.wikipedia.org/wiki/HTTP_402', 'https://example.com'] (repeat) | api | done ✓ | POST /extract 200; results [('https://example.com', 958)]; failed [{'url': 'https://en.wikipedia.org/wiki/HTTP_402', 'error': '404 page not found'}]; usage {'credits': 0} |
| Extract clean content from URLs: Extract ['https://en.wikipedia.org/wiki/Robots.txt'] (repeat) | api | done ✓ | POST /extract 200; results [('https://en.wikipedia.org/wiki/Robots.txt', 64869)]; failed []; usage {'credits': 0} |
| Crawl a website: POST /crawl without a key (keyless header) | api | blocked | POST https://api.tavily.com/crawl keyless -> HTTP 404 error.code unsupported_endpoint: 'This Tavily endpoint requires an API key. Keyless Tavily currently supports Search and Extract only.' next_actions offer x402 (which sells /search only, x402.tavily.com/.well-known/pricing) or sign-up |
| Map a site's URLs: POST /map without a key (keyless header) | api | blocked | POST https://api.tavily.com/map keyless -> HTTP 404 error.code unsupported_endpoint: 'This Tavily endpoint requires an API key. Keyless Tavily currently supports Search and Extract only.' next_actions offer x402 (which sells /search only, x402.tavily.com/.well-known/pricing) or sign-up |
| Create a cited research task: POST /research without a key (keyless header) | api | blocked | POST https://api.tavily.com/research keyless -> HTTP 404 error.code unsupported_endpoint: 'This Tavily endpoint requires an API key. Keyless Tavily currently supports Search and Extract only.' next_actions offer x402 (which sells /search only, x402.tavily.com/.well-known/pricing) or sign-up |
| Pick a research model: POST /research without a key (keyless header) | api | blocked | POST https://api.tavily.com/research keyless -> HTTP 404 error.code unsupported_endpoint: 'This Tavily endpoint requires an API key. Keyless Tavily currently supports Search and Extract only.' next_actions offer x402 (which sells /search only, x402.tavily.com/.well-known/pricing) or sign-up |
| Verify | none | blocked | Not reached: sign-up is closed to our agent by robots.txt (auth.tavily.com Disallow: / for User-agent *); no verification mail could be asked for |
| Key | api | blocked | Keys are made in the app.tavily.com dashboard (robots.txt Disallow: /settings/, /api/) after sign-up at auth.tavily.com (Disallow: /). The documented key API (POST /generate-keys, /deactivate-keys, enterprise docs) itself needs an existing key. CLI tvly login (OAuth) ends at auth.tavily.com. |
| First call | api | done ✓ | POST https://api.tavily.com/search with X-Tavily-Access-Mode: keyless -> 200 results (docs keyless page) |
| First action | api | done ✓ | Keyless search with include_answer returned an answer; keyless extract returned raw_content for 2 URLs. Nothing is stored for the caller; crawl/map/research need a key (404 unsupported_endpoint) |
| Filter by topic and time range: Search 'AI regulation' topic=news time_range=week include_published_date | api | done ✓ | 200; 5 results, published_date 12-13 Oct 2026 (all inside the past week; drive date 14 Oct 2026): prospect.org, abc10.com, techcrunch.com, cityandstateny.com, reuters.com |
| Restrict or exclude by domain: Search 'x402 payments protocol' include_domains [github.com,x402.org] exclude_domains [medium.com] | api | done ✓ | 200; 5 results, hosts github.com, x402.org, github.com, x402.org, docs.x402.org: all inside include_domains (subdomain docs.x402.org included), none from medium.com |
| Include images with descriptions: Search 'Base blockchain logo' include_images + include_image_descriptions | api | done ✓ | 200; images[] with url + description, e.g. brand.base.org image 'A white blocky logo resembling a stylized "B"...'; one of 3 images had an empty description |
| Include raw content per result: Search 'RFC 9309 robots exclusion protocol' include_raw_content=markdown | api | done ✓ | 200; 2 results each with raw_content (25973 and 11586 chars) |
| Boost results from a country: Search 'electricity prices' country=germany | api | done ✓ | 200; 5 results all German/EU sources: ec.europa.eu, bundesregierung.de, smard.de, how-to-germany.com, euenergy.live (no unfiltered comparison run, to save the keyless budget) |
| Choose extraction depth: Extract rfc-editor.org/rfc/rfc9309.html at extract_depth basic and advanced; also en.wikipedia.org/wiki/List_of_HTTP_status_codes at both depths | api | partial ✓ | rfc9309: both depths 200, identical raw_content 24303 chars, usage.credits 0 for both (keyless, so the 1 vs 2 credit difference is not visible). Wikipedia List_of_HTTP_status_codes: both depths returned failed_results '404 page not found', though the page answers 200 to us |
| Rerank extracted chunks by a query: Extract rfc9309 with query + chunks_per_source=2 | api | failed | HTTP 429 hourly_cap_reached, Retry-After: 115 (keyless hourly limit hit after ~25 keyless calls); retried after the wait below |
| x402 search: Unsigned POST x402.tavily.com/search; our paid calls in pay_tx.json | api | failed | Unsigned POST -> 402, PAYMENT-REQUIRED (base64) x402Version 2, accepts: exact eip155:8453 USDC amount 10000 ($0.01) payTo per-request deposit address (rotates each 402), plus scheme agent-pay network aws:base 0.016 USD with a quoteToken. /.well-known/pricing JSON: /search advanced $0.01. Our 6 signed payments (pay_tx.json) each came back 402 {"x402Version":2,"error":"settlement_failed"}, no tx, no result. |
| View usage: GET /usage without a key | api | blocked | GET https://api.tavily.com/usage keyless -> 404 unsupported_endpoint 'requires an API key'. Documented in OpenAPI (bearerAuth). Usage is also visible per call with include_usage=true (worked keyless: credits 1/2) |
| Per-request logs: Check docs | none | blocked | OpenAPI 3.0.3 documents GET /logs (bearerAuth). Needs a key; sign-up closed to our agent by robots.txt |
| Generate/deactivate keys: Check docs | none | blocked | docs.tavily.com/documentation/enterprise/generate-keys and deactivate-keys are documented (enterprise, ownerBearerAuth scheme in OpenAPI); not in OpenAPI paths list; needs an enterprise owner key we cannot get |
| Org usage: Check docs | none | blocked | OpenAPI documents GET /org-usage (enterprise). Needs an owner key; not reachable without an account |
| Choose a billing plan: Check docs and app | browser | blocked | Plans: tavily.com/pricing (Free 1,000 credits/month 'No credit card required', Pay As You Go $0.008/credit, pay_probe). Plan changes happen at app.tavily.com/billing: app robots.txt 'Disallow: /billing' for User-agent * and an account is required |
| Stream research: POST /research stream=true | api | blocked | /research keyless -> 404 unsupported_endpoint 'This Tavily endpoint requires an API key' (seen on /crawl, /map, /research this drive) |
| Research output_schema: POST /research output_schema | api | blocked | /research keyless -> 404 unsupported_endpoint 'This Tavily endpoint requires an API key' (seen on /crawl, /map, /research this drive) |
| Research with files: POST /research files | api | blocked | /research keyless -> 404 unsupported_endpoint 'This Tavily endpoint requires an API key' (seen on /crawl, /map, /research this drive) |
| Crawl/map scope controls: POST /crawl, /map | api | blocked | /crawl, keyless -> 404 unsupported_endpoint 'This Tavily endpoint requires an API key' (seen on /crawl, /map, /research this drive) |
| Research domain/citation controls: POST /research | api | blocked | /research keyless -> 404 unsupported_endpoint 'This Tavily endpoint requires an API key' (seen on /crawl, /map, /research this drive) |
| Submit feedback: Check docs | none | blocked | OpenAPI POST /feedback security bearerAuth (request_id, agent_score, comment, used_ids); keyless supports Search and Extract only. Needs a key |
| Pay | api | done ✓ | pay_probe.json: x402 v2 402 on x402.tavily.com/search (first party, Base USDC $0.01, also an agent-pay aws:base 0.016 USD offer); mpp.dev lists Tavily only as third-party (paywithlocus, orthogonal); no Stripe Projects listing; no /.well-known/ucp (404); no x-payment-info in openapi 3.0.3; MCP tools carry no billing tools. Pricing page: Researcher Free 1,000 credits/month 'No credit card required', Pay As You Go $0.008/credit, Project $30/month 4,000 credits, Enterprise 'Talk to Sales'. |
| Pay | api | failed | pay_tx.json: we signed 6 x402 v2 exact payments ($0.01 each) on x402.tavily.com/search for /02/03; every paid retry answered 402 {"x402Version":2,"error":"settlement_failed"}, tx null, entitled false, nothing returned |
| Pay | browser | blocked | Plans are bought in the app (pricing 'Get Started' -> app.tavily.com); without an account no checkout opens, and app.tavily.com robots.txt disallows /billing and /api/ (sign-in) for User-agent *; auth.tavily.com Disallow: /. Checkout not reached; processor unknown |
| Cancel | none | skipped | Nothing to cancel: no plan or trial was started (keyless only; x402 payments refused). Pricing says Pay As You Go 'Cancel anytime'; plan changes live at app.tavily.com/billing (web UI) |
| Rerank extracted chunks by a query: Extract rfc9309 with query 'how to handle a 5xx when fetching robots.txt', chunks_per_source=2 (after waiting out Retry-After) | api | done ✓ | 200; raw_content 1368 chars (vs 24303 for the full page) made of the 'Access Results' sections of RFC 9309 that answer the query |
| Install Agent Skills: tvly init --agent claude-code --skip-auth --yes --json (HOME in the run dir) | cli | done ✓ | JSON: skills installed 8, linked 8, source tavily-ai/skills@ea5e820; 8 SKILL.md files under home/.agents/skills (tavily-search, -extract, -crawl, -map, -research, -cli, -best-practices, -dynamic-search). The init's own CLI check failed: 'tvly is not available on PATH' (our install was not on PATH) |
| CLI: tvly search 'Tavily keyless access limits' --max-results 2 --json (no login, keyless fallback) | cli | done ✓ | tvly 0.1.8 printed JSON with results[] (docs.tavily.com/documentation/keyless first). An earlier try printed the JSON error hourly_cap_reached with retry_after_seconds 105 and exit code 3 |
| Docs claim: Run a real-time web search: POST /search | api | done ✓ | keyless 200 with results[] |
| Docs claim: Choose search depth (basic/advanced/fast/ultra-fast) to trade latency for relevance: POST /search (search_depth) | api | done ✓ | credits 1 basic/fast/ultra-fast, 2 advanced |
| Docs claim: Get an AI-generated answer alongside search results: POST /search (include_answer) | api | done ✓ | answer field filled |
| Docs claim: Extract clean content from one or more URLs: POST /extract | api | done ✓ | raw_content per URL, failed_results per URL |
| Docs claim: Run a real-time web search: tvly search | cli | done ✓ | keyless JSON results |
| Docs claim: Crawl a website from a root URL and extract content from discovered pages: POST /crawl | api | blocked | needs an API key (keyless 404 unsupported_endpoint); no key reachable: sign-up closed by robots.txt |
| Docs claim: Crawl a website from a root URL and extract content from discovered pages: tvly crawl | cli | blocked | needs a key or tvly login (OAuth at auth.tavily.com, robots.txt Disallow: /) |
| Docs claim: Crawl a website from a root URL and extract content from discovered pages: tavily_crawl | mcp | blocked | tool listed keyless; tavily_map keyless call answered unsupported_endpoint 'requires an API key' |
| Docs claim: Map a site's URL structure without extracting content: POST /map | api | blocked | needs an API key (keyless 404 unsupported_endpoint); no key reachable: sign-up closed by robots.txt |
| Docs claim: Map a site's URL structure without extracting content: tvly map | cli | blocked | needs a key or tvly login (OAuth at auth.tavily.com, robots.txt Disallow: /) |
| Docs claim: Map a site's URL structure without extracting content: tavily_map | mcp | blocked | tool listed keyless; tavily_map keyless call answered unsupported_endpoint 'requires an API key' |
| Docs claim: Create a cited research report/task on a topic: POST /research | api | blocked | needs an API key (keyless 404 unsupported_endpoint); no key reachable: sign-up closed by robots.txt |
| Docs claim: Create a cited research report/task on a topic: tvly research | cli | blocked | needs a key or tvly login (OAuth at auth.tavily.com, robots.txt Disallow: /) |
| Docs claim: Create a cited research report/task on a topic: tavily_research | mcp | blocked | tool listed keyless; tavily_map keyless call answered unsupported_endpoint 'requires an API key' |
| Docs claim: Pick a research model (mini for narrow questions, pro for multi-angle research, auto): POST /research (model) | api | blocked | needs an API key (keyless 404 unsupported_endpoint); no key reachable: sign-up closed by robots.txt |
| Docs claim: Pick a research model (mini for narrow questions, pro for multi-angle research, auto): tvly research | cli | blocked | needs a key or tvly login (OAuth at auth.tavily.com, robots.txt Disallow: /) |
| Docs claim: Pick a research model (mini for narrow questions, pro for multi-angle research, auto): tavily_research | mcp | blocked | tool listed keyless; tavily_map keyless call answered unsupported_endpoint 'requires an API key' |
| Docs claim: Run a real-time web search: tavily-search (live name tavily_search) | mcp | failed | keyless tools/call tavily_search (twice) returned isError:false with structuredContent code monthly_cap_reached_bonus_eligible 'You reached the monthly keyless Tavily limit' and no results, while keyless REST search worked at the same time; tool name is tavily_search, not tavily-search |
| Docs claim: Choose search depth (basic/advanced/fast/ultra-fast) to trade latency for relevance: tavily-search search_depth | mcp | failed | same monthly keyless cap answer on the MCP search tool; search_depth is in the tool's inputSchema |
| Docs claim: Get an AI-generated answer alongside search results: tavily-search include_answer | mcp | failed | the tavily_search tool's inputSchema has no include_answer parameter (properties: query, max_results, search_depth, topic, time_range, include_images, ... exact_match); the MCP tool cannot ask for an answer |
| Docs claim: Extract clean content from one or more URLs: tavily-extract (live name tavily_extract) | mcp | done ✓ | keyless tools/call tavily_extract on example.com returned results[] with raw_content |
| Extract clean content from URLs: MCP tools/call tavily_extract example.com keyless | mcp | done ✓ | MCP 2026-07-28 keyless: result.content text JSON results[0].url example.com, raw_content filled |
| Run a real-time web search: MCP tools/call tavily_search keyless | mcp | failed | isError false, structuredContent code monthly_cap_reached_bonus_eligible, retry_after_seconds 1471, no results; REST keyless search worked at the same time (separate MCP keyless budget, likely shared by our IP). POST api.tavily.com/keyless/bonus answered 409 bonus_not_eligible 'not_at_cap'; mcp.tavily.com/keyless/bonus 404 |
| Delete | none | skipped | No account was made (sign-up closed by robots.txt). Keyless search/extract calls store nothing for the caller; x402 payments were refused so nothing was bought. Nothing to delete; no GitHub/Google grant was given |
| Docs claim: Choose search depth (basic/advanced/fast/ultra-fast) to trade latency for relevance: tvly search --depth | cli | done ✓ | --depth advanced accepted; JSON results (2). The first try was refused with hourly_cap_reached retry_after 188 |
| Docs claim: Get an AI-generated answer alongside search results: tvly search --include-answer | cli | done ✓ | --include-answer basic returned an answer: 'HTTP status 402, or Payment Required, ...' |
| Docs claim: Extract clean content from one or more URLs: tvly extract | cli | done ✓ | keyless JSON results[] with raw_content for example.com |
Also in Search APIs.
ParallelL5Gets in on its ownTavily vs Parallel
ExaL2Gets in on its ownTavily vs Exa
Brave Search APIL1Can't get an API key on its ownTavily vs Brave Search API
Perplexity APIL1Can't sign up on its ownTavily vs Perplexity API