From b6980775c57ef67c7708329611f3e1c4be6295a3 Mon Sep 17 00:00:00 2001 From: tenequm Date: Thu, 26 Mar 2026 22:59:16 +0000 Subject: [PATCH 1/2] feat: add Surf to service directory Unified pay-per-use research and inference API for AI agents at surf.cascade.fyi. 10 composite REST endpoints (Twitter, Reddit, Web, Inference) + MCP server. First-party MPP, no signup or API keys. --- public/icons/surf.svg | 1 + schemas/services.ts | 57 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 public/icons/surf.svg 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 e796d58e..61b88026 100644 --- a/schemas/services.ts +++ b/schemas/services.ts @@ -6280,4 +6280,61 @@ 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" }, + ], + }, ]; From 45b7bf643e34a8db79f6d7135d8ce14774c296f6 Mon Sep 17 00:00:00 2001 From: tenequm Date: Thu, 2 Apr 2026 17:52:41 +0100 Subject: [PATCH 2/2] style: biome format Surf service entry --- schemas/services.ts | 64 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/schemas/services.ts b/schemas/services.ts index 61b88026..5a2211b8 100644 --- a/schemas/services.ts +++ b/schemas/services.ts @@ -6267,7 +6267,10 @@ export const services: ServiceDef[] = [ categories: ["ai", "social"], integration: "first-party", tags: ["postcards", "roast", "github", "ai-art"], - docs: { homepage: "https://papercut.lol", llmsTxt: "https://papercut.lol/llms.txt" }, + docs: { + homepage: "https://papercut.lol", + llmsTxt: "https://papercut.lol/llms.txt", + }, realm: "papercut.lol", intent: "charge", payment: TEMPO_PAYMENT, @@ -6311,15 +6314,51 @@ export const services: ServiceDef[] = [ 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/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", @@ -6334,7 +6373,10 @@ export const services: ServiceDef[] = [ amountHint: "$0.001 - $25.00 per 1M tokens", intent: "session", }, - { route: "GET /api/v1/inference/v1/models", desc: "List available models" }, + { + route: "GET /api/v1/inference/v1/models", + desc: "List available models", + }, ], }, ];