diff --git a/public/icons/surf.svg b/public/icons/surf.svg new file mode 100644 index 00000000..cc0f3225 --- /dev/null +++ b/public/icons/surf.svg @@ -0,0 +1 @@ +S \ No newline at end of file diff --git a/schemas/services.ts b/schemas/services.ts index 6e1223cb..bb3b8667 100644 --- a/schemas/services.ts +++ b/schemas/services.ts @@ -6315,4 +6315,100 @@ export const services: ServiceDef[] = [ }, ], }, + + // ── Surf ───────────────────────────────────────────────────────────── + { + id: "surf", + name: "Surf", + url: "https://surf.cascade.fyi", + serviceUrl: "https://surf.cascade.fyi", + description: + "Pay-per-use research and inference API for AI agents. Twitter, Reddit, web data, and LLM inference - no signup, no API keys.", + categories: ["ai", "data", "search", "social", "web"], + integration: "first-party", + tags: [ + "twitter", + "reddit", + "web", + "crawl", + "search", + "inference", + "llm", + "mcp", + "agents", + ], + docs: { + homepage: "https://surf.cascade.fyi", + apiReference: "https://surf.cascade.fyi", + }, + provider: { name: "Cascade", url: "https://surf.cascade.fyi" }, + realm: "surf.cascade.fyi", + intent: "charge", + payment: TEMPO_PAYMENT, + endpoints: [ + { + route: "POST /api/v1/twitter/search", + desc: "Search tweets with advanced operators", + amount: "5000", + }, + { + route: "POST /api/v1/twitter/tweet", + desc: "Fetch tweet with full thread context", + amount: "5000", + }, + { + route: "POST /api/v1/twitter/user", + desc: "Fetch user profile with recent tweets", + amount: "5000", + }, + { + route: "POST /api/v1/reddit/search", + desc: "Search Reddit posts", + amount: "5000", + }, + { + route: "POST /api/v1/reddit/post", + desc: "Fetch post with comments", + amount: "5000", + }, + { + route: "POST /api/v1/reddit/subreddit", + desc: "Subreddit info and top posts", + amount: "5000", + }, + { + route: "POST /api/v1/reddit/user", + desc: "User profile with recent activity", + amount: "5000", + }, + { + route: "POST /api/v1/web/search", + desc: "AI-powered web search", + amount: "10000", + }, + { + route: "POST /api/v1/web/crawl", + desc: "Crawl URL to markdown or HTML", + amount: "2000", + }, + { + route: "POST /api/v1/inference/v1/chat/completions", + desc: "Chat completions with 15 models - price varies by model and tokens", + dynamic: true, + amountHint: "$0.001 - $25.00 per 1M tokens", + intent: "session", + }, + { + route: "POST /api/v1/inference/v1/messages", + desc: "Anthropic Messages API - price varies by model and tokens", + dynamic: true, + amountHint: "$0.001 - $25.00 per 1M tokens", + intent: "session", + }, + { + route: "GET /api/v1/inference/v1/models", + desc: "List available models", + }, + ], + }, ];