Skip to main content

Prerequisites

API Key

Get one free from the dashboard

Runtime

Node.js 18+, Python 3.8+, or just use cURL

Your First Automation

curl -N -X POST https://mino.ai/v1/automation/run-sse \
  -H "X-API-Key: $MINO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://scrapeme.live/shop",
    "goal": "Extract the first 2 product names and prices"
  }'
Run it:
export MINO_API_KEY="your_api_key_here"
node first-automation.mjs

Expected Output

{'type': 'STARTED', 'runId': 'abc123'}
{'type': 'STREAMING_URL', 'runId': 'abc123', 'streamingUrl': 'https://stream.mino.ai/session/abc123'}
{'type': 'PROGRESS', 'runId': 'abc123', 'purpose': 'Visit the page to extract product information'}
{'type': 'PROGRESS', 'runId': 'abc123', 'purpose': 'Check for product information on the page'}
{'type': 'COMPLETE', 'runId': 'abc123', 'status': 'COMPLETED', 'resultJson': {
  "products": [
    { "name": "Bulbasaur", "price": "$63.00" },
    { "name": "Ivysaur", "price": "$87.00" },
  ]
}}

SSE Event Types

EventDescription
STARTEDAutomation has begun
STREAMING_URLURL to watch browser live
PROGRESSAI is performing an action
COMPLETEAutomation finished (success or failure)
HEARTBEATKeep-alive (every 30 seconds)

Try More Examples

Use Stealth Mode

For sites with bot protection:
{
  "url": "https://protected-site.com",
  "goal": "Extract product data",
  "browser_profile": "stealth"
}

Add Proxy

Route through a specific country:
{
  "url": "https://geo-restricted-site.com",
  "goal": "Check if content is available",
  "proxy_config": {
    "enabled": true,
    "country_code": "US"
  }
}

Troubleshooting

Check your API key:
echo $MINO_API_KEY
export MINO_API_KEY="your_actual_api_key"
Check your request body:
  • url must be a valid HTTP/HTTPS URL
  • goal must be a non-empty string
  • browser_profile must be “lite” or “stealth”
Make sure you’re reading the stream:
  • Use -N flag with cURL
  • Use stream=True in Python requests
  • Read response.body with a reader in Node.js

Next Steps