# AX Check: tavily.com
Checked 2026-11-10.

Tavily's docs and quickstart let agents get running fast.
21 of 23 checklist items passed: clear install commands, code samples, and explicit pricing with no login wall. Only the homepage's alternate-format support needs attention.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed the task. Each found pricing clearly stated on the live pricing page or docs, citing plan tiers, per-credit costs, and credit costs per endpoint; one session flagged its pricing read as unverified since it could not fetch the pricing page directly, but still sourced figures from docs.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/84860a23-75b2-4dfb-bee8-5541a30fec0e) · [Read transcript](https://www.ax-check.com/tavily.com/sessions/deepseek.json)
Quoted plan tiers and per-credit prices from the docs, tied to a credit-cost basis per endpoint (search depth, extract URLs, crawl pages, Research min/max) (seq 38, seq 89)
#### End-to-end onboarding
- **Onboarding needs a login**: No API key was ever obtained during the session (self-service or human-supplied). The agent relied solely on Tavily's keyless mode. One raw curl call succeeded, but the example script's first real SDK call and a follow-up verification call both hit HTTP 429 daily_cap_reached, exhausting the shared sandbox IP's free quota. No account signup was attempted, so there's no authenticated key-based operation demonstrated, only an unauthenticated keyless call that then got rate-limited.
  Event 76:

  ```text
  tavily.errors.TavilyKeylessLimitError: You reached the daily keyless Tavily limit.
  ```
  Event 82:

  ```text
  HTTP/2 429 
  retry-after: 495
  --- body ---
  {"error":{"code":"daily_cap_reached"
  ```
  Event 60:

  ```text
  {"query":"What is Tavily?","follow_up_questions":null,"answer":null,"images":[],"results":[{"url":"https://tavily.com/knowledge/company/EqGHgI7P5f0t"
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Keyless daily rate cap exhausted on shared sandbox IP**: Product behavior (rate limiting), not an agent error. Tavily's free keyless access is capped per IP per day. The sandbox's shared egress IP had already used up that cap, so the first raw curl call succeeded but the SDK-based example script's call and a follow-up verification curl both returned HTTP 429 daily_cap_reached. The agent correctly diagnosed this as an environment/quota issue rather than a bug in its own code, and did not attempt to wait out the retry window per the session's instructions.
  Event 76:

  ```text
  tavily.errors.TavilyKeylessLimitError: You reached the daily keyless Tavily limit.
  ```
  Event 82:

  ```text
  HTTP/2 429 
  retry-after: 495
  --- body ---
  {"error":{"code":"daily_cap_reached"
  ```
- **No self-service API key obtained**: The session never acquired a real Tavily API key, which would require signup at app.tavily.com. As a result the example and verification could only run in keyless mode, which is rate-limited and was quickly exhausted.
  Event 54:

  ```text
  The Python SDK's quickstart requires an API key, but keyless access works via a header on the REST API.
  ```

#### Suggested Changes
- **Raise or clarify the keyless daily cap for shared/sandbox IPs**: On the keyless access page (docs.tavily.com/documentation/keyless), the daily cap is described as 'free and rate-limited' but the actual numeric limit is not shown, and it was exhausted after essentially one real request from this sandbox IP. Verify by running two sequential keyless search calls from a fresh IP and confirming how many succeed before a 429 daily_cap_reached response appears; document that number on the keyless page so developers can plan around it.
  Event 76:

  ```text
  You reached the daily keyless Tavily limit.
  ```
  Event 82:

  ```text
  retry-after: 495
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/82492509-6e7f-46a3-afc2-7abb07d58625) · [Read transcript](https://www.ax-check.com/tavily.com/sessions/kimi.json)
Pulled pricing from the live pricing page and docs. It listed plan tiers with credit allowances, plus credit costs per search depth and per 5 extracted URLs, the monthly reset, and what happens when credits run out. (seq 18, seq 46, seq 48)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained a real Tavily API key. It tested only with a fabricated placeholder key (tvly-test) against the raw REST endpoint, which correctly returned 401, and separately ran its example script with a deliberately invalid key (tvly-invalid) to confirm the SDK raises an auth error. Neither of these constitutes authenticated success. The agent explicitly states it cannot complete the interactive signup flow at app.tavily.com required to get a credential, and stops there.
  Event 13:

  ```text
  401
  307
  
  ```
  Event 35:

  ```text
  tavily.errors.InvalidAPIKeyError: Unauthorized: missing or invalid API key.
  ```
  Event 48:

  ```text
  I can't make a live call because no `TVLY_API_KEY` exists in this environment, and getting one requires signing up at https://app.tavily.com, which is an interactive flow (email or Google OAuth) I can't complete programmatically.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service way to obtain a Tavily API key**: Tavily requires signing up through app.tavily.com with an interactive flow (email or OAuth) to get an API key. This is normal product behavior (account gating), not a defect, but it fully blocked the agent from exercising the happy path of the SDK against the live API within this session.
  Event 48:

  ```text
  getting one requires signing up at https://app.tavily.com, which is an interactive flow (email or Google OAuth) I can't complete programmatically
  ```

#### Suggested Changes
None identified in this transcript.

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/17d9520c-f36b-4158-aadf-d66e8d174c70) · [Read transcript](https://www.ax-check.com/tavily.com/sessions/qwen.json)
Quoted credit costs per call (basic=1, advanced=2) tied to search depth, plan credit pool, and free-tier allowance, flagged as unverified because the pricing page couldn't be fetched; no dollar figure given. (seq 43, tavily_example/README.md)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained a real Tavily API key. It checked the environment for a Tavily key (none found), wrote a working example script, and tested it twice: once with no key (clean exit) and once with a fabricated dummy key, which the hosted API correctly rejected as unauthorized. No authenticated operation against Tavily's hosted API ever succeeded, and the agent explicitly flagged the missing credential as a blocker rather than resolving it.
  Event 6:

  ```text
  PI_GATEWAY_API_KEY=<set>
  ```
  Event 37:

  ```text
  tavily.errors.InvalidAPIKeyError: Unauthorized: missing or invalid API key.
  ```
  Event 43:

  ```text
  there's no `TAVILY_API_KEY` in this environment, so I could not make a real successful search call.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No Tavily API key available for a live call**: The sandbox environment had no TAVILY_API_KEY, and there was no self-service way to generate one, so the agent could only validate failure paths (no key, invalid key) rather than a real successful search. This is a missing-credentials limitation of the test environment, not a demonstrated product defect, since Tavily's SDK and API otherwise behaved correctly (installed, documented methods, clear error on bad key).
  Event 37:

  ```text
  error: TAVILY_API_KEY is not set (get one at https://app.tavily.com)
  ```
  Event 43:

  ```text
  Blocked (one thing): there's no `TAVILY_API_KEY` in this environment, so I could not make a real successful search call.
  ```

#### Suggested Changes
None identified in this transcript.

### Task given to each agent
Help me build a simple example using Tavily. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: B · 84/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a Markdown Accept header; no Markdown representation offered.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt lists docs, API reference, SDKs, MCP, CLI, skills and examples with links.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt gives start-here guidance, connection choices, capability selection and recommended defaults.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt mentions API reference, remote MCP server, and Agent Skills with links.
  ```

- **Pass** — A compact guide representation exists

  ```text
  docs.tavily.com/agents.md is a standalone Markdown setup guide linked from llms.txt.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  agents.md fetched as text/markdown with concrete SDK/MCP/CLI setup steps.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  agents.md is a compact guide well under the 8000-token budget.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown unsupported, so link preservation across formats cannot be judged.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  llms.txt gives CLI install, login, and search/extract/crawl/research commands; agent-skills.md adds npx skills install.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Fetched install/next-step targets (llms.txt, index.md, python quick-start, agent-skills, search.md) all returned 200.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  llms.txt links Quickstart (index.md) with setup steps and first API call.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install commands shown: pip install tavily-python, npm i @tavily/core, pip install tavily-cli.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Python, JavaScript and cURL examples appear inline without interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Free API key from app.tavily.com required; keyless Search/Extract noted.
  ```


### Pricing
- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page lists plans and prices as static text, no interaction needed.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Researcher free, Project $30, Pay-as-you-go $0.008/credit, Enterprise custom all stated.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Credits per month, per-credit price, and per-endpoint credit costs are explicit.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Quoted plan tiers and per-credit prices from the docs, tied to a credit-cost basis per endpoint (search depth, extract URLs, crawl pages, Research min/max) (seq 38, seq 89) Kimi K3: Pulled pricing from the live pricing page and docs. It listed plan tiers with credit allowances, plus credit costs per search depth and per 5 extracted URLs, the monthly reset, and what happens when credits run out. (seq 18, seq 46, seq 48) Qwen 3.8 Max: Quoted credit costs per call (basic=1, advanced=2) tied to search depth, plan credit pool, and free-tier allowance, flagged as unverified because the pricing page couldn't be fetched; no dollar figure given. (seq 43, tavily_example/README.md) This behavioural item does not affect the fast grade.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  OpenAPI specs for Search, Extract, Crawl, Map, Research are published in the API reference pages.
  ```

- **Pass** — An MCP server is documented and well-formed

  ```text
  MCP server documented with remote URL, OAuth, tool list, and client setup.
  ```

- **Pass** — A CLI install path is documented

  ```text
  CLI install documented via installer script, uv, pipx, and pip.
  ```

- **Pass** — SDK packages resolve on their registries

  ```text
  Registry lookups for tavily-python, tavily-cli, and @tavily/core all returned HTTP 200.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skills published with install commands and a skills repository.
  ```



[Full report data](https://www.ax-check.com/tavily.com/report.json)
