Scout
An agent explores a site, captures every API call, and maps the endpoints with inferred schemas.
// Connect from Claude, Cursor, or any MCP client{ "mcpServers": { "unsurf": { "type": "streamable-http", "url": "https://unsurf-api.coey.dev/mcp" } }}# Scout any site → get a typed OpenAPI speccurl -X POST https://unsurf-api.coey.dev/tools/scout \ -H "Content-Type: application/json" \ -d '{ "url": "https://any-website.com", "task": "find all API endpoints" }'
# Returns: siteId, endpoints[], openApiSpec, pathIdimport { scout, worker, heal } from "unsurf";
// Scout → capture every API callconst result = await scout({ url, task });
// Worker → replay without a browserconst data = await worker({ pathId: result.pathId });
// Heal → auto-fix when sites changeconst fixed = await heal({ pathId, error });Scout
An agent explores a site, captures every API call, and maps the endpoints with inferred schemas.
Worker
Replay captured API calls directly — no browser needed. Milliseconds, not seconds.
Heal
Site changed? Path broken? Heal re-scouts, diffs, patches, and retries automatically.
MCP Server
Connect from Claude Desktop, Cursor, or any MCP client. Three tools, one endpoint.
NPM Package
npm install unsurf — use the tools, services, and types in your own project.
Self-hosted
Deploy to your own Cloudflare account. Your data stays yours. One command.
API Directory
Community-discovered registry of unsurfed APIs. Scout once, share forever. Browse at /directory.