Jiro — The Search Intelligence Platform
One API. 9 search engines. 12 social platforms. AI-powered. Free forever.
Get Started Free · SDKs · API Docs · Enterprise · Discord
Why Jiro?
Jiro is a local-first, AI-native search & scraping API — a self-hosted alternative to SerpAPI, ScraperAPI, and Bright Data. It gives you:
- 9 search engines — Google, Bing, Brave, DuckDuckGo, YouTube, Amazon, eBay, Yandex, Baidu
- 12 social platforms — Reddit, Twitter/X, YouTube, LinkedIn, TikTok, Instagram, and more
- Hybrid search — keyword + semantic + freshness signals combined
- AI-powered research — agentic search with citations (Enterprise)
- Stealth engine — TLS/JA3 fingerprint rotation, anti-bot bypass
- WebSocket streaming — real-time search results
- Official SDKs — Python, JavaScript/TypeScript, Go
- MCP integration — works with Claude Desktop, Cursor, Continue.dev
- Free forever — generous free tier, no credit card required
Quick Start (30 seconds)
# Install
pip install jirosearch
# Start server
jiro serve
# Search the web
curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{"q": "latest AI research", "engine": "google"}'
That's it. You're searching across 9 engines with hybrid ranking, caching, and structured extraction — all running locally on your machine.
Official SDKs
Python SDK
pip install jiro-sdk
from jiro_sdk import JiroClient
client = JiroClient(api_key="your-key")
# Search
results = client.search("python web scraping")
# Scrape
content = client.scrape("https://example.com")
# AI Research
answer = client.ai_ask("What is Python?")
# Parallel Search
results = client.search_parallel("AI news", num_engines=3)
# Batch Operations
job = client.batch_search(["python", "javascript", "go"])
JavaScript/TypeScript SDK
npm install jiro-sdk
import { JiroClient } from 'jiro-sdk';
const client = new JiroClient({ apiKey: 'your-key' });
// Search
const results = await client.search('python web scraping');
// Scrape
const content = await client.scrape('https://example.com');
// AI Research
const answer = await client.aiAsk('What is Python?');
// WebSocket Streaming
const ws = client.createSearchStream('AI news');
ws.onmessage = (event) => console.log(JSON.parse(event.data));
Go SDK
go get github.com/DevAnimecx/jiro/sdk/go
import "github.com/DevAnimecx/jiro/sdk/go"
client := jiro.NewClient(jiro.WithAPIKey("your-key"))
// Search
results, _ := client.Search("python web scraping", nil)
// Scrape
content, _ := client.Scrape("https://example.com", nil)
// AI Research
answer, _ := client.AiAsk("What is Python?", nil)
Features
CLI Commands
# Search
jiro search web "python web scraping"
jiro search web "AI news" --parallel --engines 3
jiro search web -i # Interactive mode
# Scrape
jiro scrape https://example.com
jiro scrape "free SaaS directories" # Search + scrape top result
# AI
jiro ai ask "What is Python?"
jiro ai setup --provider openai -k sk-...
# Benchmark
jiro bench --iterations 5
# System
jiro status
jiro doctor
jiro serve --port 8000
Free vs Enterprise
| Feature | Free | Enterprise |
|---|---|---|
| Rate Limits | 100 RPM / 10K RPD | 1,000 RPM / 1M RPD |
| Search Engines | 9 engines | 9 engines |
| Social Platforms | 12 platforms | 12 platforms |
| Hybrid Search | ✅ | ✅ |
| Smart Search | ✅ | ✅ |
| Structured Extraction | ✅ | ✅ |
| Parallel Search | ✅ (3 engines) | ✅ (5 engines) |
| WebSocket Streaming | ✅ | ✅ |
| Batch Operations | ✅ (10/batch) | ✅ (100/batch) |
| Social Batch | ✅ (5/batch) | ✅ (500/batch) |
| Self-Learning | ✅ (basic) | ✅ (advanced) |
| AI Research | ❌ | ✅ |
| Advanced Healing | ❌ | ✅ |
| Custom Models | ❌ | ✅ |
| Commercial Use | ❌ | ✅ |
| White Label | ❌ | ✅ |
| Premium Support | ❌ | ✅ |
| Price | $0 forever | $499/mo |
API Examples
Search the Web
# Basic search
curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{"q": "python web scraping", "engine": "google", "num": 10}'
# Parallel search
curl "http://localhost:8000/search.json?q=AI+news¶llel=true&num_engines=3"
# Hybrid search with answer synthesis
curl -X POST http://localhost:8000/search \
-H "Content-Type: application/json" \
-d '{"q": "latest AI research", "hybrid": true, "answer": true}'
Scrape Any URL
# Scrape to markdown
curl -X POST http://localhost:8000/scrape \
-H "Content-Type: application/json" \
-d '{"url": "https://docs.python.org", "format": "markdown"}'
# Batch scrape
curl -X POST http://localhost:8000/scrape/batch \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com", "https://docs.python.org"]}'
WebSocket Streaming
// Real-time search results
const ws = new WebSocket('ws://localhost:8000/ws/search?query=AI+news');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data);
};
Social Media
# Scrape a Reddit post
curl -X POST http://localhost:8000/social \
-H "Content-Type: application/json" \
-d '{"url": "https://reddit.com/r/programming/comments/abc123"}'
# Search across platforms
curl -X POST http://localhost:8000/social/search \
-H "Content-Type: application/json" \
-d '{"query": "machine learning", "platform": "reddit", "limit": 10}'
AI Research
# Ask a research question
curl -X POST http://localhost:8000/ai/search \
-H "Content-Type: application/json" \
-d '{"query": "Compare React vs Vue", "max_sources": 5}'
Batch Operations
# Batch search
curl -X POST http://localhost:8000/batch/search \
-H "Content-Type: application/json" \
-d '{"queries": ["python", "javascript", "go"], "num_results": 5}'
MCP Integration
Works with any MCP-compatible client:
{
"mcpServers": {
"jiro": {
"command": "jiro",
"args": ["mcp"]
}
}
}
16 MCP Tools
| Tool | Tier | Description |
|---|---|---|
search |
Free | Search 9 engines |
scrape |
Free | Scrape URL to markdown |
smart_classify |
Free | Classify search intent |
compare_engines |
Free | Compare across engines |
list_engines |
Free | List all engines |
list_social_platforms |
Free | List social platforms |
monitor_status |
Free | Health metrics |
health_check |
Free | Quick health check |
cache_stats |
Free | Cache statistics |
ai_search |
Enterprise | AI research with citations |
search_hybrid |
Enterprise | Hybrid multi-signal search |
search_structured |
Enterprise | Structured data extraction |
social_scrape |
Enterprise | Scrape social media |
social_search |
Enterprise | Search social platforms |
social_batch |
Enterprise | Batch scrape URLs |
smart_search |
Enterprise | Intent-aware routing |
Monitoring & Observability
# Prometheus metrics
curl http://localhost:8000/metrics
# Health check
curl http://localhost:8000/health
# System status
jiro status
Pricing
Free — $0/forever
The most generous free tier in search APIs. No credit card required.
- 100 requests/minute
- 10,000 requests/day
- 9 search engines
- 12 social platforms
- Hybrid search & smart routing
- WebSocket streaming
- MCP integration
- Community support
Enterprise — $499/mo
Everything in Free, plus unlimited power.
- 1,000 requests/minute
- 1,000,000 requests/day
- AI-powered agentic research
- Custom LLM models
- White-label customization
- SOC2 compliance
- Premium support
- Commercial use license
Deploy
Docker
docker-compose up -d
Kubernetes
helm install jiro ./helm/jiro
Local
pip install jirosearch
jiro serve --host 0.0.0.0 --port 8000
Comparisons
vs SerpAPI
| Feature | Jiro | SerpAPI |
|---|---|---|
| Self-hosted | ✅ | ❌ |
| Free tier | 10K RPD | 100/mo |
| Social scraping | 12 platforms | ❌ |
| Hybrid search | ✅ | ❌ |
| WebSocket streaming | ✅ | ❌ |
| Official SDKs | Python, JS, Go | Python, JS |
| MCP integration | ✅ | ❌ |
| Price (paid) | $499/mo | $50/mo |
vs ScraperAPI
| Feature | Jiro | ScraperAPI |
|---|---|---|
| Search engines | 9 | ❌ |
| Social platforms | 12 | ❌ |
| AI research | ✅ | ❌ |
| Self-hosted | ✅ | ❌ |
| Free tier | 10K RPD | 5K/mo |
vs Bright Data
| Feature | Jiro | Bright Data |
|---|---|---|
| Price | $499/mo | $500+/mo |
| Self-hosted | ✅ | ❌ |
| Hybrid search | ✅ | ❌ |
| WebSocket streaming | ✅ | ❌ |
| MCP integration | ✅ | ❌ |
| AI research | ✅ | ❌ |
Architecture
jiro/
├── server/ FastAPI application
│ └── routers/ API endpoints (75+ routes)
├── search/ Search intelligence
│ ├── hybrid.py Hybrid search
│ ├── reranker.py Result reranking
│ └── multiquery.py Query expansion
├── scraping/ Web scraping
│ ├── engines.py 9 search engines
│ ├── client.py Stealth engine (TLS/JA3)
│ └── social/ 12 social platforms
├── ai/ AI/LLM integration
├── plugins/ Plugin system
├── monitoring.py Metrics & health checks
├── batch.py Batch operations
├── scheduler.py Scheduled searches
├── history.py Search history
├── export_import.py Data export/import
├── ratelimit.py Rate limiting & quotas
├── cache_advanced.py Advanced caching
├── stealth.py Anti-bot bypass
├── mcp.py MCP server (16 tools)
├── pro.py Tier system
├── licensing.py HMAC license tokens
├── db.py SQLite/PostgreSQL
└── dashboard.py Web UI
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run linter
ruff check jiro/
Community
- Website — Home
- GitHub — Source code
- Discord — Community chat
- Twitter — Updates
- Documentation — Guides & tutorials
License
MIT License — use freely, commercially, or privately.
Built with ❤️ by Blackvault Technology
Metadata
Release files for jirosearch 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jirosearch-0.3.0.tar.gz | 429.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jirosearch-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 859.6 kB
Release files / jirosearch-0.3.0.tar.gz
| Download URL | jirosearch-0.3.0.tar.gz |
|---|---|
| Size | 429.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57d012a6094851feff6035983217329291d518085a2b67bd6c67e3e8cf13012b
|
|
BLAKE2b-256 checksum How to use checksums |
e8f73b0650b1c899df38fab8fba457e3f2eef5cca6a20363460fde9a7fb990ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Release files / jirosearch-0.3.0-py3-none-any.whl
| Download URL | jirosearch-0.3.0-py3-none-any.whl |
|---|---|
| Size | 430.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8a7965402072d710030b77b884841ae6606ad98ae4522f8a8fbcf2446bf7625
|
|
BLAKE2b-256 checksum How to use checksums |
301b7ab0b268b4c1227e54df16819005921100f8ea94de78d56eef4e39b6bba9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|