# AX Check: tinyfish.ai
Checked 2026-10-17.

TinyFish's quickstart and pricing are usable with no login wall.
20 of 23 checklist items passed: install commands, code samples, and a static rate table are all readable without signing in first.

## Onboarding needs a login

## Coding sessions
All three independent agent sessions (DeepSeek V4.1 Flash, Kimi K3, Qwen 3.8 Max) completed their task and correctly reported pricing: per-unit rates for Agent, Browser, Search and Fetch, plus the pay-as-you-go Wallet terms including starting credit and minimum top-up.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/02fb6d26-0b17-4e27-879c-4e120fac6dae) · [Read transcript](https://www.ax-check.com/tinyfish.ai/sessions/deepseek.json)
Gave per-unit rates (Agent $0.016/step, Browser $0.002/min, Search/Fetch free) and named the basis: pay-as-you-go with no plan, a prepaid Wallet, an $8 starting credit, a $10 minimum top-up and rate limits. (seq 31, seq 87, seq 101)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent thoroughly explored TinyFish's hosted docs, SDK, and pricing, and wrote a working example script, but never obtained a real API key. No TINYFISH_API_KEY existed in the environment, there is no self-service way to mint one without a human visiting the dashboard sign-up/sign-in flow, and the agent explicitly tested with a placeholder key that the live API rejected with 401. No authenticated operation against the hosted product was ever completed.
  Event 43:

  ```text
  (no TINYFISH_API_KEY set)
  ```
  Event 77:

  ```text
  BLOCKED by API: HTTP 401 — Invalid or expired API key
  ```
  Event 101:

  ```text
  I could not complete a live run: **there is no `TINYFISH_API_KEY` in this environment**.
  ```

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

#### Blockers
- **No self-service API key available in sandbox**: Every TinyFish endpoint — including the nominally free Search and Fetch APIs — requires an X-API-Key header, and the API key can only be created by a human visiting the hosted API Keys page and signing up or logging in. This is a normal authentication requirement, not a product defect: the agent correctly identified it, tried a placeholder key to confirm the exact failure mode, and stopped without faking success.
  Event 45:

  ```text
  All REST API requests require an `X-API-Key` header.
  ```
  Event 77:

  ```text
  BLOCKED by API: HTTP 401 — Invalid or expired API key
  ```

#### Suggested Changes
- **Clarify that 'free' Search/Fetch still require signup**: The pricing page markets Search and Fetch as free with no card required, but both still require an API key gated behind account creation. Add a note on the pricing page or quick-start (docs.tinyfish.ai/quick-start) stating plainly that even free-tier calls need a signed-up API key, so developers evaluating the free tier do not expect anonymous/no-auth access.
  Event 31:

  ```text
  Pay only for what you run. No plans, no minimums, and a contract when you need more. Get started for free
  ```
  Event 45:

  ```text
  All REST API requests require an `X-API-Key` header.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/b270430a-705c-4f73-b5e3-4a1dac1e25c3) · [Read transcript](https://www.ax-check.com/tinyfish.ai/sessions/kimi.json)
Quoted pricing taken from the pricing page: Agent at $0.016/step, Browser at $0.002/min, Search and Fetch free. Stated the basis: pay-as-you-go wallet with no plans, $8 starting credit, $10 minimum deposit, and rate/concurrency caps. (seq 27, seq 32, seq 51)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent explored TinyFish docs and built a working example script locally but never obtained a real API key. Signup/API key creation requires a browser-based account (sign-up page), which the agent could not complete non-interactively, and no environment variable was pre-set. The client was only instantiated to confirm it correctly raises an error without a key — no authenticated call to the hosted TinyFish API was ever made.
  Event 36:

  ```text
  ---
  
  ```
  Event 49:

  ```text
  ValueError - No API key provided. Pass api_key= to the client or set the TINYFISH_API_KEY environment variable.
  ```
  Event 51:

  ```text
  Yes, one blocker: there's **no `TINYFISH_API_KEY` in this environment**, and signup requires a browser-based account, so I can't execute a live run. That's the only gap — the script is ready to run the moment a key is exported.
  ```

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

#### Blockers
- **No API key available to run a live TinyFish call**: The sandbox environment had no TINYFISH_API_KEY set, and TinyFish requires a browser-based sign-up/sign-in flow to obtain one. This is a normal authentication requirement of the product (not a product defect) combined with the test environment lacking pre-provisioned credentials. As a result, the agent could only verify the SDK installs and the client correctly errors out without a key — no live automation run against the hosted API was executed.
  Event 36:

  ```text
  ---
  
  ```
  Event 49:

  ```text
  ValueError - No API key provided. Pass api_key= to the client or set the TINYFISH_API_KEY environment variable.
  ```
  Event 51:

  ```text
  Yes, one blocker: there's **no `TINYFISH_API_KEY` in this environment**, and signup requires a browser-based account, so I can't execute a live run. That's the only gap — the script is ready to run the moment a key is exported.
  ```

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

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/8f21d929-9229-4d0f-9a23-e4b85ba496b7) · [Read transcript](https://www.ax-check.com/tinyfish.ai/sessions/qwen.json)
Quoted per-unit rates from the pricing page, tied to the pay-as-you-go Wallet plan: $8 starting credit, $10 minimum top-up, free Search/Fetch rate limits and concurrency caps. (seq 25, seq 72, tinyfish_example/README.md)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent researched TinyFish's hosted API via public docs/README and scaffolded three example scripts (search/fetch, agent run, wallet check), but never obtained an API key and explicitly could not make any authenticated call. It confirmed no TINYFISH_API_KEY existed in the sandbox, found the SDK refuses to construct a client without one, and stopped there, saying the user needs to self-serve a key from the TinyFish dashboard. No live HTTP call to a TinyFish endpoint was made at any point.
  Event 35:

  ```text
  no TINYFISH_API_KEY
  ```
  Event 42:

  ```text
  ValueError No API key provided. Pass api_key= to the client or set the TINYFISH_API_KEY environment variable.
  ```
  Event 72:

  ```text
  I could **not execute a live call**: there's no `TINYFISH_API_KEY` in this environment, and the SDK refuses to construct a client without one.
  ```

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

#### Blockers
- **No API key available to exercise the live TinyFish API**: The sandbox had no TINYFISH_API_KEY set, and the TinyFish Python SDK raises a ValueError on construction without one. This is a credentials/environment limitation, not a product defect — TinyFish requires normal API-key signup, and the agent could not self-provision one. As a result no search, fetch, agent, or wallet call was ever actually executed against the hosted API; all verification was limited to local install, imports, and function signatures.
  Event 35:

  ```text
  no TINYFISH_API_KEY
  ```
  Event 42:

  ```text
  ValueError No API key provided. Pass api_key= to the client or set the TINYFISH_API_KEY environment variable.
  ```
  Event 72:

  ```text
  there's no `TINYFISH_API_KEY` in this environment, and the SDK refuses to construct a client without one
  ```

#### Suggested Changes
- **Offer a short-lived trial key or sandbox mode for key-less exploration**: The free Search/Fetch tiers still require a full account API key just to construct the SDK client (ValueError at TinyFish() with no key), blocking any live verification for a first-time evaluator without dashboard signup. Consider a scoped, rate-limited trial credential (e.g., via a public demo endpoint) so agents/developers can run search.query() or fetch.get_contents() read-only calls before creating an account. Check success by confirming a fresh environment with no stored credentials can complete one real search.query() call end to end.
  Event 42:

  ```text
  ValueError No API key provided. Pass api_key= to the client or set the TINYFISH_API_KEY environment variable.
  ```

### Task given to each agent
Help me build a simple example using TinyFish. 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 text/markdown request; no Markdown representation offered.
  ```

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

  ```text
  llms.txt lists key pages, docs, pricing, comparisons and blog with descriptions.
  ```

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

  ```text
  llms.txt groups links under Key Pages, Compare, Industries, Customer Stories and Blog headings.
  ```

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

  ```text
  llms.txt references Search/Fetch APIs, MCP-based tools and agent surfaces via linked pages.
  ```

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

  ```text
  docs.tinyfish.ai/quick-start.md returns a standalone Markdown quickstart guide.
  ```

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

  ```text
  Quick Start page is directly retrievable as Markdown with five concrete steps.
  ```

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

  ```text
  Markdown quickstart is 2992 tokens, well under the 8000-token budget.
  ```

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

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

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

  ```text
  Quick Start gives five concrete steps: sign up, API key, install SDK/CLI, run code, verify output.
  ```

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

  ```text
  Fetched quick-start, docs, agent-api, search-api, fetch-api, research-api and MCP pages all returned 200.
  ```


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

  ```text
  Docs quick-start page gives a five-step first automation with goal, URL and expected JSON.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Quick-start and CLI pages list pip install tinyfish, npm i @tiny-fish/sdk, npm install -g @tiny-fish/cli.
  ```

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

  ```text
  Quick-start shows Python, TypeScript, CLI and cURL code inline without any interaction.
  ```

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

  ```text
  Quick-start requires sign-up, API key from API Keys page, and TINYFISH_API_KEY export.
  ```


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

  ```text
  Pricing page renders full rate table and FAQ as static HTML, no interaction needed.
  ```

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

  ```text
  Prices stated: Search/Fetch free, Agent $0.016/step, Browser $0.002/min, Monitor $0.005/check.
  ```

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

  ```text
  Units and limits explicit: per step, per minute, per check, plus rate and concurrency limits.
  ```

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

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Gave per-unit rates (Agent $0.016/step, Browser $0.002/min, Search/Fetch free) and named the basis: pay-as-you-go with no plan, a prepaid Wallet, an $8 starting credit, a $10 minimum top-up and rate limits. (seq 31, seq 87, seq 101) Kimi K3: Quoted pricing taken from the pricing page: Agent at $0.016/step, Browser at $0.002/min, Search and Fetch free. Stated the basis: pay-as-you-go wallet with no plans, $8 starting credit, $10 minimum deposit, and rate/concurrency caps. (seq 27, seq 32, seq 51) Qwen 3.8 Max: Quoted per-unit rates from the pricing page, tied to the pay-as-you-go Wallet plan: $8 starting credit, $10 minimum top-up, free Search/Fetch rate limits and concurrency caps. (seq 25, seq 72, tinyfish_example/README.md) This behavioural item does not affect the fast grade.
  ```


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

  ```text
  Docs list Agent, Search, Fetch, Browser, Research API references with canonical endpoints and request schemas.
  ```

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

  ```text
  MCP page documents server URL, per-client install, OAuth 2.1 auth, and full tool list.
  ```

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

  ```text
  CLI page documents npm install -g @tiny-fish/cli plus auth and quick-start commands.
  ```

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

  ```text
  Registry lookups returned HTTP 200 for pypi tinyfish, npm @tiny-fish/sdk and @tiny-fish/cli.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills package or skills directory is offered in the fetched evidence.
  ```



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