# Flowstack SDK > The backend SDK for AI SaaS apps: auth, workspaces, agents, multi-tenant data — one install, secure by default. This is the machine-readable reference for v0.3.3. Full corpus: [https://flowstack.fun/llms-full.txt](https://flowstack.fun/llms-full.txt) · OpenAPI: [https://flowstack.fun/openapi.json](https://flowstack.fun/openapi.json) · Registry JSON: [https://flowstack.fun/api/registry.json](https://flowstack.fun/api/registry.json) Semantic graph (aggregated schema.org @graph): [https://flowstack.fun/graph.jsonld](https://flowstack.fun/graph.jsonld) Semantic search index (precomputed embeddings, all-MiniLM-L6-v2 / 384-dim / cosine): [https://flowstack.fun/search-index.json](https://flowstack.fun/search-index.json) — embed your query with the same model and rank by dot product. Agent map (29 agents across 19 Casino sites + reachable endpoints): [https://flowstack.fun/agents-map.json](https://flowstack.fun/agents-map.json) · human view: [https://flowstack.fun/docs/agents](https://flowstack.fun/docs/agents) ## Built Apps The generated-site pattern: provider, auth flow, and data operations for apps built on Flowstack. - [FlowstackProvider](https://flowstack.fun/docs/FlowstackProvider): The root provider that wraps a built app and supplies backend config (baseUrl, tenantId, mode, appScope) to all Flowstack hooks. - [useFlowstack](https://flowstack.fun/docs/useFlowstack): The hook built apps use to read auth state — isAuthenticated, isInitialized, and credentials — instead of useAuth(). - [useMessages](https://flowstack.fun/docs/useMessages): Read and send private messages within one DM thread in a built app. - [useSites](https://flowstack.fun/docs/useSites): Manage published sites — list, create, stage files, publish to CDN, and delete. - [useThreads](https://flowstack.fun/docs/useThreads): List a built-app user's private message threads, with unread counts and consent control. - [activateDomain](https://flowstack.fun/docs/activateDomain): Client function: activate a domain once its ACM cert is issued (CloudFront goes live ~5–15 min after). - [clearStagedFiles](https://flowstack.fun/docs/clearStagedFiles): Client function: clear all staged files for a site (the .staging marker is preserved). - [connectDomain](https://flowstack.fun/docs/connectDomain): Client function: start connecting a custom domain — requests an ACM cert and returns the DNS records to add. - [disconnectDomain](https://flowstack.fun/docs/disconnectDomain): Client function: disconnect a custom domain from a site. - [dmPairKey](https://flowstack.fun/docs/dmPairKey): Pure helper: deterministic, order-independent thread key for a pair of user keys. - [getAppSource](https://flowstack.fun/docs/getAppSource): Client function: fetch a version's source files as a { path: content } map (live version by default). - [getDataPlan](https://flowstack.fun/docs/getDataPlan): Client function: get the saved mongoCollections schema (data plan) for a site. - [getDomainStatus](https://flowstack.fun/docs/getDomainStatus): Client function: poll a custom domain's validation/activation status. - [listDomains](https://flowstack.fun/docs/listDomains): Client function: list the custom domains connected to a site and their status. - [listMessages](https://flowstack.fun/docs/listMessages): Client function: list messages in the caller's thread with a counterpart. ACL'd server-side. - [listStagedFiles](https://flowstack.fun/docs/listStagedFiles): Client function: list the files currently staged for a site. - [listThreads](https://flowstack.fun/docs/listThreads): Client function: list the caller's DM threads (counterpart key, last message, unread count). - [markMessageRead](https://flowstack.fun/docs/markMessageRead): Client function: mark a received DM as read (recipient only). - [openThread](https://flowstack.fun/docs/openThread): Client function: record the caller's consent to open a DM thread with another user. - [purchaseDomain](https://flowstack.fun/docs/purchaseDomain): Client function: buy a domain through Casino — returns a Stripe Checkout URL; registration + site auto-connect fire from the payment webhook (P0-163). - [renameSite](https://flowstack.fun/docs/renameSite): Client function: rename a site (display name in the manifest + dashboard metadata). - [searchDomains](https://flowstack.fun/docs/searchDomains): Client function: check domain availability + Casino retail pricing across TLDs (P0-163). - [sendMessage](https://flowstack.fun/docs/sendMessage): Client function: send a private message. 403 unless the thread is mutually open. - [setDataPlan](https://flowstack.fun/docs/setDataPlan): Client function: merge collection schemas into the site's data plan (PUT-with-merge). - [stageFiles](https://flowstack.fun/docs/stageFiles): Client function: stage multiple files in one call (batch form of addSiteFile). - [CustomDomainRecord](https://flowstack.fun/docs/CustomDomainRecord): Type: a connected custom domain and its lifecycle status. - [DmMessage](https://flowstack.fun/docs/DmMessage): A single private message within a DM thread. - [DmThread](https://flowstack.fun/docs/DmThread): A private message thread between the caller and one counterpart. - [DomainSearchResult](https://flowstack.fun/docs/DomainSearchResult): One TLD's availability + Casino retail price from searchDomains (P0-163). - [PurchaseDomainRequest](https://flowstack.fun/docs/PurchaseDomainRequest): Request body for purchaseDomain: name + TLD + registrant contact + auto-renew/privacy/auto-connect options (P0-163). - [RegistrantContact](https://flowstack.fun/docs/RegistrantContact): WHOIS registrant contact for a domain purchase — registrar-validated formats (P0-163). ## Authentication Login, sessions, brokered login, and route guards. - [useAuth](https://flowstack.fun/docs/useAuth): Read and mutate Casino-platform auth state (login, register, Google sign-in, logout, token refresh). - [useAuthGuard](https://flowstack.fun/docs/useAuthGuard): Programmatic route protection that reports whether access is allowed and where to redirect. - [AuthGuard](https://flowstack.fun/docs/AuthGuard): Wrapper that renders children only when authenticated — showing a login fallback, or transparently issuing a guest session for opted-in built apps. - [BrokeredLoginButton](https://flowstack.fun/docs/BrokeredLoginButton): The only authentication method for built apps — a button that opens Casino's auth popup where Privy runs and posts a scoped JWT back to the app. ## Data MongoDB-backed collections, public submissions, datasets, and queries. - [Agent-Driven Data Models — Reason → Write → Read](https://flowstack.fun/docs/reason-write-read): The core pattern for using an agent as a worker: the app reads context and passes it in the prompt, the agent reasons and writes a structured document, and the app reads the result back via useCollection. - [Two-layer data model — shared vs per-user](https://flowstack.fun/docs/two-layer-data-model): How useCollection and the agent's data tools resolve a collection to one of two namespaces — a physically isolated per-user database or a single world-readable shared pool — via the layer option. - [form-write-direct](https://flowstack.fun/docs/form-write-direct): Save form submissions and simple CRUD deterministically — no LLM, no tokens, no streaming - [library-import-analyze](https://flowstack.fun/docs/library-import-analyze): Import a workspace library item (dataset, report, document, visualization) into the app's agent and analyze it - [per-user-store](https://flowstack.fun/docs/per-user-store): Give each signed-in user their own private data (notes, entries, history) isolated from every other user - [scheduled-agent-report](https://flowstack.fun/docs/scheduled-agent-report): Run an agent prompt on a cron schedule and surface its output in the app (daily digests, weekly reports) - [shared-pool](https://flowstack.fun/docs/shared-pool): Share one pool of data across all users of the app (leaderboards, feeds, catalogs), readable even before sign-in - [useCollection](https://flowstack.fun/docs/useCollection): Direct MongoDB CRUD for built-app data — the primary, reactive data hook for tables, forms, cards, and persistence. - [useCollectionExplorer](https://flowstack.fun/docs/useCollectionExplorer): Browse, query, export, and delete a specific MongoDB collection. - [useDataOverview](https://flowstack.fun/docs/useDataOverview): Get a unified summary of all user-owned data. - [useDatasets](https://flowstack.fun/docs/useDatasets): List, upload, download, and delete datasets, with reactive loading and error state. - [useDataSources](https://flowstack.fun/docs/useDataSources): Manage external data source connections — create, test, delete, and list. - [usePublicCollection](https://flowstack.fun/docs/usePublicCollection): Anonymous, no-auth public collection reads and inserts for leaderboards, guestbooks, comment threads, and voting. - [useQuery](https://flowstack.fun/docs/useQuery): Run a single one-shot query from a natural-language prompt without streaming. - [useReports](https://flowstack.fun/docs/useReports): List generated reports with reactive loading and error state. - [useUserCollections](https://flowstack.fun/docs/useUserCollections): List all MongoDB collections the user owns. - [useVisualizations](https://flowstack.fun/docs/useVisualizations): List generated visualizations with reactive loading and error state. ## AI & Agents Streaming agent queries, personas, tool access, and the agent catalog. - [Agent Catalog](https://flowstack.fun/docs/agent-catalog): There are no pre-built ecosystem agents — agents are per-app; you create them with casino_create_agent via the Casino MCP and target them by name. - [Agent Templates & Factory](https://flowstack.fun/docs/agent-templates-and-factory): Pre-configured agent templates (data-science, marketing, support) plus a dynamic Agent Factory that routes user intent to the best registered agent. - [Targeting Custom Agents (Built Apps)](https://flowstack.fun/docs/targeting-custom-agents): Built apps target an agent they create via `casino_create_agent` by passing its registered name as `persona` — a target is required for app-scoped users or they get a 403. - [Tool-level Access Control (P0-117)](https://flowstack.fun/docs/tool-access-control): Pass an explicit tools list to casino_create_agent for per-tool access control, which overrides category-level capabilities grants. - [Available Tool Categories](https://flowstack.fun/docs/tool-categories): The nine capability categories you declare on a registered agent (and, advisorily, on `useAgent`), each granting a group of related tools. - [useAgent](https://flowstack.fun/docs/useAgent): Run AI agent queries with streaming, tool calls, interrupts, status updates, and automatic conversation persistence. - [useAgents](https://flowstack.fun/docs/useAgents): Discover the agents available to the current site, including their name, description, tools, trigger phrases, and intended use. - [useConversations](https://flowstack.fun/docs/useConversations): Fetch the user's past Casino builder conversations. - [useIntentAgent](https://flowstack.fun/docs/useIntentAgent): Create and manage agents dynamically based on user intent. - [useModels](https://flowstack.fun/docs/useModels): ML model management — list registered models with their framework, metrics, and creation metadata. - [useOllamaDetection](https://flowstack.fun/docs/useOllamaDetection): Detect a local Ollama instance and list its available models. - [useProviderCredentials](https://flowstack.fun/docs/useProviderCredentials): Manage LLM provider credentials (BYOK and Ollama). - [useToolInvocation](https://flowstack.fun/docs/useToolInvocation): Low-level hook for directly invoking an agent tool. ## Workspaces & Users Multi-tenant workspaces and user management. - [useSiteVersions](https://flowstack.fun/docs/useSiteVersions): Work with the version history of a published site. - [useUserManagement](https://flowstack.fun/docs/useUserManagement): Admin hook to list, search, paginate, and mutate managed users plus view user stats and activity. - [useWorkspace](https://flowstack.fun/docs/useWorkspace): List, create, and select workspaces for the current user. ## Components Pre-built pages, forms, and rendering components. - [AuthPage](https://flowstack.fun/docs/AuthPage): Complete pre-built auth page with login/register tabs and optional Google sign-in. - [ChatInterface](https://flowstack.fun/docs/ChatInterface): Embeddable chat interface bound to an agent template. - [ChatPage](https://flowstack.fun/docs/ChatPage): Full pre-built chat interface page. - [CreateWorkspaceModal](https://flowstack.fun/docs/CreateWorkspaceModal): Modal dialog for creating a new workspace. - [DashboardLayout](https://flowstack.fun/docs/DashboardLayout): Pre-built dashboard layout with a sidebar, header, and content area. - [DatasetUploader](https://flowstack.fun/docs/DatasetUploader): File-upload component for ingesting datasets such as CSV, XLSX, and Parquet files. - [LoginForm](https://flowstack.fun/docs/LoginForm): Pre-built login form with success/error callbacks and an optional register link. - [MarkdownRenderer](https://flowstack.fun/docs/MarkdownRenderer): Drop-in component for rendering agent responses with full GFM support and automatic mid-stream table repair. - [MessageList](https://flowstack.fun/docs/MessageList): Renders a list of chat messages, with optional streaming state. - [RegisterForm](https://flowstack.fun/docs/RegisterForm): Pre-built registration form with a success callback and an optional login link. - [WorkspaceSelector](https://flowstack.fun/docs/WorkspaceSelector): Pre-built control for selecting the active workspace. ## Wallet The wallet module: balances, transactions, and payment components. - [Wallet Module](https://flowstack.fun/docs/wallet-overview): Separate `flowstack-sdk/wallet` entry point for the two token systems (AGENT build credits, INFER query credits): reading balances, accepting payments, and accessing wallet addresses. - [paywall-app](https://flowstack.fun/docs/paywall-app): Charge users of the app for access (unlock fee or metered queries) using the platform paywall - [useAgentBalance](https://flowstack.fun/docs/useAgentBalance): Poll the connected wallet's AGENT token balance so built apps can check whether the end-user can afford an operation. - [useAppAccess](https://flowstack.fun/docs/useAppAccess): Check whether the authenticated end-user has access to a monetized built app, and open Stripe Checkout to unlock it. Use directly only for custom gate UI — `AppPaywall` wraps this with a default overlay. - [useBuyInfer](https://flowstack.fun/docs/useBuyInfer): Open the fiat on-ramp widget to buy INFER tokens and track purchase status. - [useDeposit](https://flowstack.fun/docs/useDeposit): Deposit INFER tokens from the connected wallet and track the resulting transaction hash. - [useInferBalance](https://flowstack.fun/docs/useInferBalance): Read the connected wallet's INFER token balance, including available balance and query credits. - [useWalletAuth](https://flowstack.fun/docs/useWalletAuth): Read wallet connection state and trigger Privy/SIWE login or logout from the `flowstack-sdk/wallet` entry point. - [AgentBalanceBadge](https://flowstack.fun/docs/AgentBalanceBadge): Display badge showing the connected wallet's AGENT token balance. - [AppPaywall](https://flowstack.fun/docs/AppPaywall): Access gate for monetized built apps: renders children when the end-user has access, otherwise shows a paywall overlay with the unlock CTA. The default way to charge users of an app. - [BuyInferModal](https://flowstack.fun/docs/BuyInferModal): Modal for buying INFER tokens. - [InferBalanceBadge](https://flowstack.fun/docs/InferBalanceBadge): Display badge showing the connected wallet's INFER token balance. - [LoginButton](https://flowstack.fun/docs/LoginButton): Privy/SIWE login button for the Casino platform only — built apps use `BrokeredLoginButton` instead. - [NeedsAgent](https://flowstack.fun/docs/NeedsAgent): Gate a feature behind a minimum AGENT balance, showing a deep-linked "Get AGENT →" CTA when the user has insufficient funds. - [PaymentRequired](https://flowstack.fun/docs/PaymentRequired): Gate content behind payment, rendering children only once the requirement is met. - [cancelAppSubscription](https://flowstack.fun/docs/cancelAppSubscription): Client function: cancel an app subscription at period end (P0-162). - [getBuilderEarnings](https://flowstack.fun/docs/getBuilderEarnings): Client function: aggregate + per-app builder earnings across both rails (Stripe cents + on-chain AGENT). - [getConnectStatus](https://flowstack.fun/docs/getConnectStatus): Client function: live Stripe Connect account status for the builder (refreshes cached flags). - [getMonetization](https://flowstack.fun/docs/getMonetization): Client function: read a site's monetization (paywall) configuration. - [requestBuilderPayout](https://flowstack.fun/docs/requestBuilderPayout): Client function: withdraw the builder's available fiat balance to their connected Stripe account. - [setMonetization](https://flowstack.fun/docs/setMonetization): Client function: set a site's monetization (paywall) configuration. - [startConnectOnboarding](https://flowstack.fun/docs/startConnectOnboarding): Client function: create (or reuse) the builder's Stripe Connect Express account and get an onboarding link. - [subscribeToApp](https://flowstack.fun/docs/subscribeToApp): Client function: open Stripe Checkout for an app's monthly subscription plan (P0-162). - [AppSubscriptionStatus](https://flowstack.fun/docs/AppSubscriptionStatus): The end-user's subscription state for one app: status and billing period — status-only since 0.3.3/P0-167 (P0-162). - [BuilderEarnings](https://flowstack.fun/docs/BuilderEarnings): Type: the builder's full earnings picture — both rails, self-query summary, per-app breakdown. - [ConnectStatus](https://flowstack.fun/docs/ConnectStatus): Type: the builder's Stripe Connect account state. - [Monetization](https://flowstack.fun/docs/Monetization): Type: a built app's monetization (paywall) config — Stripe and/or AGENT-token payment. - [MonetizationSubscriptionConfig](https://flowstack.fun/docs/MonetizationSubscriptionConfig): Monthly subscription plan config: $X/month for full access on the builder's Stripe Connect rails — pure access revenue since 0.3.3/P0-167 (P0-162). ## Integrations & Automations Service connections, integrations, and automations. - [call-http-integration](https://flowstack.fun/docs/call-http-integration): Use a registered HTTP API integration (notion, slack, linear, or owner-registered) from a built app via the agent - [call-stripe-api](https://flowstack.fun/docs/call-stripe-api): Operate on the OWNER's Stripe account (revenue dashboards, customer lookups, invoice ops) from a built app - [connect-google-services](https://flowstack.fun/docs/connect-google-services): Let each user connect Google and use the sub-services their scopes actually grant (analytics, ads, drive, youtube) - [connect-oauth-service](https://flowstack.fun/docs/connect-oauth-service): Let each user connect an OAuth service (github, reddit, twitter, strava, google) and work with their data in the app - [connect-strava](https://flowstack.fun/docs/connect-strava): Let each user connect their Strava account and work with their activities in the app - [register-custom-api](https://flowstack.fun/docs/register-custom-api): Let the app OWNER register any HTTPS REST API as an integration the agent can call as a tool - [useAutomations](https://flowstack.fun/docs/useAutomations): Schedule agent prompts on a cron schedule (via AWS EventBridge) with silent, email, webhook, or file delivery. - [useConnections](https://flowstack.fun/docs/useConnections): Manage a user's external service connections (Google, Reddit, Strava, Twitter/X) so the AI agent can access their data. - [useIntegrations](https://flowstack.fun/docs/useIntegrations): Register any HTTPS REST API as a named integration the agent can call as a tool, with credentials encrypted at rest. ## Utilities API client, streaming helpers, and cache utilities. - [useFlowstackStatus](https://flowstack.fun/docs/useFlowstackStatus): Monitor the backend connection status, latency, and connectivity with optional polling. - [API Client](https://flowstack.fun/docs/apiClient): Lower-level promise-based API functions for direct backend access when hooks don't provide enough control. - [CACHE_TTL](https://flowstack.fun/docs/CACHE_TTL): Default time-to-live values for the SDK's per-resource client-side cache. - [deleteCached](https://flowstack.fun/docs/deleteCached): Remove a value from the generic per-resource client-side cache. - [flowstackFetch](https://flowstack.fun/docs/flowstackFetch): The low-level fetch escape hatch used by every API client function for authenticated requests to the Flowstack backend. - [getCached](https://flowstack.fun/docs/getCached): Read a value from the generic per-resource client-side cache. - [getCachedDatasets](https://flowstack.fun/docs/getCachedDatasets): Read the cached list of datasets from the client-side cache. - [getCachedReports](https://flowstack.fun/docs/getCachedReports): Read the cached list of reports from the client-side cache. - [getCachedSites](https://flowstack.fun/docs/getCachedSites): Read the cached list of sites from the client-side cache. - [getCachedVisualizations](https://flowstack.fun/docs/getCachedVisualizations): Read the cached list of visualizations from the client-side cache. - [getCachedWorkspaces](https://flowstack.fun/docs/getCachedWorkspaces): Read the cached list of workspaces from the client-side cache. - [invalidateAllUserCache](https://flowstack.fun/docs/invalidateAllUserCache): Clear the entire client-side cache for the current user. - [invalidateDatasetsCache](https://flowstack.fun/docs/invalidateDatasetsCache): Invalidate the cached list of datasets. - [invalidateReportsCache](https://flowstack.fun/docs/invalidateReportsCache): Invalidate the cached list of reports. - [invalidateSitesCache](https://flowstack.fun/docs/invalidateSitesCache): Invalidate the cached list of sites. - [invalidateVisualizationsCache](https://flowstack.fun/docs/invalidateVisualizationsCache): Invalidate the cached list of visualizations. - [invalidateWorkspaceArtifacts](https://flowstack.fun/docs/invalidateWorkspaceArtifacts): Invalidate all cached artifacts (datasets, visualizations, reports, etc.) for a workspace. - [invalidateWorkspacesCache](https://flowstack.fun/docs/invalidateWorkspacesCache): Invalidate the cached list of workspaces. - [parseSSELine](https://flowstack.fun/docs/parseSSELine): Parse a single Server-Sent Events line into a typed StreamEvent. - [parseSSEStream](https://flowstack.fun/docs/parseSSEStream): Async generator that yields typed StreamEvents from an agent SSE Response. - [processSSEStream](https://flowstack.fun/docs/processSSEStream): High-level helper that drives an agent SSE Response through callbacks. - [setCached](https://flowstack.fun/docs/setCached): Write a value into the generic per-resource client-side cache with TTL. - [setCachedDatasets](https://flowstack.fun/docs/setCachedDatasets): Write the list of datasets into the client-side cache. - [setCachedReports](https://flowstack.fun/docs/setCachedReports): Write the list of reports into the client-side cache. - [setCachedSites](https://flowstack.fun/docs/setCachedSites): Write the list of sites into the client-side cache. - [setCachedVisualizations](https://flowstack.fun/docs/setCachedVisualizations): Write the list of visualizations into the client-side cache. - [setCachedWorkspaces](https://flowstack.fun/docs/setCachedWorkspaces): Write the list of workspaces into the client-side cache. ## REST & SSE API Call Flowstack over HTTP directly: 288 paths / 337 operations across 50 areas (REST API v2.0.0 — versioned independently of the SDK v0.3.3 above). Full machine-readable contract (OpenAPI 3.1): [https://flowstack.fun/openapi.json](https://flowstack.fun/openapi.json). Human reference: [https://flowstack.fun/docs/rest-api](https://flowstack.fun/docs/rest-api). - **Library** (29): `GET /library/code`, `DELETE /library/code/{name}`, `GET /library/code/{name}`, `GET /library/conversations`, `DELETE /library/conversations/{conversation_id}`, `GET /library/conversations/{conversation_id}`, … - **Sites** (27): `GET /api/v1/sites`, `POST /api/v1/sites`, `DELETE /api/v1/sites/{site_id}`, `GET /api/v1/sites/{site_id}`, `PATCH /api/v1/sites/{site_id}`, `GET /api/v1/sites/{site_id}/agents`, … - **Billing** (19): `GET /billing/agent/balance`, `POST /billing/agent/sponsor-gas`, `GET /billing/credits/purchased`, `GET /billing/credits/status`, `GET /billing/infer/balance`, `GET /billing/plans`, … - **Admin** (15): `GET /admin/keys`, `POST /admin/keys/{key_id}/revoke`, `GET /admin/mongo-capacity`, `POST /admin/query`, `GET /admin/requests`, `POST /admin/requests/{request_id}/approve`, … - **Provider Credentials** (15): `GET /api/v1/user/provider-credentials`, `POST /api/v1/user/provider-credentials`, `DELETE /api/v1/user/provider-credentials/{credential_id}`, `GET /api/v1/user/provider-credentials/{credential_id}`, `PUT /api/v1/user/provider-credentials/{credential_id}`, `POST /api/v1/user/provider-credentials/{credential_id}/set-default`, … - **Workspaces** (14): `GET /api/v1/workspaces`, `DELETE /api/v1/workspaces/{workspace_id}/pii-allowlist`, `GET /api/v1/workspaces/{workspace_id}/pii-allowlist`, `POST /api/v1/workspaces/{workspace_id}/pii-allowlist`, `GET /api/v1/workspaces/{workspace_id}/pii-settings`, `PATCH /api/v1/workspaces/{workspace_id}/pii-settings`, … - **Authentication** (12): `POST /auth/auth/token/refresh`, `POST /auth/google/login`, `POST /auth/login`, `POST /auth/register`, `POST /auth/resend-verification`, `POST /auth/user/login`, … - **Automations** (11): `GET /automations`, `POST /automations`, `GET /automations/_meta/limits`, `DELETE /automations/{automation_id}`, `GET /automations/{automation_id}`, `PUT /automations/{automation_id}`, … - **Files** (10): `GET /api/v1/user/artifacts`, `GET /api/v1/user/documents`, `DELETE /data/cleanup/{session_id}`, `GET /data/download/{session_id}/{file_type}/{filename}`, `GET /data/files/{session_id}`, `POST /data/sync/{session_id}`, … - **Agents** (9): `GET /agents/registry`, `POST /agents/route`, `GET /agents/spend`, `GET /library/agents`, `DELETE /library/agents/{name}`, `GET /library/agents/{name}`, … - **Social OAuth** (9): `GET /auth/reddit/callback`, `GET /auth/reddit/start`, `GET /auth/reddit/status`, `GET /auth/strava/callback`, `GET /auth/strava/start`, `GET /auth/strava/status`, … - **Streaming** (9): `GET /agents`, `POST /prewarm`, `POST /stream`, `POST /stream-simple`, `POST /stream/interrupt`, `POST /stream/pii-preview`, … - **Conversations** (8): `GET /conversations`, `DELETE /conversations/{session_id}`, `GET /conversations/{session_id}/messages`, `POST /conversations/{session_id}/title`, `POST /conversations/backfill-titles`, `GET /conversations/context`, … - **Digest** (8): `GET /api/v1/digest/feed-catalog`, `POST /api/v1/digest/generate`, `GET /api/v1/digest/interests`, `POST /api/v1/digest/interests`, `GET /api/v1/digest/rss-feeds`, `POST /api/v1/digest/rss-feeds`, … - **MCP** (8): `GET /mcp`, `POST /mcp`, `GET /mcp/`, `POST /mcp/`, `POST /mcp/messages`, `GET /mcp/oauth/authorization-server`, … - **Admin - Providers** (7): `GET /admin/provider-credentials`, `POST /admin/provider-credentials`, `DELETE /admin/provider-credentials/{credential_id}`, `GET /admin/provider-credentials/am-i-admin`, `GET /admin/provider-credentials/existing`, `GET /admin/provider-credentials/live-model-map`, … - **Data Sources** (7): `GET /data-sources`, `POST /data-sources`, `DELETE /data-sources/{source_id}`, `GET /data-sources/{source_id}`, `PUT /data-sources/{source_id}`, `POST /data-sources/{source_id}/test`, … - **GitHub** (7): `POST /api/v1/github/import`, `GET /api/v1/github/repos`, `POST /api/v1/github/webhook`, `GET /auth/github/callback`, `POST /auth/github/disconnect`, `GET /auth/github/start`, … - **App Billing** (6): `POST /billing/app-access/checkout`, `GET /billing/app-access/monetization/{site_id}`, `POST /billing/app-access/monetization/{site_id}`, `GET /billing/app-access/status`, `POST /billing/app-access/subscribe`, `POST /billing/app-access/subscription/cancel` - **Health Data** (6): `GET /api/v1/health-data/analysis/{analysis_id}`, `GET /api/v1/health-data/follow-up`, `POST /api/v1/health-data/ingest`, `POST /api/v1/health-data/register-phone`, `GET /api/v1/health-data/report-preview`, `POST /api/v1/health-data/test-mms` - **Registrar** (6): `POST /api/v1/registrar/{domain}/toggle-renewal`, `POST /api/v1/registrar/{domain}/transfer-out`, `GET /api/v1/registrar/check`, `GET /api/v1/registrar/my-domains`, `GET /api/v1/registrar/prices`, `POST /api/v1/registrar/purchase` - **User Data** (6): `GET /api/v1/user/collections`, `DELETE /api/v1/user/collections/{collection}`, `GET /api/v1/user/collections/{collection}/documents`, `POST /api/v1/user/collections/{collection}/export`, `GET /api/v1/user/collections/{collection}/schema`, `GET /api/v1/user/data-overview` - **Wallet Auth** (6): `POST /auth/guest`, `POST /auth/privy-refresh`, `POST /auth/privy-verify`, `POST /auth/wallet/link`, `GET /auth/wallet/nonce`, `POST /auth/wallet/verify` - **App Messaging** (5): `GET /apps/{app_scope}/messages`, `POST /apps/{app_scope}/messages`, `POST /apps/{app_scope}/messages/{message_id}/read`, `GET /apps/{app_scope}/threads`, `POST /apps/{app_scope}/threads/{pair_key}/consent` - **Custom Domains** (5): `GET /api/v1/apps/{site_id}/domains`, `POST /api/v1/apps/{site_id}/domains`, `DELETE /api/v1/apps/{site_id}/domains/{domain}`, `POST /api/v1/apps/{site_id}/domains/{domain}/activate`, `GET /api/v1/apps/{site_id}/domains/{domain}/status` - **Google OAuth** (5): `GET /auth/google/callback`, `POST /auth/google/revoke`, `GET /auth/google/start`, `GET /auth/google/status`, `GET /auth/google/test` - **Integrations** (5): `GET /integrations`, `POST /integrations`, `DELETE /integrations/{integration_id}`, `GET /integrations/{integration_id}`, `PUT /integrations/{integration_id}` - **Scripts** (5): `GET /scripts`, `GET /scripts/{script_name}`, `GET /scripts/{script_name}/download`, `GET /scripts/detailed`, `GET /tenants/{tenant_id}/scripts` - **Sessions** (5): `PUT /session/{session_id}/activity`, `GET /session/{session_id}/lock-status`, `POST /session/claim`, `GET /session/current`, `POST /session/release` - **API Keys** (4): `GET /tenants/{tenant_id}/api-keys`, `POST /tenants/{tenant_id}/api-keys`, `DELETE /tenants/{tenant_id}/api-keys/{key_id}`, `GET /tenants/{tenant_id}/api-keys/stats` - **Builder Payouts** (4): `GET /billing/builder/earnings`, `POST /billing/builder/payout`, `POST /billing/connect/onboard`, `GET /billing/connect/status` - **Collections** (4): `POST /collections/delete`, `POST /collections/insert`, `GET /collections/query`, `POST /collections/update` - **Datasets** (4): `GET /datasets`, `GET /datasets/{dataset_name}/download`, `GET /session/{session_id}/visualizations`, `GET /visualizations` - **Identity** (4): `POST /auth/identity/link`, `GET /auth/identity/links`, `DELETE /auth/identity/links/{auth_method_user_id}`, `GET /auth/identity/orphaned-data` - **Observability** (4): `GET /observability/billing-metrics`, `GET /observability/session/{session_id}`, `GET /observability/tools-analytics`, `GET /observability/workspace/{workspace_id}` - **Tools** (4): `GET /tools`, `POST /tools/execute`, `GET /tools/schemas`, `GET /tools/summary` - **Models** (3): `GET /models`, `GET /models/{model_name}`, `GET /models/{model_name}/download` - **Reports** (3): `GET /reports`, `GET /reports/{report_id}`, `GET /reports/{report_id}/download` - **User Preferences** (3): `GET /user/model-preference`, `PUT /user/model-preference`, `GET /user/model-preference/options` - **Visualizations** (3): `GET /tenants/{tenant_id}/datasets`, `GET /tenants/{tenant_id}/visualizations`, `GET /tenants/{tenant_id}/workspaces/{workspace_id}/visualizations` - **Health** (2): `GET /health`, `GET /health/detailed` - **Mono-Sage** (2): `GET /mono/health`, `POST /mono/stream` - **Public Collections** (2): `GET /public/collections/{collection}/documents`, `POST /public/collections/{collection}/insert` - **Capabilities** (1): `GET /capabilities` - **Other** (1): `GET /` - **Public Analytics** (1): `GET /analytics/public/agents` - **Recipes** (1): `GET /recipes.json` - **Short URLs** (1): `GET /s/{short_id}` - **Tool Invoke** (1): `POST /tool/invoke` - **Webhooks** (1): `POST /webhooks/twilio/inbound`