--- | $2M investment seed pool💰 • 9-week program • Free credits • Engineering support • Business mentorship |
Welcome to the TinyFish Cookbook! This is a growing collection of recipes, demos, and automations built with TinyFish.
🏆 We're SOTA! — we just scored 90% on Mind2Web benchmark, outperforming Gemini by 21 points, OpenAI by 29, and Anthropic by 34. We ran all 300 tasks in parallel and published every single run publicly. Read our benchmark results → | View all runs →
SOTA web agents in an API that lets you treat real websites like programmable surfaces. Instead of juggling headless browsers, selectors, proxies, and weird edge cases, you call a single API with a goal and some URLs and get back clean JSON. It handles navigation, forms, filters, dynamic content, proxies, and multi-step flows across many sites at once.
The same infrastructure and agents used by big enterprises (like Google, Doordash and Classpass), now for everyone!
- 🕸️ Fully managed browser and agent infra in one API
- 🌐 Any website → API — Turn sites without APIs into programmable data sources
- 💬 Natural language goals — Send a URL + plain English, get structured JSON back
- 🤖 Real browser automation — Multi-step flows, forms, filters, calendars, dynamic content
- 🥷 Built-in stealth mode — Rotating proxies + stealth profiles included (no extra cost)
- 📊 Production-grade logs — Full observability and debugging for every run
- 🔌 Flexible integration — HTTP API, visual Playground, or MCP server for Claude/Cursor
Each folder in this repo is a standalone project. Dive in to see how to solve real-world problems.
| Recipe | Description |
|---|---|
| anime-watch-hub | Helps you find sites to read/watch your favorite manga/anime for free |
| bestbet | Sports betting odds comparison tool |
| code-reference-finder | AI-powered code snippet analyzer that finds real-world usage examples from GitHub and Stack Overflow |
| competitor-analysis | Live competitive pricing intelligence dashboard |
| competitor-scout-cli | Natural language CLI tool for researching competitor feature decisions across multiple websites |
| concept-discovery-system | Project idea validator that discovers similar existing projects across GitHub, Dev.to, and Stack Overflow |
| fast-qa | No-code QA testing platform with parallel test execution and live browser previews |
| game-buying-guide | Video game buying decision tool comparing pricing and deals across 10 gaming platforms in parallel |
| lego-hunter | Global inventory search tool finding rare Lego sets across 15+ retailers with price and availability analysis |
| loan-decision-copilot | AI-powered loan comparison tool across banks and regions |
| logistics-sentry | Logistics intelligence platform for port congestion and carrier risk tracking |
| Manga-Availability-Finder | Searches multiple reading platforms for manga/webtoon availability |
| openbox-deals | Real-time open-box and refurbished deal aggregator across 8 retailers |
| research-sentry | Voice-first academic research co-pilot scanning ArXiv, PubMed, and more |
| restaurant-comparison-tool | Pre-visit restaurant safety intelligence tool analyzing Google Maps reviews, menus, and allergen signals |
| scholarship-finder | AI-powered scholarship discovery system pulling live data from official websites |
| silicon-signal | Semiconductor supply chain tracker for lifecycle, availability, and lead-time signals |
| stay-scout-hub | Searches across all sites for places to stay when traveling for conventions or events |
| summer-school-finder | Discover and compare summer school programs from universities around the world |
| tenders-finder | AI-powered Singapore government tender discovery tool scraping multiple tender portals in parallel |
| tinyskills | Multi-source AI skill guide generator |
| tutor-finder | AI-powered tutor discovery platform for competitive exams across multiple platforms |
| viet-bike-scout | Motorbike rental price comparison tool across Vietnamese cities using parallel browser agents |
| waifu-deal-sniper | Discord bot for anime figure collectors finding discounted pre-owned figures from AmiAmi, Mercari, and Solaris Japan |
| wing-command | Chicken wing tracker using AI-powered scraping to find the best wings near you by flavor preference |
Pre-built n8n workflows using TinyFish — import the JSON and go.
| Workflow | Description |
|---|---|
| Competitor Scout | Research competitor feature decisions with OpenAI planning and TinyFish evidence collection |
| Web Research Agent | Chatbot that scrapes any website with TinyFish and saves summarized reports to Notion |
| Daily Product Hunt Tracker | Scheduled workflow delivering daily top 5 trending Product Hunt products to Telegram |
More recipes added weekly!
You don't need to install heavy SDKs. TinyFish works with standard HTTP requests.
Sign up on tinyfish.ai and grab your API key.
Here is how to run a simple automation agent:
curl -N -X POST https://agent.tinyfish.ai/v1/automation/run-sse \ -H "X-API-Key: $TINYFISH_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://agentql.com", "goal": "Find all AgentQL subscription plans and their prices. Return result in json format" }'import json import os import requests response = requests.post( "https://agent.tinyfish.ai/v1/automation/run-sse", headers={ "X-API-Key": os.getenv("TINYFISH_API_KEY"), "Content-Type": "application/json", }, json={ "url": "https://agentql.com", "goal": "Find all AgentQL subscription plans and their prices. Return result in json format", }, stream=True, ) for line in response.iter_lines(): if line: line_str = line.decode("utf-8") if line_str.startswith("data: "): event = json.loads(line_str[6:]) print(event)const response = await fetch("https://agent.tinyfish.ai/v1/automation/run-sse", { method: "POST", headers: { "X-API-Key": process.env.TINYFISH_API_KEY, "Content-Type": "application/json", }, body: JSON.stringify({ url: "https://agentql.com", goal: "Find all AgentQL subscription plans and their prices. Return result in json format", }), }); const reader = response.body.getReader(); const decoder = new TextDecoder(); while (true) { const { done, value } = await reader.read(); if (done) break; console.log(decoder.decode(value)); }By the way! If you want to expose your project on localhost to your friends to show them a demo, you can now use the tinyfi.sh by us! Completely free and easy to use!
Got something cool you built with TinyFish? We want it in here! Check out our Contributing Guide for the full rundown on how to submit your project.
- Join us on Discord — ask questions, share what you're building, hang out
- Learn more at tinyfish.ai
This repository is a community-driven space for sharing derivatives, code samples, and best practices related to Tiny Fish products. By using the materials in this repository, you acknowledge and agree to the following:
- "As-Is" Basis: All code, scripts, and documentation shared here are provided "AS IS" and "AS AVAILABLE." TinyFish makes no warranties of any kind, whether express or implied, regarding the accuracy, reliability, or security of community-contributed content.
- No Obligation to Maintain: Tiny Fish is under no obligation to monitor, update, or fix bugs, errors, or security vulnerabilities found in community-contributed derivatives.
- User Responsibility: You are solely responsible for vetting and testing any code before implementing it in a production environment. Use of these derivatives is at your own risk.
- Limitation of Liability: In no event shall Tiny Fish be held liable for any claim, damages, or other liability—including but not limited to system failures, data loss, or security breaches—arising from the use of or inability to use the contents of this repository.
Note: Contributions from the community do not represent the official views or supported products of Tiny Fish.