<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg" -->

---
title: How to use TinyFish | daily.dev
description: TinyFish is a platform that lets code search the web, read pages, and complete tasks in a remote browser. This tutorial walks through its JavaScript SDK,...
canonical: https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: How to use TinyFish | daily.dev
og:description: TinyFish is a platform that lets code search the web, read pages, and complete tasks in a remote browser. This tutorial walks through its JavaScript SDK,...
og:url: https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg
og:image: https://api.daily.dev/og/posts/2fEXQfaTG.png
og:image:alt: How to use TinyFish
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# How to use TinyFish

**[Flavio Copes](https://daily.dev/sources/flaviocopes)** · 37 min read · 10 upvotes · 0 comments

## Summary

TinyFish is a platform that lets code search the web, read pages, and complete tasks in a remote browser. This tutorial walks through its JavaScript SDK, covering Search, Fetch, Web Agent, Browser, Research, and Monitor tools using a practice store at scrapeme.live. It shows how to add output_schema for predictable JSON, stream or queue long-running agent runs, use saved login profiles and Vault credentials, run from the CLI, and connect via MCP. It also lists published rates: 12,000 free Search requests per day, 1,000 free Fetch URLs per day, $0.016 per Web Agent step, and $0.002 per browser minute. The author notes they haven't used TinyFish in production.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://flaviocopes.com/tinyfish>

## Questions this post answers

### How much does TinyFish charge for its Web Agent API per step?

TinyFish's Web Agent costs $0.016 per step for public product page lists, according to its published pricing. The Browser API separately costs $0.002 per browser minute. Search offers 12,000 free requests per day and Fetch offers 1,000 successfully fetched URLs per day before wallet charges apply.

_Developers comparing browser automation costs can track pricing changes like this on daily.dev._

### How do I get a predictable JSON structure from a TinyFish Web Agent run instead of freeform text?

Pass an output_schema parameter to client.agent.run() describing the desired object shape. TinyFish supports a subset of JSON Schema: arrays must sit inside a top-level object, nullable:true allows missing values, required lists mandatory fields, and maxItems limits array size. Keywords like additionalProperties and oneOf are not accepted, so a generated schema needs checking before use.

_Teams building structured scraping pipelines can follow guides like this on daily.dev to avoid schema pitfalls._

### Why does TinyFish's Agent API return a 403 error when I set agent_config.max_steps?

The max_steps option and strict mode are labeled as beta features that are account-gated. Including max_steps without the proper account access returns a 403 error, so it should not be assumed to be generally available for every account and added to every request by default.

_Developers debugging automation API errors can keep up with gated beta features via daily.dev._

## Similar posts on daily.dev

- [Tinybird Best Practices for AI Agents](https://daily.dev/posts/tinybird-best-practices-for-ai-agents-cbamqjlpd) · Tinybird · 0 upvotes · 0 comments
- [Build an AI Agent with Real-Time Web Search in JavaScript](https://daily.dev/posts/build-an-ai-agent-with-real-time-web-search-in-javascript-qcyztz206) · Amit Merchant · 5 upvotes · 0 comments

---

Tags: [#javascript](https://daily.dev/tags/javascript), [#automation](https://daily.dev/tags/automation), [#crawling](https://daily.dev/tags/crawling)

[View this post on daily.dev](https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"How to use TinyFish","url":"https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg"},"datePublished":"2026-10-29T11:21:57.262Z","dateModified":"2026-10-29T11:22:30.155Z","description":"TinyFish is a platform that lets code search the web, read pages, and complete tasks in a remote browser. This tutorial walks through its JavaScript SDK,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8fa8eafc0db27f58ed6b9de7b929920d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8fa8eafc0db27f58ed6b9de7b929920d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Flavio Copes","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Flavio Copes","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/1f2dbd275797411bbd37bfdaaf0951a9","url":"https://daily.dev/sources/flaviocopes"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":10},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"javascript,automation,crawling","timeRequired":"PT37M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Flavio Copes","item":"https://daily.dev/sources/flaviocopes"},{"@type":"ListItem","position":3,"name":"How to use TinyFish"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/how-to-use-tinyfish-2fexqfatg#faq","mainEntity":[{"@type":"Question","name":"How much does TinyFish charge for its Web Agent API per step?","acceptedAnswer":{"@type":"Answer","text":"TinyFish's Web Agent costs $0.016 per step for public product page lists, according to its published pricing. The Browser API separately costs $0.002 per browser minute. Search offers 12,000 free requests per day and Fetch offers 1,000 successfully fetched URLs per day before wallet charges apply. Developers comparing browser automation costs can track pricing changes like this on daily.dev."}},{"@type":"Question","name":"How do I get a predictable JSON structure from a TinyFish Web Agent run instead of freeform text?","acceptedAnswer":{"@type":"Answer","text":"Pass an output_schema parameter to client.agent.run() describing the desired object shape. TinyFish supports a subset of JSON Schema: arrays must sit inside a top-level object, nullable:true allows missing values, required lists mandatory fields, and maxItems limits array size. Keywords like additionalProperties and oneOf are not accepted, so a generated schema needs checking before use. Teams building structured scraping pipelines can follow guides like this on daily.dev to avoid schema pitfalls."}},{"@type":"Question","name":"Why does TinyFish's Agent API return a 403 error when I set agent_config.max_steps?","acceptedAnswer":{"@type":"Answer","text":"The max_steps option and strict mode are labeled as beta features that are account-gated. Including max_steps without the proper account access returns a 403 error, so it should not be assumed to be generally available for every account and added to every request by default. Developers debugging automation API errors can keep up with gated beta features via daily.dev."}}]}
```

