{"skill":{"slug":"unsearch","displayName":"UnSearch","summary":"Search the web, scrape content, and conduct deep research using the UnSearch API. Use when the user needs real-time web search results, content extraction from URLs, fact verification, or multi-source research for AI agents, RAG pipelines, or LLM applications.","description":"---\nname: unsearch\nversion: 1.0.0\ndescription: Search the web, scrape content, and conduct deep research using the UnSearch API. Use when the user needs real-time web search results, content extraction from URLs, fact verification, or multi-source research for AI agents, RAG pipelines, or LLM applications.\nmetadata: {\"openclaw\":{\"emoji\":\"🔍\",\"homepage\":\"https://unsearch.dev\",\"primaryEnv\":\"UNSEARCH_API_KEY\",\"requires\":{\"env\":[\"UNSEARCH_API_KEY\"]}}}\n---\n\n# UnSearch Web Search Skill\n\nSearch the web, extract content, verify facts, and conduct deep research using the UnSearch API—an open-source Tavily/Exa alternative.\n\n## Quick Start\n\nSet your API key:\n```bash\nexport UNSEARCH_API_KEY=\"uns_your_api_key\"\n```\n\nGet a free API key at https://unsearch.dev (5,000 queries/month free).\n\n## API Endpoints\n\n**Base URL:** `https://api.unsearch.dev/api/v1`\n\nAll requests require header: `X-API-Key: $UNSEARCH_API_KEY`\n\n---\n\n## 1. Web Search\n\nSearch the web with optional content scraping.\n\n```bash\ncurl -X POST \"https://api.unsearch.dev/api/v1/search\" \\\n  -H \"X-API-Key: $UNSEARCH_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"your search query\",\n    \"engines\": [\"google\", \"bing\", \"duckduckgo\"],\n    \"max_results\": 10,\n    \"scrape_content\": true\n  }'\n```\n\n### Key Parameters\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `query` | string | required | Search query (1-500 chars) |\n| `engines` | string[] | [\"google\",\"bing\",\"duckduckgo\"] | Search engines |\n| `max_results` | integer | 10 | Results to return (1-100) |\n| `scrape_content` | boolean | true | Extract full page content |\n| `language` | string | \"en\" | ISO 639-1 language code |\n\n### Response\n\n```json\n{\n  \"results\": [\n    {\n      \"title\": \"Page Title\",\n      \"url\": \"https://example.com\",\n      \"snippet\": \"Search result snippet...\",\n      \"scraped_content\": {\n        \"text\": \"Full page content...\",\n        \"word_count\": 2500\n      }\n    }\n  ],\n  \"processing_time_ms\": 1500\n}\n```\n\n---\n\n## 2. Agent Search (Tavily-Compatible)\n\nAI-optimized search with optional answer generation.\n\n```bash\ncurl -X POST \"https://api.unsearch.dev/api/v1/agent/search\" \\\n  -H \"X-API-Key: $UNSEARCH_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"What is machine learning?\",\n    \"include_answer\": true,\n    \"max_results\": 5,\n    \"search_depth\": \"basic\"\n  }'\n```\n\n### Key Parameters\n\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `query` | string | required | Search query |\n| `include_answer` | bool/string | false | Generate AI answer (`true`, `\"basic\"`, `\"advanced\"`, `\"production\"`) |\n| `search_depth` | string | \"basic\" | `basic`, `advanced`, `fast` |\n| `max_results` | integer | 5 | Results (1-20) |\n| `include_raw_content` | boolean | false | Include full page content |\n| `include_domains` | string[] | null | Only search these domains |\n| `exclude_domains` | string[] | null | Exclude these domains |\n\n### Response\n\n```json\n{\n  \"query\": \"What is machine learning?\",\n  \"answer\": \"Machine learning is a subset of AI...\",\n  \"results\": [\n    {\n      \"title\": \"Machine Learning - Wikipedia\",\n      \"url\": \"https://en.wikipedia.org/wiki/Machine_learning\",\n      \"content\": \"Machine learning is a branch of AI...\",\n      \"score\": 0.95\n    }\n  ],\n  \"response_time\": 1.25\n}\n```\n\n---\n\n## 3. Content Extraction\n\nExtract content from specific URLs.\n\n```bash\ncurl -X POST \"https://api.unsearch.dev/api/v1/agent/extract\" \\\n  -H \"X-API-Key: $UNSEARCH_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"urls\": [\"https://example.com/article\"],\n    \"extract_depth\": \"basic\"\n  }'\n```\n\n### Response\n\n```json\n{\n  \"results\": [\n    {\n      \"url\": \"https://example.com/article\",\n      \"raw_content\": \"Full article text...\",\n      \"failed\": false\n    }\n  ]\n}\n```\n\n---\n\n## 4. Deep Research\n\nMulti-source research with AI synthesis.\n\n```bash\ncurl -X POST \"https://api.unsearch.dev/api/v1/agent/research\" \\\n  -H \"X-API-Key: $UNSEARCH_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"Impact of AI on healthcare\",\n    \"depth\": \"deep\",\n    \"max_sources\": 15,\n    \"include_analysis\": true\n  }'\n```\n\n### Depth Levels\n\n| Depth | Sources | Use Case |\n|-------|---------|----------|\n| `quick` | 3-5 | Fast overview |\n| `standard` | 5-10 | Balanced research |\n| `deep` | 10-20 | Thorough analysis |\n| `comprehensive` | 20-30 | Expert-level |\n\n### Response\n\n```json\n{\n  \"executive_summary\": \"AI is transforming healthcare...\",\n  \"key_findings\": [\"AI diagnostics show 95% accuracy...\"],\n  \"sources\": [...],\n  \"model_used\": \"qwq-32b\"\n}\n```\n\n---\n\n## 5. Fact Verification\n\nVerify claims against multiple sources.\n\n```bash\ncurl -X POST \"https://api.unsearch.dev/api/v1/verify/claim\" \\\n  -H \"X-API-Key: $UNSEARCH_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"claim\": \"GPT-4 was released in March 2023\",\n    \"depth\": \"thorough\"\n  }'\n```\n\n### Response\n\n```json\n{\n  \"verdict\": \"true\",\n  \"confidence\": 95,\n  \"summary\": \"GPT-4 was released March 14, 2023.\",\n  \"supporting_evidence\": [...],\n  \"sources_checked\": 12\n}\n```\n\nVerdict values: `true`, `false`, `partially_true`, `misleading`, `unverifiable`\n\n---\n\n## Python Examples\n\n```python\nimport httpx\nimport os\n\nAPI_KEY = os.environ[\"UNSEARCH_API_KEY\"]\nBASE_URL = \"https://api.unsearch.dev/api/v1\"\n\nasync def search(query: str, scrape: bool = False):\n    async with httpx.AsyncClient() as client:\n        response = await client.post(\n            f\"{BASE_URL}/search\",\n            headers={\"X-API-Key\": API_KEY},\n            json={\n                \"query\": query,\n                \"max_results\": 10,\n                \"scrape_content\": scrape\n            }\n        )\n        return response.json()\n\nasync def agent_search(query: str, include_answer: bool = True):\n    async with httpx.AsyncClient() as client:\n        response = await client.post(\n            f\"{BASE_URL}/agent/search\",\n            headers={\"X-API-Key\": API_KEY},\n            json={\n                \"query\": query,\n                \"include_answer\": include_answer,\n                \"max_results\": 5\n            }\n        )\n        return response.json()\n\nasync def extract_urls(urls: list[str]):\n    async with httpx.AsyncClient() as client:\n        response = await client.post(\n            f\"{BASE_URL}/agent/extract\",\n            headers={\"X-API-Key\": API_KEY},\n            json={\"urls\": urls}\n        )\n        return response.json()\n```\n\n---\n\n## JavaScript Examples\n\n```javascript\nconst API_KEY = process.env.UNSEARCH_API_KEY;\nconst BASE_URL = \"https://api.unsearch.dev/api/v1\";\n\nasync function search(query, scrapeContent = false) {\n  const response = await fetch(`${BASE_URL}/search`, {\n    method: \"POST\",\n    headers: {\n      \"X-API-Key\": API_KEY,\n      \"Content-Type\": \"application/json\"\n    },\n    body: JSON.stringify({\n      query,\n      max_results: 10,\n      scrape_content: scrapeContent\n    })\n  });\n  return response.json();\n}\n\nasync function agentSearch(query, includeAnswer = true) {\n  const response = await fetch(`${BASE_URL}/agent/search`, {\n    method: \"POST\",\n    headers: {\n      \"X-API-Key\": API_KEY,\n      \"Content-Type\": \"application/json\"\n    },\n    body: JSON.stringify({\n      query,\n      include_answer: includeAnswer,\n      max_results: 5\n    })\n  });\n  return response.json();\n}\n```\n\n---\n\n## Rate Limits\n\n| Plan | Queries/Month | Rate Limit |\n|------|---------------|------------|\n| Free | 5,000 | 10/min |\n| Pro | 25,000 | 60/min |\n| Growth | 100,000 | 200/min |\n| Scale | 500,000 | 1,000/min |\n\nRate limit headers in response:\n- `X-RateLimit-Remaining`: Requests left\n- `X-RateLimit-Reset`: Reset timestamp\n\n---\n\n## Privacy Mode\n\nFor sensitive queries, enable zero-retention:\n\n```bash\ncurl -X POST \"https://api.unsearch.dev/api/v1/search\" \\\n  -H \"X-API-Key: $UNSEARCH_API_KEY\" \\\n  -H \"X-Zero-Retention: true\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"sensitive query\"}'\n```\n\n---\n\n## Error Handling\n\n| Code | Description |\n|------|-------------|\n| 401 | Invalid API key |\n| 429 | Rate limited (check `Retry-After` header) |\n| 422 | Validation error |\n| 500 | Server error |\n\n---\n\n## Additional Resources\n\n- **Documentation:** https://docs.unsearch.dev\n- **API Reference:** https://docs.unsearch.dev/api\n- **Self-hosting:** https://github.com/unsearch-org/unsearch\n- **Get API Key:** https://unsearch.dev\n","topics":["Search The Web","Web Search","Scrape"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":1363,"installsAllTime":51,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1770846548785,"updatedAt":1778487906275},"latestVersion":{"version":"1.0.0","createdAt":1770846548785,"changelog":"Initial release: Open-source search API for AI agents with web search, content extraction, deep research, and fact verification","license":null},"metadata":{"setup":[{"key":"UNSEARCH_API_KEY","required":true}],"os":null,"systems":null},"owner":{"handle":"rakesh1002","userId":"s179n0sb3c8q41gskvjrfq4y15884ykh","displayName":"Rakesh1002","image":"https://avatars.githubusercontent.com/u/15137233?v=4"},"moderation":null}