← back to Ventura Claw
+/api/public/services — 18-row JSON catalog (mirrors /api/public/connectors), per-service id/category/name/partners/price_free/price_paid/unit; nginx route added on venturaclaw.com
23e98874bdee186792677e0745df456b6622fbe1 · 2026-05-07 09:12:14 -0700 · Steve
Files touched
Diff
commit 23e98874bdee186792677e0745df456b6622fbe1
Author: Steve <steve@designerwallcoverings.com>
Date: Thu May 7 09:12:14 2026 -0700
+/api/public/services — 18-row JSON catalog (mirrors /api/public/connectors), per-service id/category/name/partners/price_free/price_paid/unit; nginx route added on venturaclaw.com
---
server/server.js | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/server/server.js b/server/server.js
index 0edf84f..5d7bab3 100644
--- a/server/server.js
+++ b/server/server.js
@@ -689,6 +689,42 @@ app.get("/api/public/connectors", (req, res) => {
})) });
});
+// Public services hub catalog — 18 ready-to-run orchestrations on top of the connectors.
+// Mirrors /api/public/connectors. Use for SEO syndication, partner listings, future affiliate feed.
+const SERVICES_CATALOG = [
+ { id: "business-bank-account", category: "banking", name: "Business bank account", partners: ["Mercury","Relay","Bluevine"], price_free: "Recommendation", price_paid: 39, unit: "flat" },
+ { id: "stripe-square-setup", category: "banking", name: "Stripe / Square setup", partners: ["Stripe Connect","Square"], price_free: "DIY", price_paid: 49, unit: "flat" },
+ { id: "payroll-setup", category: "banking", name: "Payroll setup", partners: ["Gusto","Justworks"], price_free: "DIY", price_paid: 79, unit: "flat" },
+ { id: "business-credit-card", category: "banking", name: "Business credit card", partners: ["BREX","Mercury IO","Capital One"], price_free: "Guidance", price_paid: null, unit: "self-serve" },
+ { id: "accounting-setup", category: "banking", name: "Accounting setup", partners: ["QuickBooks","Wave","Xero"], price_free: "DIY", price_paid: 59, unit: "flat" },
+ { id: "quarterly-estimates", category: "tax-help", name: "Quarterly estimates", partners: ["IRS Direct Pay"], price_free: "Calc + reminders", price_paid: null, unit: "cpa-referral" },
+ { id: "schedule-c-walkthrough", category: "tax-help", name: "Schedule C walkthrough", partners: [], price_free: "Walkthrough", price_paid: null, unit: "cpa-referral" },
+ { id: "1099-nec-filing", category: "tax-help", name: "1099-NEC filing", partners: ["Track1099","TaxBandits"], price_free: "DIY", price_paid: 9, unit: "per-form" },
+ { id: "cpa-referral", category: "tax-help", name: "CPA referral", partners: [], price_free: "Intro", price_paid: null, unit: "free-referral" },
+ { id: "general-liability", category: "insurance", name: "General liability", partners: ["Embroker","Coverwallet","Next"], price_free: "Quote routing", price_paid: null, unit: "broker-quote" },
+ { id: "professional-liability", category: "insurance", name: "Professional liability (E&O)", partners: ["Embroker","Coverwallet","Next"], price_free: "Quote routing", price_paid: null, unit: "broker-quote" },
+ { id: "cyber-liability", category: "insurance", name: "Cyber liability", partners: ["Embroker","Coalition"], price_free: "Quote routing", price_paid: null, unit: "broker-quote" },
+ { id: "bop", category: "insurance", name: "Business Owner's Policy", partners: ["Embroker","Hiscox"], price_free: "Quote routing", price_paid: null, unit: "broker-quote" },
+ { id: "domain-email-setup", category: "identity", name: "Domain + email", partners: ["Porkbun","Namecheap","Cloudflare"], price_free: "Walkthrough", price_paid: 39, unit: "flat-plus-reg-fee" },
+ { id: "virtual-mailbox", category: "identity", name: "Virtual mailbox", partners: ["iPostal1"], price_free: "Recommendation", price_paid: null, unit: "provider-monthly" },
+ { id: "operating-agreement", category: "documents", name: "Operating agreement", partners: ["template-engine"], price_free: "Template", price_paid: 49, unit: "flat" },
+ { id: "privacy-tos-generator", category: "documents", name: "Privacy policy + ToS", partners: ["template-engine"], price_free: "Generate", price_paid: 39, unit: "flat" },
+ { id: "contract-templates", category: "documents", name: "Contract templates", partners: ["template-engine"], price_free: "Library", price_paid: 29, unit: "flat" },
+];
+app.get("/api/public/services", (req, res) => {
+ res.json({
+ count: SERVICES_CATALOG.length,
+ services: SERVICES_CATALOG,
+ notes: {
+ operating_model: "API-orchestration only — no government-portal filing",
+ currency: "USD",
+ docs_url: `https://${DOMAIN}/services`,
+ flow_url: `https://${DOMAIN}/how-it-works`,
+ legal_notice_url: `https://${DOMAIN}/legal-notice`,
+ },
+ });
+});
+
app.post("/api/demo-classify", demoLimiter, express.json({ limit: "2kb" }), async (req, res) => {
const { message } = req.body || {};
if (typeof message !== "string" || message.length < 3 || message.length > 200) {
← a261c64 /privacy + /terms post-pivot refresh: bump 'Last updated' to
·
back to Ventura Claw
·
/docs: add curl example for /api/public/services (18-row ser b2b64af →