# AX Check: yutori.com
Checked 2026-09-18.

Yutori's docs let agents install, auth, and price it instantly.
All 23 checklist items passed: quickstart gives concrete install/auth commands, and pricing is stated in full tables with units, no login required.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed the task and produced clear pricing breakdowns from the docs pricing page, citing per-step and per-task rates for Navigator, Browsing, Research, and Scouting plus the $5 free-credit tier, with one session including a worked cost example.

### DeepSeek V4 Pro
[View public run](https://agents.withgauge.com/p/runs/9d89f3e2-3431-4b5a-aa2e-91611a25b3d7) · [Read transcript](https://www.ax-check.com/yutori.com/sessions/deepseek.json)
Final output gives a pricing table (Navigator n2/n1.5, Browsing $0.015-0.10/step, Research $0.35/task, Scouting $0.35/run) sourced from docs.yutori.com/pricing (seq 48) and names the $5 free-credit trial limit and per-unit assumptions (tokens, steps, tasks) behind each figure.
#### End-to-end onboarding
- **Onboarding needs a login**: No Yutori API key existed anywhere in the sandbox. Agent confirmed YutoriClient() raises AuthenticationError without a key. The only credential path, 'yutori auth login', is interactive OAuth requiring a human to click Allow in a browser and blocks up to 5 minutes. Per task instructions to avoid long-running/interactive commands, the agent did not attempt it, so no real key was ever obtained. It only verified the public unauthenticated /health endpoint and wrote an example script that itself fails on the auth error — no authenticated product operation was demonstrated.
  Event 74:

  ```text
  raise AuthenticationError("No API key provided. Run 'yutori auth login', set YUTORI_API_KEY, or pass api_key.")
  ```
  Event 98:

  ```text
  Authentication error: No API key provided. Run 'yutori auth login', set YUTORI_API_KEY, or pass api_key.
  ```
  Event 34:

  ```text
  The Bash call blocks for up to 5 minutes waiting for the user — if it times out, rerun.
  ```

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

#### Blockers
- **No API key available and obtaining one requires interactive browser login**: The sandbox has no YUTORI_API_KEY, no saved ~/.yutori/config.json, and no way to complete the OAuth-based 'yutori auth login' flow without a human clicking Allow. This is a credentials/session-environment limitation, not a product defect — the auth model reasonably requires human authorization for a new account. The agent avoided the blocking interactive command per its own instructions, so the live demo never ran with real credentials.
  Event 34:

  ```text
  Always run this yourself first**, even on a headless host. The command calls `webbrowser.open(auth_url)`, binds `127.0.0.1` for the OAuth callback, and saves the API key to `~/.yutori/config.json`. The Bash call blocks for up to 5 minutes waiting for the user
  ```
  Event 79:

  ```text
  AUTH ERROR (expected): No API key provided. Run 'yutori auth login', set YUTORI_API_KEY, or pass api_key.
  ```

#### Suggested Changes
- **Add a non-interactive way to obtain an API key for headless agent sessions**: docs.yutori.com/authentication.md and the llms.txt quickstart only describe key creation via the platform.yutori.com web UI or interactive 'yutori auth login' OAuth (blocks up to 5 min for a browser click). Add a documented headless/service-account key path so a coding agent can get a real key without a human present. Verify by running llms.txt setup in a fresh headless session and confirming an authenticated client.get_usage() call succeeds.
  Event 34:

  ```text
  Headless host / no browser**: the command prints `Could not launch a browser` followed by an `auth_url`. **Relay that URL to the user** — they paste it into a browser on their own machine, click Allow
  ```
  Event 51:

  ```text
  1. [Sign up here](https://platform.yutori.com/sign-up) to get started — every account comes with \$5 in free credits.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/7ab5aa04-a9b4-44e6-be2a-2d7f5dc83cd0) · [Read transcript](https://www.ax-check.com/yutori.com/sessions/kimi.json)
Final output gives per-token and per-step pricing tied to named plans/models (Navigator n2, n1.5, Browsing $0.015/step, Research $0.35, Scouting $0.35) with worked examples like a 30-step workflow ≈$0.45 and hourly Scouting ≈$58.80/week, plus the $5 free-credit trial assumption.
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: Agent explored Yutori docs and API surface via public/unauthenticated endpoints only (root, /health, doc pages). No sign-up flow was attempted, no API key was obtained, and the only authenticated call made used a deliberately invalid placeholder key, which correctly returned 401. No real credentials were acquired or used, so no authenticated product operation was demonstrated.
  Event 41:

  ```text
  env | grep -iE 'yutori|api_key|openai|anthropic' | sed 's/=.\{8\}.*/=***redacted***/' ; echo "---"; curl -sS -m 10 https://api.yutori.com/health
  ```
  Event 57:

  ```text
  YUTORI_API_KEY=invalid-test python3 yutori_example.py; echo "exit=$?"
  ```
  Event 60:

  ```text
  ❌ **Blocked on a real run**: no `YUTORI_API_KEY` is available in this environment. To unblock: sign up at platform.yutori.com ($5 free credits), create a key under Settings → API Keys, then `export YUTORI_API_KEY=...` and run the script.
  ```

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

#### Blockers
- **No API key available to run a live Yutori task**: The environment had no YUTORI_API_KEY, and Yutori's product requires sign-up plus manual billing setup (platform.yutori.com) to obtain one — a normal login/credential wall rather than a product defect. The agent correctly identified this and tested its script with a deliberately invalid key to confirm the request path returns 401, but never executed a real authenticated task.
  Event 45:

  ```text
  PI_GATEWAY_API_KEY=unused
  ---
  {"status":"ok"}
  ```
  Event 58:

  ```text
  requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://api.yutori.com/v1/browsing/tasks
  ```
  Event 60:

  ```text
  no `YUTORI_API_KEY` is available in this environment. To unblock: sign up at platform.yutori.com ($5 free credits), create a key under Settings → API Keys
  ```

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

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/de1406a4-3143-413e-a588-4ceaf4c8c7c4) · [Read transcript](https://www.ax-check.com/yutori.com/sessions/qwen.json)
Final output gives a pricing table (per-step, per-task costs) and states assumptions: pay-as-you-go with $5 free signup credits, navigator-n1.5 agent vs Claude Sonnet computer-use rates, and a max_steps=10 cap yielding an estimated ~$0.15 example cost.
#### End-to-end onboarding
- **Onboarding needs a login**: The agent installed the Yutori SDK, fetched docs, and wrote a working example script, but never obtained a real API key. The only auth path (yutori auth login) requires an interactive browser OAuth flow that blocks for human approval, which the agent correctly declined to run given the no-long-running-commands constraint. It confirmed only the public, unauthenticated /health endpoint and then hit AuthenticationError when instantiating the client without a key. No authenticated operation against the hosted product was ever demonstrated.
  Event 78:

  ```text
  AuthenticationError No API key provided. Run 'yutori auth login', set YUTORI_API_KEY, or pass api_key.
  ```
  Event 80:

  ```text
  I can't actually run the example: there's no `YUTORI_API_KEY` in this environment, and the only auth path is `yutori auth login`, which opens a browser OAuth flow and **blocks up to 5 minutes waiting for you to click "Allow"**
  ```
  Event 62:

  ```text
  {"status":"ok"}
  ```

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

#### Blockers
- **No self-service API key without interactive browser login**: Yutori's only credential path is `yutori auth login`, which opens a browser OAuth tab and blocks the terminal for up to 5 minutes waiting on human approval. This is normal product auth behavior, not a defect, but it is incompatible with the session's constraint against long-running/interactive commands, so the agent stopped short of running its own example against the live API.
  Event 80:

  ```text
  the only auth path is `yutori auth login`, which opens a browser OAuth flow and **blocks up to 5 minutes waiting for you to click "Allow"** — that's an interactive, long-running command, which your instructions rule out
  ```
  Event 78:

  ```text
  AuthenticationError No API key provided. Run 'yutori auth login', set YUTORI_API_KEY, or pass api_key.
  ```

#### Suggested Changes
- **Add a headless/non-interactive API key issuance path**: Document (in docs.yutori.com/authentication.md or the llms.txt quickstart) a way to mint a YUTORI_API_KEY without the browser OAuth flow — e.g., a signup-time key shown in the dashboard, or a CLI flag for pasting a pre-generated key. Verify by having a coding agent obtain and use a key entirely from the CLI/API without a human clicking Allow in a browser.
  Event 29:

  ```text
  **Always run this yourself first**, even on a headless host. The command calls `webbrowser.open(auth_url)`, binds `127.0.0.1` for the OAuth callback, and saves the API key to `~/.yutori/config.json`. The Bash call blocks for up to 5 minutes waiting for the user
  ```

### Task given to each agent
Help me build a simple example using Yutori. 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: A · 100/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

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

  ```text
  Homepage returned text/markdown 200 for a text/markdown Accept header.
  ```

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

  ```text
  llms.txt links docs, OpenAPI, auth, MCP, SDK, skills and a coding-agent quickstart.
  ```

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

  ```text
  llms.txt groups resources under Developer resources, Navigator API, and a Site Map.
  ```

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

  ```text
  llms.txt names the API, hosted MCP server, WebMCP, and agent skills index.
  ```

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

  ```text
  yutori.com/api/llms.txt is a standalone Markdown quickstart covering CLI, MCP, skills, auth and demos.
  ```

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

  ```text
  The quickstart is directly retrievable as text/markdown at yutori.com/api/llms.txt.
  ```

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

  ```text
  Quickstart measures 3543 tokens, well under the 8000-token budget.
  ```

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

  ```text
  Homepage Markdown links to docs, OpenAPI, auth, MCP, SDK and skills, all preserved.
  ```

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

  ```text
  yutori.com/api/llms.txt gives install, auth, verify, and demo steps with concrete commands.
  ```

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

  ```text
  Fetched install/next-step targets (docs, SDK, MCP, skills index) all returned 200.
  ```


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

  ```text
  Docs quickstart points to agent quickstart with CLI install, login, MCP, skills, demos.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install command given: curl install.sh, uv tool install yutori, npx add-mcp, uvx yutori-mcp.
  ```

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

  ```text
  Quickstart shows inline bash and Python examples without interaction.
  ```

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

  ```text
  Auth via yutori auth login or API key from platform.yutori.com; prerequisites stated.
  ```


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

  ```text
  Docs pricing page renders full price tables as static Markdown, no interaction needed.
  ```

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

  ```text
  Docs pricing states per-token, per-step, per-task prices plus $5 free credits.
  ```

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

  ```text
  Docs pricing defines units: per 1M tokens, per step, per task, per scout-run.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4 Pro: Final output gives a pricing table (Navigator n2/n1.5, Browsing $0.015-0.10/step, Research $0.35/task, Scouting $0.35/run) sourced from docs.yutori.com/pricing (seq 48) and names the $5 free-credit trial limit and per-unit assumptions (tokens, steps, tasks) behind each figure. Kimi K3: Final output gives per-token and per-step pricing tied to named plans/models (Navigator n2, n1.5, Browsing $0.015/step, Research $0.35, Scouting $0.35) with worked examples like a 30-step workflow ≈$0.45 and hourly Scouting ≈$58.80/week, plus the $5 free-credit trial assumption. Qwen 3.8 Max: Final output gives a pricing table (per-step, per-task costs) and states assumptions: pay-as-you-go with $5 free signup credits, navigator-n1.5 agent vs Claude Sonnet computer-use rates, and a max_steps=10 cap yielding an estimated ~$0.15 example cost. This behavioural item does not affect the fast grade.
  ```


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

  ```text
  OpenAPI 3.1 spec fetched at docs.yutori.com/openapi.json; Navigator reference embeds full OpenAPI.
  ```

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

  ```text
  Hosted MCP at api.yutori.com/mcp plus server card and WebMCP descriptor with tools.
  ```

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

  ```text
  Quickstart documents uv tool install yutori, yutori auth login, and CLI commands.
  ```

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

  ```text
  PyPI registry lookup for yutori returned HTTP 200; Python SDK documented.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skills index lists yutori-api and yutori-auth SKILL.md with digests.
  ```



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