JIRO — Search API & Web Scraping Platform
9 search engines. 12 social platforms. AI-powered. Self-hosted. Free forever.
Website · Documentation · Pricing · Blog · Changelog
What is JIRO?
JIRO is an open-source, self-hosted search API and web scraping platform that aggregates results from 9 search engines and 12 social platforms. It provides AI-powered search intelligence, hybrid ranking, and stealth web scraping — all running locally on your infrastructure.
Use cases:
- Search API for AI agents and LLMs
- Web scraping at scale with anti-bot bypass
- Social media monitoring across 12 platforms
- SERP data collection for SEO tools
- Real-time web intelligence feeds
- MCP server for Claude Desktop, Cursor, and other AI tools
Quick Start
# 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"}'
You're now searching across 9 engines with hybrid ranking, caching, and structured extraction — all running locally on your machine.
Cloud API (no server needed):
# Authenticate via browser
jiro auth login
# Search with cloud API
curl -X POST https://searchjiro.vercel.app/api/proxy/search \
-H "Authorization: Bearer jsk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{"q": "latest AI research", "engine": "google"}'
Search Engines
| Engine | Type | Notes |
|---|---|---|
| Web | Full SERP data | |
| Bing | Web | Rich snippets |
| Brave | Web | Privacy-focused |
| DuckDuckGo | Web | Instant answers |
| YouTube | Video | Transcripts, metadata |
| Amazon | Shopping | Product data |
| eBay | Shopping | Listings, prices |
| Yandex | Web | Russian market |
| Baidu | Web | Chinese market |
Social Platforms
Reddit · Twitter/X · YouTube · LinkedIn · TikTok · Instagram · Facebook · Threads · Hacker News · Bluesky · Telegram · Pinterest
Official SDKs
Python
pip install jiro-sdk
from jiro_sdk import JiroClient
client = JiroClient(api_key="your-key")
results = client.search("python web scraping")
content = client.scrape("https://example.com")
answer = client.ai_ask("What is Python?")
results = client.search_parallel("AI news", num_engines=3)
job = client.batch_search(["python", "javascript", "go"])
JavaScript / TypeScript
npm install jiro-sdk
import { JiroClient } from 'jiro-sdk';
const client = new JiroClient({ apiKey: 'your-key' });
const results = await client.search('python web scraping');
const content = await client.scrape('https://example.com');
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
go get github.com/DevAnimecx/jiro/sdk/go
import "github.com/DevAnimecx/jiro/sdk/go"
client := jiro.NewClient(jiro.WithAPIKey("your-key"))
results, _ := client.Search("python web scraping", nil)
content, _ := client.Scrape("https://example.com", nil)
answer, _ := client.AiAsk("What is Python?", nil)
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-...
# Auth (Cloud)
jiro auth login # Device code flow
jiro auth whoami # Show account + credits
jiro auth status # Test API key
# License (Self-Hosted)
jiro license activate JIRO-PRO-A1B2-C3D4-E5F6
jiro license info
jiro license deactivate
# System
jiro status
jiro doctor
jiro serve --port 8000
Pricing
Cloud (Managed)
| Free | Pro | Enterprise | |
|---|---|---|---|
| Price | ₹0/mo | ₹999/mo | Custom |
| Credits | 1,000 | 25,000 | Unlimited |
| Rate Limit | 5 RPM | 120 RPM | 1,000 RPM |
| Search Engines | 3 | All 9 | All + Custom |
| AI Search | — | ✓ | ✓ |
| MCP & Webhooks | — | ✓ | ✓ |
| Support | Community | Priority | Dedicated |
Self-Hosted (One-Time)
| Free | Pro | Enterprise | |
|---|---|---|---|
| Price | ₹0 | ₹4,999 | ₹14,999 |
| RPM | 100 | 500 | 1,000 |
| RPD | 10K | 100K | 1M |
| AI Search | — | ✓ | ✓ |
| Commercial Use | — | ✓ | ✓ |
| Custom Models | — | — | ✓ |
| White Label | — | — | ✓ |
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 |
Pro | AI research with citations |
search_hybrid |
Pro | Hybrid multi-signal search |
search_structured |
Pro | Structured data extraction |
social_scrape |
Pro | Scrape social media |
social_search |
Pro | Search social platforms |
social_batch |
Pro | Batch scrape URLs |
smart_search |
Pro | Intent-aware routing |
Features
Search Intelligence
- Hybrid Search — keyword + semantic + freshness signals
- Multi-Query — parallel query expansion
- Answer Synthesis — extractive answers from results
- Search Filters — domain, time range, category
- Highlights — query-aware snippet extraction
- Parallel Search — multi-engine concurrent search
Web Scraping
- Stealth Engine — TLS/JA3 fingerprint rotation
- Anti-Bot Bypass — Cloudflare, DataDome, PerimeterX
- JavaScript Rendering — full browser automation
- Structured Extraction — JSON schema-based data extraction
- Social Scraping — 12 platforms with normalized output
AI-Powered
- Smart Search — intent-aware auto-routing
- AI Research — agentic search with citations
- Intent Classification — 16 intent types
- Self-Learning — adapts to search patterns
- Advanced Healing — automatic retry with fallback
Enterprise Ready
- Rate Limiting — sliding window with tiers
- Usage Quotas — monthly limits per tier
- Plugin System — custom engines & scrapers
- Advanced Caching — LRU/LFU with analytics
- Batch Operations — concurrent search & scrape
- Monitoring — Prometheus metrics, health checks
- WebSocket Streaming — real-time results
- MCP Integration — 16 tools for AI clients
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
Cloud
# No server needed — use cloud API
jiro auth login
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) | ₹999/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 | ₹999/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
├── secure_store.py Encrypted credentials
├── device_auth.py RFC 8628 device code flow
├── cloud_auth.py Cloud authentication
├── db.py SQLite/PostgreSQL
└── dashboard.py Web UI
Community
- Website — Home
- GitHub — Source code
- Documentation — Guides & tutorials
- Pricing — Plans & tiers
- Blog — Articles & tutorials
- Changelog — Release notes
- Discord — Community chat
- Twitter — Updates
License
MIT License — use freely, commercially, or privately.
Built with ❤️ by Blackvault Technology
Metadata
Release files for jirosearch 0.3.2
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.2.tar.gz | 438.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jirosearch-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 877.6 kB
Release files / jirosearch-0.3.2.tar.gz
| Download URL | jirosearch-0.3.2.tar.gz |
|---|---|
| Size | 438.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e3f144dd670ef9be422cb8a0e2fe4fab35d91aed63d8b836caeaa2f8ffe0eddf
|
|
BLAKE2b-256 checksum How to use checksums |
ce77cdc01dfc654967e9586492a527e7540cceee78b8d703b94cecf3c9fee8a3
|
| 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.2-py3-none-any.whl
| Download URL | jirosearch-0.3.2-py3-none-any.whl |
|---|---|
| Size | 438.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e2bc6fd6e109b2e0e08464c2fc2544a4a0b66d9a1375e52fcb4aa69f5b73398d
|
|
BLAKE2b-256 checksum How to use checksums |
f138d42f84910be69b7a33ffb64245803234707fdd09fe7c930701cb31e0d187
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|