Browser
tinyfish-web-agent
Use TinyFish/Mino web agent to extract/scrape
---
name: tinyfish
description: Use TinyFish/Mino web agent to extract/scrape websites, extract data, and automate browser actions using natural language. Use when you need to extract/scrape data from websites, handle bot-protected sites, or automate web tasks.
---
# TinyFish Web Agent
Requires: `MINO_API_KEY` environment variable
## Best Practices
1. **Specify JSON format**: Always describe the exact structure you want returned
2. **Parallel calls**: When extracting from multiple independent sites, make separate parallel calls instead of combining into one prompt
## Basic Extract/Scrape
Extract data from a page. Specify the JSON structure you want:
```python
import requests
import json
import os
response = requests.post(
"https://mino.ai/v1/automation/run-sse",
headers={
"X-API-Key": os.environ["MINO_API_KEY"],
"Content-Type": "application/json",
},
json={
"url": "https://example.com",
"goal": "Extract product info as JSON: {\"name\": str, \"price\": str, \"in_stock\": bool}",
},
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:])
if event.get("type") == "COMPLETE" and event.get("status") == "COMPLETED":
print(json.dumps(event["resultJson"], indent=2))
```
## Multiple Items
Extract lists of data with explicit structure:
```python
json={
"url": "https://example.com/products",
"goal": "Extract all products as JSON array: [{\"name\": str, \"price\": str, \"url\": str}]",
}
```
## Stealth Mode
For bot-protected sites:
```python
json={
"url": "https://protected-site.com",
"goal": "Extract product data as JSON: {\"name\": str, \"price\": str, \"description\": str}",
"browser_profile": "stealth",
}
```
## Proxy
Route through specific country:
```python
json={
"url": "https://geo-restricted-site.com",
"goal": "Extract pricing data as JSON: {\"item\": str, \"price\": str, \"currency\": str}",
"browser_profile": "stealth",
"proxy_config": {
"enabled": True,
"country_code": "US",
},
}
```
## Output
Results are in `event["resultJson"]` when `event["type"] == "COMPLETE"`
## Parallel Extraction
When extracting from multiple independent sources, make separate parallel API calls instead of combining into one prompt:
**Good** - Parallel calls:
```python
# Compare pizza prices - run these simultaneously
call_1 = extract("https://pizzahut.com", "Extract pizza prices as JSON: [{\"name\": str, \"price\": str}]")
call_2 = extract("https://dominos.com", "Extract pizza prices as JSON: [{\"name\": str, \"price\": str}]")
```
**Bad** - Single combined call:
```python
# Don't do this - less reliable and slower
extract("https://pizzahut.com", "Extract prices from Pizza Hut and also go to Dominos...")
```
Each independent extraction task should be its own API call. This is faster (parallel execution) and more reliable.
browser
By
Comments
Sign in to leave a comment