# Saasco Docs > Saasco is an all-in-one marketing stack for SaaS: analytics, CRM, email, support and ads behind one browser SDK (saasco-sdk) and a REST API. Coding agents installing the SDK: read https://www.saasco.com/docs/sdk/agents.md. Connecting the Saasco MCP: read https://www.saasco.com/docs/mcp.mdx. App setup pages are linked below. Every other page as plain text: https://www.saasco.com/llms-full.txt ## Docs - [Quick start](https://www.saasco.com/docs/api): Authenticate with a project API key and make your first REST request. - [Set up Benchmarks](https://www.saasco.com/docs/benchmarks/setup): What an agent needs to map a product's events onto benchmark funnel steps. - [Draft changelog entries](https://www.saasco.com/docs/changelog/entries): What an agent needs to draft changelog updates from this repo's commits. - [Set up Changelog](https://www.saasco.com/docs/changelog/setup): What an agent needs to create the changelog record through the MCP. - [Load an audience](https://www.saasco.com/docs/crm/audience): What an agent needs to upsert real contacts and create lists through the MCP. - [Set up CRM](https://www.saasco.com/docs/crm/setup): What an agent needs so new signups show up as contacts. - [Set up Disputes](https://www.saasco.com/docs/disputes/setup): What an agent needs to connect Stripe dispute events to a Saasco project. - [Add DNS records](https://www.saasco.com/docs/domains/dns): How an agent walks someone through adding Saasco DNS records at their DNS host. - [Draft a campaign](https://www.saasco.com/docs/email-marketing/campaign): What an agent needs to draft an email campaign through the MCP. - [Set up Email Marketing](https://www.saasco.com/docs/email-marketing/setup): What an agent needs to verify a sending domain for Email Marketing through the MCP. - [Draft feedback posts](https://www.saasco.com/docs/feedback/posts): What an agent needs to seed a Feedback board from real planned work. - [Set up Feedback](https://www.saasco.com/docs/feedback/setup): What an agent needs to give a Feedback board its topics and visibility. - [Getting started](https://www.saasco.com/docs/getting-started): Install the SDK, identify your users, and connect your coding agent to your Saasco project. - [Overview](https://www.saasco.com/docs): The three ways into Saasco, via the browser SDK, the MCP server, or the REST API. - [Populate the knowledge base](https://www.saasco.com/docs/knowledge/agents): What an agent needs to fill a Saasco help center with collections and articles from this product's codebase. - [Set up Knowledge](https://www.saasco.com/docs/knowledge/setup): What an agent needs to create a help center and its public site through the MCP. - [Authorization](https://www.saasco.com/docs/mcp/connect): What the consent screen asks, scoping a URL to one project, and what to do when a client won't authorize. - [How it works](https://www.saasco.com/docs/mcp/how-it-works): What a connection covers, what an agent can reach, and the limits around it. - [Quick start](https://www.saasco.com/docs/mcp): Connect Cursor, Claude, Codex or another agent to your Saasco account. - [Tool reference](https://www.saasco.com/docs/mcp/tools): Every tool the Saasco MCP server exposes, what it does, and whether it reads or writes. - [Setup for coding agents](https://www.saasco.com/docs/sdk/agents): Everything a coding agent needs to install saasco-sdk, identify users, track sign-up events and check it worked, on one page. - [Configuration](https://www.saasco.com/docs/sdk/configuration): Constructor options, script-tag attributes, debug switches and ad pixels. - [Identify](https://www.saasco.com/docs/sdk/identify): Tie anonymous activity to a CRM contact, before or after they have an account. - [Quick start](https://www.saasco.com/docs/sdk): Install saasco-sdk, send your first page view, and see it land in the dashboard. - [Properties](https://www.saasco.com/docs/sdk/properties): The $-prefixed keys Saasco fills in on contacts and events, and the reserved names you set yourself. - [Tracking](https://www.saasco.com/docs/sdk/tracking): Page views, custom events, and sending events from your server. - [Widgets](https://www.saasco.com/docs/sdk/widgets): The AI support widget and social-proof notifications, both from the same install. - [Create short links](https://www.saasco.com/docs/shortlinks/links): What an agent needs to create short links for a product's real public URLs. - [Set up Shortlinks](https://www.saasco.com/docs/shortlinks/setup): What an agent needs to verify a hostname that serves short links. - [Set up Social Proof](https://www.saasco.com/docs/social-proof/setup): What an agent needs to install the SDK and turn Social Proof notifications on. - [Social Proof templates](https://www.saasco.com/docs/social-proof/templates): What an agent needs to create notification templates from the product's real events. - [Write the widget copy](https://www.saasco.com/docs/support/copy): What an agent needs to set the Support widget's greeting and suggested questions. - [Set up Support](https://www.saasco.com/docs/support/setup): What an agent needs to make the Support widget or support email able to receive conversations. - [What is Saasco?](https://www.saasco.com/docs/what-is-saasco): An all-in-one marketing stack for SaaS companies. Connect once and only pay for what you use. - [Set up a workflow](https://www.saasco.com/docs/workflows/setup): What an agent needs to build an inactive workflow from the product's real events. - [Current Users](https://www.saasco.com/docs/users/current-users): GET /api/v2/projects/{projectId}/analytics/current-users - [Delete User](https://www.saasco.com/docs/users/delete-user): DELETE /api/v2/projects/{projectId}/analytics/user/{distinctId} - [Get User](https://www.saasco.com/docs/users/get-user): GET /api/v2/projects/{projectId}/analytics/user/{distinctId} - [Get Funnel Steps](https://www.saasco.com/docs/funnels/get-funnel-steps): POST /api/v2/projects/{projectId}/analytics/funnel-steps - [Get Funnel Steps By Day](https://www.saasco.com/docs/funnels/get-funnel-steps-by-day): POST /api/v2/projects/{projectId}/analytics/funnel-steps-by-day - [Get Usage](https://www.saasco.com/docs/usage/get-usage): GET /api/v2/projects/{projectId}/analytics/usage - [Latest Events](https://www.saasco.com/docs/events/latest-events): GET /api/v2/projects/{projectId}/analytics/latest-events - [Latest Identifies](https://www.saasco.com/docs/users/latest-identifies): POST /api/v2/projects/{projectId}/analytics/latest-identifies - [List Users](https://www.saasco.com/docs/users/list-users): GET /api/v2/projects/{projectId}/analytics/users - [Query Events](https://www.saasco.com/docs/events/query-events): POST /api/v2/projects/{projectId}/analytics/query-events - [Query Sessions](https://www.saasco.com/docs/sessions/query-sessions): POST /api/v2/projects/{projectId}/analytics/query-sessions - [User Events](https://www.saasco.com/docs/events/user-events): GET /api/v2/projects/{projectId}/analytics/user-events - [Get Benchmark Preferences](https://www.saasco.com/docs/benchmarks/get-benchmark-preferences): GET /api/v2/projects/{projectId}/benchmarks/preferences - [Set Benchmark Preferences](https://www.saasco.com/docs/benchmarks/set-benchmark-preferences): PUT /api/v2/projects/{projectId}/benchmarks/preferences - [Archive Changelog Entry](https://www.saasco.com/docs/changelog/archive-changelog-entry): POST /api/v2/projects/{projectId}/changelog/entries/{changelogEntryId}/archive - [Create Changelog](https://www.saasco.com/docs/changelog/create-changelog): POST /api/v2/projects/{projectId}/changelog - [Get Changelog](https://www.saasco.com/docs/changelog/get-changelog): GET /api/v2/projects/{projectId}/changelog - [Update Changelog](https://www.saasco.com/docs/changelog/update-changelog): PUT /api/v2/projects/{projectId}/changelog - [Create Changelog Entry](https://www.saasco.com/docs/changelog/create-changelog-entry): POST /api/v2/projects/{projectId}/changelog/entries - [List Changelog Entries](https://www.saasco.com/docs/changelog/list-changelog-entries): GET /api/v2/projects/{projectId}/changelog/entries - [Create Changelog Entry Tag](https://www.saasco.com/docs/changelog/create-changelog-entry-tag): POST /api/v2/projects/{projectId}/changelog/entries/{changelogEntryId}/tags - [Delete Changelog](https://www.saasco.com/docs/changelog/delete-changelog): DELETE /api/v2/projects/{projectId}/changelog/{changelogId} - [Get Changelog Entry](https://www.saasco.com/docs/changelog/get-changelog-entry): GET /api/v2/projects/{projectId}/changelog/entries/{changelogEntryId} - [Update Changelog Entry](https://www.saasco.com/docs/changelog/update-changelog-entry): PUT /api/v2/projects/{projectId}/changelog/entries/{changelogEntryId} - [Get Public Changelog Entry](https://www.saasco.com/docs/changelog/get-public-changelog-entry): GET /api/v2/changelog/{projectId}/entries/{slug} - [List Public Changelog Entries](https://www.saasco.com/docs/changelog/list-public-changelog-entries): GET /api/v2/changelog/{projectId}/entries - [Subscribe Changelog](https://www.saasco.com/docs/changelog/subscribe-changelog): POST /api/v2/changelog/{projectId}/subscribe - [Remove Changelog Entry Tag](https://www.saasco.com/docs/changelog/remove-changelog-entry-tag): DELETE /api/v2/projects/{projectId}/changelog/entries/{changelogEntryId}/tags/{tagId} - [Upsert Contact](https://www.saasco.com/docs/contacts/upsert-contact): POST /api/v2/projects/{projectId}/crm/contacts - [Get Contact](https://www.saasco.com/docs/contacts/get-contact): GET /api/v2/projects/{projectId}/crm/contacts/{distinctId} - [List Related](https://www.saasco.com/docs/contacts/list-related): GET /api/v2/projects/{projectId}/crm/contacts/{distinctId}/related - [Get Properties](https://www.saasco.com/docs/contacts/get-properties): POST /api/v2/projects/{projectId}/crm/contacts/properties - [Get By Email](https://www.saasco.com/docs/contacts/get-by-email): GET /api/v2/projects/{projectId}/crm/contacts/by-email/{email} - [List Contacts](https://www.saasco.com/docs/contacts/list-contacts): POST /api/v2/projects/{projectId}/crm/contacts/query - [Update Contact](https://www.saasco.com/docs/contacts/update-contact): PATCH /api/v2/projects/{projectId}/crm/contacts/{contactDistinctId} - [Delete Contact](https://www.saasco.com/docs/contacts/delete-contact): DELETE /api/v2/projects/{projectId}/crm/contacts/{contactDistinctId} - [List Attributes](https://www.saasco.com/docs/attributes/list-attributes): GET /api/v2/projects/{projectId}/crm/attributes - [Delete Attribute](https://www.saasco.com/docs/attributes/delete-attribute): DELETE /api/v2/projects/{projectId}/crm/attributes/{attributeDistinctId} - [Delete Attributes](https://www.saasco.com/docs/attributes/delete-attributes): POST /api/v2/projects/{projectId}/crm/attributes/bulk-delete - [List Types](https://www.saasco.com/docs/notifications/list-types): GET /api/v2/projects/{projectId}/crm/notification-types - [Create Type](https://www.saasco.com/docs/notifications/create-type): POST /api/v2/projects/{projectId}/crm/notification-types - [Update Type](https://www.saasco.com/docs/notifications/update-type): PUT /api/v2/projects/{projectId}/crm/notification-types/{notificationTypeId} - [Delete Type](https://www.saasco.com/docs/notifications/delete-type): DELETE /api/v2/projects/{projectId}/crm/notification-types/{notificationTypeId} - [Subscribe Status](https://www.saasco.com/docs/notifications/subscribe-status): GET /api/v2/projects/{projectId}/crm/contact-notification-preferences/subscribe-status - [List Preferences](https://www.saasco.com/docs/notifications/list-preferences): GET /api/v2/projects/{projectId}/crm/contact-notification-preferences - [Create List](https://www.saasco.com/docs/lists/create-list): POST /api/v2/projects/{projectId}/crm/contact-lists - [List All](https://www.saasco.com/docs/lists/list-all): GET /api/v2/projects/{projectId}/crm/contact-lists - [Get List](https://www.saasco.com/docs/lists/get-list): GET /api/v2/projects/{projectId}/crm/contact-lists/{contactListId} - [Update List](https://www.saasco.com/docs/lists/update-list): PUT /api/v2/projects/{projectId}/crm/contact-lists/{contactListId} - [Delete List](https://www.saasco.com/docs/lists/delete-list): DELETE /api/v2/projects/{projectId}/crm/contact-lists/{contactListId} - [Add to List](https://www.saasco.com/docs/list-members/add-to-list): POST /api/v2/projects/{projectId}/crm/contact-lists/{contactListId}/members - [List Members](https://www.saasco.com/docs/list-members/list-members): GET /api/v2/projects/{projectId}/crm/contact-lists/{contactListId}/members - [Remove from List](https://www.saasco.com/docs/list-members/remove-from-list): DELETE /api/v2/projects/{projectId}/crm/contact-lists/{contactListId}/members - [Get List Member](https://www.saasco.com/docs/list-members/get-list-member): GET /api/v2/projects/{projectId}/crm/contact-lists/{contactListId}/members/{contactListMemberId} - [Query List Members](https://www.saasco.com/docs/list-members/query-list-members): POST /api/v2/projects/{projectId}/crm/contact-lists/{contactListId}/members/query - [Get Contact Lists](https://www.saasco.com/docs/list-members/get-contact-lists): GET /api/v2/projects/{projectId}/crm/contacts/{contactDistinctId}/contact-lists - [Count Subscribed](https://www.saasco.com/docs/contacts/count-subscribed): POST /api/v2/projects/{projectId}/crm/count-subscribed-contacts - [Migrate Distinct Id](https://www.saasco.com/docs/contacts/migrate-distinct-id): POST /api/v2/projects/{projectId}/crm/contacts/migrate-distinct-id - [Get Clean Settings](https://www.saasco.com/docs/clean/get-clean-settings): GET /api/v2/projects/{projectId}/crm/clean/settings - [Update Clean Settings](https://www.saasco.com/docs/clean/update-clean-settings): PUT /api/v2/projects/{projectId}/crm/clean/settings - [Create Custom Link](https://www.saasco.com/docs/custom-links/create-custom-link): POST /api/v2/projects/{projectId}/crm/custom-contact-links - [List Custom Links](https://www.saasco.com/docs/custom-links/list-custom-links): GET /api/v2/projects/{projectId}/crm/custom-contact-links - [Get Custom Link](https://www.saasco.com/docs/custom-links/get-custom-link): GET /api/v2/projects/{projectId}/crm/custom-contact-links/{customContactLinkId} - [Update Custom Link](https://www.saasco.com/docs/custom-links/update-custom-link): PUT /api/v2/projects/{projectId}/crm/custom-contact-links/{customContactLinkId} - [Delete Custom Link](https://www.saasco.com/docs/custom-links/delete-custom-link): DELETE /api/v2/projects/{projectId}/crm/custom-contact-links/{customContactLinkId} - [Delete Dispute Webhook](https://www.saasco.com/docs/disputes/delete-dispute-webhook): DELETE /api/v2/projects/{projectId}/dispute-webhook - [Provision Dispute Webhook](https://www.saasco.com/docs/disputes/provision-dispute-webhook): POST /api/v2/projects/{projectId}/dispute-webhook - [Get Dispute](https://www.saasco.com/docs/disputes/get-dispute): GET /api/v2/projects/{projectId}/disputes/{disputeId} - [Get Dispute Settings](https://www.saasco.com/docs/disputes/get-dispute-settings): GET /api/v2/projects/{projectId}/dispute-settings - [Update Dispute Settings](https://www.saasco.com/docs/disputes/update-dispute-settings): PUT /api/v2/projects/{projectId}/dispute-settings - [List Disputes](https://www.saasco.com/docs/disputes/list-disputes): GET /api/v2/projects/{projectId}/disputes - [Preview Dispute Evidence](https://www.saasco.com/docs/disputes/preview-dispute-evidence): POST /api/v2/projects/{projectId}/disputes/{disputeId}/preview - [Regenerate Dispute Evidence](https://www.saasco.com/docs/disputes/regenerate-dispute-evidence): POST /api/v2/projects/{projectId}/disputes/{disputeId}/regenerate - [Get Dispute Stats](https://www.saasco.com/docs/disputes/get-dispute-stats): GET /api/v2/projects/{projectId}/dispute-stats - [Submit Dispute Evidence](https://www.saasco.com/docs/disputes/submit-dispute-evidence): POST /api/v2/projects/{projectId}/disputes/{disputeId}/submit - [Sync Disputes](https://www.saasco.com/docs/disputes/sync-disputes): POST /api/v2/projects/{projectId}/disputes/sync - [Activate Email Receiving](https://www.saasco.com/docs/domains/activate-email-receiving): POST /api/v2/projects/{projectId}/domains/{domainId}/activate-email-receiving - [Activate Email Sending](https://www.saasco.com/docs/domains/activate-email-sending): POST /api/v2/projects/{projectId}/domains/{domainId}/activate-email - [Create Domain](https://www.saasco.com/docs/domains/create-domain): POST /api/v2/projects/{projectId}/domains - [List Domains](https://www.saasco.com/docs/domains/list-domains): GET /api/v2/projects/{projectId}/domains - [Delete Domain](https://www.saasco.com/docs/domains/delete-domain): DELETE /api/v2/projects/{projectId}/domains/{domainId} - [Get Domain](https://www.saasco.com/docs/domains/get-domain): GET /api/v2/projects/{projectId}/domains/{domainId} - [Update Domain](https://www.saasco.com/docs/domains/update-domain): POST /api/v2/projects/{projectId}/domains/{domainId} - [Disable Email Receiving](https://www.saasco.com/docs/domains/disable-email-receiving): DELETE /api/v2/projects/{projectId}/domains/{domainId}/email-receiving - [Disable Email Sending](https://www.saasco.com/docs/domains/disable-email-sending): DELETE /api/v2/projects/{projectId}/domains/{domainId}/email - [Disable Shortlink](https://www.saasco.com/docs/domains/disable-shortlink): DELETE /api/v2/projects/{projectId}/domains/{domainId}/shortlink - [Enable Shortlink](https://www.saasco.com/docs/domains/enable-shortlink): POST /api/v2/projects/{projectId}/domains/{domainId}/shortlink - [Get Email Receiving Config](https://www.saasco.com/docs/domains/get-email-receiving-config): GET /api/v2/projects/{projectId}/domains/{domainId}/receiving-config - [Get Sender Reputation](https://www.saasco.com/docs/domains/get-sender-reputation): GET /api/v2/projects/{projectId}/domains/{domainId}/sender-reputation - [Get Sender Reputation By Domain Name](https://www.saasco.com/docs/domains/get-sender-reputation-by-domain-name): GET /api/v2/projects/{projectId}/domains/by-name/{domainName}/sender-reputation - [Get Domain Warmup Status](https://www.saasco.com/docs/domains/get-domain-warmup-status): GET /api/v2/projects/{projectId}/domains/by-name/{domainName}/warmup-status - [Enable Link Tracking](https://www.saasco.com/docs/domains/enable-link-tracking): POST /api/v2/projects/{projectId}/domains/{domainId}/link-tracking - [Verify Email DNS](https://www.saasco.com/docs/domains/verify-email-dns): POST /api/v2/projects/{projectId}/domains/{domainId}/verify-email-dns - [Verify Email Receiving DNS](https://www.saasco.com/docs/domains/verify-email-receiving-dns): POST /api/v2/projects/{projectId}/domains/{domainId}/verify-email-receiving - [Verify Shortlink](https://www.saasco.com/docs/domains/verify-shortlink): POST /api/v2/projects/{projectId}/domains/{domainId}/verify-shortlink - [Count Campaign Emails](https://www.saasco.com/docs/campaigns/count-campaign-emails): GET /api/v2/projects/{projectId}/email-campaigns/{campaignId}/email-count - [Create Email Campaign](https://www.saasco.com/docs/campaigns/create-email-campaign): POST /api/v2/projects/{projectId}/email-campaigns - [List Email Campaigns](https://www.saasco.com/docs/campaigns/list-email-campaigns): GET /api/v2/projects/{projectId}/email-campaigns - [Delete Email Campaign](https://www.saasco.com/docs/campaigns/delete-email-campaign): DELETE /api/v2/projects/{projectId}/email-campaigns/{campaignId} - [Get Email Campaign](https://www.saasco.com/docs/campaigns/get-email-campaign): GET /api/v2/projects/{projectId}/email-campaigns/{campaignId} - [Update Email Campaign](https://www.saasco.com/docs/campaigns/update-email-campaign): PUT /api/v2/projects/{projectId}/email-campaigns/{campaignId} - [Duplicate Email Campaign](https://www.saasco.com/docs/campaigns/duplicate-email-campaign): POST /api/v2/projects/{projectId}/email-campaigns/{campaignId}/duplicate - [Get Email Stats](https://www.saasco.com/docs/campaigns/get-email-stats): GET /api/v2/projects/{projectId}/email-campaigns/{campaignId}/stats - [Get Email](https://www.saasco.com/docs/emails/get-email): GET /api/v2/projects/{projectId}/email-campaigns/{campaignId}/emails/{emailId} - [Get Email Events](https://www.saasco.com/docs/emails/get-email-events): GET /api/v2/projects/{projectId}/email-campaigns/{campaignId}/emails/{emailId}/events - [Get Sender Status](https://www.saasco.com/docs/sender/get-sender-status): GET /api/v2/projects/{projectId}/email-campaigns/sender-status - [List Contact Emails](https://www.saasco.com/docs/emails/list-contact-emails): GET /api/v2/projects/{projectId}/contacts/{contactDistinctId}/emails - [List Emails](https://www.saasco.com/docs/emails/list-emails): GET /api/v2/projects/{projectId}/email-campaigns/{campaignId}/emails - [Resume Sending Email Campaign](https://www.saasco.com/docs/campaigns/resume-sending-email-campaign): POST /api/v2/projects/{projectId}/email-campaigns/{campaignId}/resume - [Send Email Campaign](https://www.saasco.com/docs/campaigns/send-email-campaign): POST /api/v2/projects/{projectId}/email-campaigns/{campaignId}/send - [Send Test Email](https://www.saasco.com/docs/campaigns/send-test-email): POST /api/v2/projects/{projectId}/emails/send-test - [Stop Sending Email Campaign](https://www.saasco.com/docs/campaigns/stop-sending-email-campaign): POST /api/v2/projects/{projectId}/email-campaigns/{campaignId}/stop - [Archive Comment](https://www.saasco.com/docs/feedback/archive-comment): POST /api/v2/projects/{projectId}/feedback/comments/{id}/archive - [Archive Public Comment](https://www.saasco.com/docs/feedback/archive-public-comment): POST /api/v2/feedback/{projectId}/comments/{id}/archive - [Create Post](https://www.saasco.com/docs/feedback/create-post): POST /api/v2/projects/{projectId}/feedback/posts - [List Posts](https://www.saasco.com/docs/feedback/list-posts): GET /api/v2/projects/{projectId}/feedback/posts - [Create Public Comment](https://www.saasco.com/docs/feedback/create-public-comment): POST /api/v2/feedback/{projectId}/posts/{postId}/comments - [List Public Comments](https://www.saasco.com/docs/feedback/list-public-comments): GET /api/v2/feedback/{projectId}/posts/{postId}/comments - [Create Public Post](https://www.saasco.com/docs/feedback/create-public-post): POST /api/v2/feedback/{projectId}/posts - [List Public Posts](https://www.saasco.com/docs/feedback/list-public-posts): GET /api/v2/feedback/{projectId}/posts - [Create Status](https://www.saasco.com/docs/feedback/create-status): POST /api/v2/projects/{projectId}/feedback/statuses - [List Statuses](https://www.saasco.com/docs/feedback/list-statuses): GET /api/v2/projects/{projectId}/feedback/statuses - [Create Topic](https://www.saasco.com/docs/feedback/create-topic): POST /api/v2/projects/{projectId}/feedback/topics - [List Topics](https://www.saasco.com/docs/feedback/list-topics): GET /api/v2/projects/{projectId}/feedback/topics - [Delete Post](https://www.saasco.com/docs/feedback/delete-post): DELETE /api/v2/projects/{projectId}/feedback/posts/{id} - [Get Post](https://www.saasco.com/docs/feedback/get-post): GET /api/v2/projects/{projectId}/feedback/posts/{id} - [Update Post](https://www.saasco.com/docs/feedback/update-post): PUT /api/v2/projects/{projectId}/feedback/posts/{id} - [Delete Status](https://www.saasco.com/docs/feedback/delete-status): DELETE /api/v2/projects/{projectId}/feedback/statuses/{id} - [Update Status](https://www.saasco.com/docs/feedback/update-status): PUT /api/v2/projects/{projectId}/feedback/statuses/{id} - [Delete Topic](https://www.saasco.com/docs/feedback/delete-topic): DELETE /api/v2/projects/{projectId}/feedback/topics/{id} - [Update Topic](https://www.saasco.com/docs/feedback/update-topic): PUT /api/v2/projects/{projectId}/feedback/topics/{id} - [Get Feedback](https://www.saasco.com/docs/feedback/get-feedback): GET /api/v2/projects/{projectId}/feedback - [Update Feedback](https://www.saasco.com/docs/feedback/update-feedback): PUT /api/v2/projects/{projectId}/feedback - [Get Public Feedback](https://www.saasco.com/docs/feedback/get-public-feedback): GET /api/v2/feedback/{projectId} - [Get Public Roadmap](https://www.saasco.com/docs/roadmap/get-public-roadmap): GET /api/v2/roadmap/{projectId} - [Get Public Post](https://www.saasco.com/docs/feedback/get-public-post): GET /api/v2/feedback/{projectId}/posts/{postSlug} - [Get Roadmap](https://www.saasco.com/docs/roadmap/get-roadmap): GET /api/v2/projects/{projectId}/roadmap - [Update Roadmap](https://www.saasco.com/docs/roadmap/update-roadmap): PUT /api/v2/projects/{projectId}/roadmap - [List Comments](https://www.saasco.com/docs/feedback/list-comments): GET /api/v2/projects/{projectId}/feedback/posts/{postId}/comments - [List Public Engagements](https://www.saasco.com/docs/feedback/list-public-engagements): GET /api/v2/feedback/{projectId}/engagements - [List Public Roadmap](https://www.saasco.com/docs/roadmap/list-public-roadmap): GET /api/v2/roadmap/{projectId}/posts - [List Public Statuses](https://www.saasco.com/docs/feedback/list-public-statuses): GET /api/v2/feedback/{projectId}/statuses - [List Public Topics](https://www.saasco.com/docs/feedback/list-public-topics): GET /api/v2/feedback/{projectId}/topics - [Set Post Pending Approval](https://www.saasco.com/docs/feedback/set-post-pending-approval): POST /api/v2/projects/{projectId}/feedback/posts/{id}/approval - [Set Public Follow](https://www.saasco.com/docs/feedback/set-public-follow): POST /api/v2/feedback/{projectId}/posts/{postId}/follow - [Set Public Vote](https://www.saasco.com/docs/feedback/set-public-vote): POST /api/v2/feedback/{projectId}/posts/{postId}/vote - [Unmerge Post](https://www.saasco.com/docs/feedback/unmerge-post): POST /api/v2/projects/{projectId}/feedback/posts/{id}/unmerge - [Update Comment](https://www.saasco.com/docs/feedback/update-comment): PUT /api/v2/projects/{projectId}/feedback/comments/{id} - [Update Post Status](https://www.saasco.com/docs/feedback/update-post-status): PUT /api/v2/projects/{projectId}/feedback/posts/{id}/status - [Update Post Topics](https://www.saasco.com/docs/feedback/update-post-topics): PUT /api/v2/projects/{projectId}/feedback/posts/{id}/topics - [Update Public Comment](https://www.saasco.com/docs/feedback/update-public-comment): PUT /api/v2/feedback/{projectId}/comments/{id} - [Add Article Reaction](https://www.saasco.com/docs/articles/add-article-reaction): POST /api/v2/knowledge/articles/{articleId}/reactions - [Create Article](https://www.saasco.com/docs/articles/create-article): POST /api/v2/projects/{projectId}/knowledge/articles - [List Articles](https://www.saasco.com/docs/articles/list-articles): GET /api/v2/projects/{projectId}/knowledge/articles - [Create Collection](https://www.saasco.com/docs/collections/create-collection): POST /api/v2/projects/{projectId}/knowledge/collections - [List Collections](https://www.saasco.com/docs/collections/list-collections): GET /api/v2/projects/{projectId}/knowledge/collections - [Create Help Center](https://www.saasco.com/docs/help-center/create-help-center): POST /api/v2/projects/{projectId}/knowledge/help-centers - [Delete Article](https://www.saasco.com/docs/articles/delete-article): DELETE /api/v2/projects/{projectId}/knowledge/articles/{id} - [Get Article](https://www.saasco.com/docs/articles/get-article): GET /api/v2/projects/{projectId}/knowledge/articles/{id} - [Update Article](https://www.saasco.com/docs/articles/update-article): PUT /api/v2/projects/{projectId}/knowledge/articles/{id} - [Delete Collection](https://www.saasco.com/docs/collections/delete-collection): DELETE /api/v2/projects/{projectId}/knowledge/collections/{id} - [Get Collection](https://www.saasco.com/docs/collections/get-collection): GET /api/v2/projects/{projectId}/knowledge/collections/{id} - [Update Collection](https://www.saasco.com/docs/collections/update-collection): PUT /api/v2/projects/{projectId}/knowledge/collections/{id} - [Delete Help Center](https://www.saasco.com/docs/help-center/delete-help-center): DELETE /api/v2/projects/{projectId}/knowledge/help-centers/{id} - [Update Help Center](https://www.saasco.com/docs/help-center/update-help-center): PUT /api/v2/projects/{projectId}/knowledge/help-centers/{id} - [Dismiss Knowledge Gap](https://www.saasco.com/docs/knowledge-gaps/dismiss-knowledge-gap): POST /api/v2/projects/{projectId}/knowledge/gaps/{id}/dismiss - [Get Help Center](https://www.saasco.com/docs/help-center/get-help-center): GET /api/v2/projects/{projectId}/knowledge/help-center - [Get Public Article](https://www.saasco.com/docs/articles/get-public-article): GET /api/v2/knowledge/articles/{slug} - [Get Public Articles By IDs](https://www.saasco.com/docs/articles/get-public-articles-by-ids): GET /api/v2/knowledge/articles/by-ids - [Get Public Help Center](https://www.saasco.com/docs/help-center/get-public-help-center): GET /api/v2/knowledge/help-centers/{projectId} - [Get Related Articles](https://www.saasco.com/docs/articles/get-related-articles): GET /api/v2/knowledge/articles/{articleId}/related - [Increment Article Views](https://www.saasco.com/docs/articles/increment-article-views): POST /api/v2/knowledge/articles/{articleId}/views - [Instant Search Articles](https://www.saasco.com/docs/articles/instant-search-articles): GET /api/v2/knowledge/instant-search - [List Knowledge Gaps](https://www.saasco.com/docs/knowledge-gaps/list-knowledge-gaps): GET /api/v2/projects/{projectId}/knowledge/gaps - [List Public Collections](https://www.saasco.com/docs/collections/list-public-collections): GET /api/v2/knowledge/help-centers/{helpCenterId}/collections - [Remove Help Center Custom Domain](https://www.saasco.com/docs/help-center/remove-help-center-custom-domain): DELETE /api/v2/projects/{projectId}/knowledge/help-center/domain - [Set Help Center Custom Domain](https://www.saasco.com/docs/help-center/set-help-center-custom-domain): POST /api/v2/projects/{projectId}/knowledge/help-center/domain - [Search Articles](https://www.saasco.com/docs/articles/search-articles): GET /api/v2/knowledge/search - [Save Knowledge Gap Article](https://www.saasco.com/docs/knowledge-gaps/save-knowledge-gap-article): POST /api/v2/projects/{projectId}/knowledge/gaps/{id}/article - [Upload Article Image](https://www.saasco.com/docs/articles/upload-article-image): POST /api/v2/projects/{projectId}/knowledge/articles/images - [Verify Help Center Custom Domain](https://www.saasco.com/docs/help-center/verify-help-center-custom-domain): POST /api/v2/projects/{projectId}/knowledge/help-center/domain/verify - [Get Project](https://www.saasco.com/docs/projects/get-project): GET /api/v2/projects/{projectId} - [Update Project](https://www.saasco.com/docs/projects/update-project): POST /api/v2/projects/{projectId} - [Delete Project](https://www.saasco.com/docs/projects/delete-project): DELETE /api/v2/projects/{projectId} - [List Projects](https://www.saasco.com/docs/projects/list-projects): GET /api/v2/projects - [Create Shortlink](https://www.saasco.com/docs/short-links/create-shortlink): POST /api/v2/projects/{projectId}/shortlinks - [List Shortlinks](https://www.saasco.com/docs/short-links/list-shortlinks): GET /api/v2/projects/{projectId}/shortlinks - [Delete Shortlink](https://www.saasco.com/docs/short-links/delete-shortlink): DELETE /api/v2/projects/{projectId}/shortlinks/{shortlinkId} - [Get Shortlink](https://www.saasco.com/docs/short-links/get-shortlink): GET /api/v2/projects/{projectId}/shortlinks/{shortlinkId} - [Update Shortlink](https://www.saasco.com/docs/short-links/update-shortlink): PUT /api/v2/projects/{projectId}/shortlinks/{shortlinkId} - [Get Shortlink Clicks](https://www.saasco.com/docs/short-links/get-shortlink-clicks): GET /api/v2/projects/{projectId}/shortlink-clicks - [Get Shortlink Clicks Count](https://www.saasco.com/docs/short-links/get-shortlink-clicks-count): GET /api/v2/projects/{projectId}/shortlinks/{shortlinkId}/clicks - [Get Top Shortlinks](https://www.saasco.com/docs/short-links/get-top-shortlinks): GET /api/v2/projects/{projectId}/top-shortlinks - [Delete Social Proof Template](https://www.saasco.com/docs/social-proof/delete-social-proof-template): DELETE /api/v2/projects/{projectId}/social-proof/templates/{templateId} - [Get Social Proof Config](https://www.saasco.com/docs/social-proof/get-social-proof-config): GET /api/v2/projects/{projectId}/social-proof - [Update Social Proof Config](https://www.saasco.com/docs/social-proof/update-social-proof-config): PUT /api/v2/projects/{projectId}/social-proof - [Get Social Proof Widget Enabled](https://www.saasco.com/docs/social-proof/get-social-proof-widget-enabled): GET /api/v2/projects/{projectId}/social-proof/widget/enabled - [Get Social Proof Stats](https://www.saasco.com/docs/social-proof/get-social-proof-stats): GET /api/v2/projects/{projectId}/social-proof/stats - [Get Social Proof Stats Timeseries](https://www.saasco.com/docs/social-proof/get-social-proof-stats-timeseries): GET /api/v2/projects/{projectId}/social-proof/stats/timeseries - [Update Social Proof Widget Enabled](https://www.saasco.com/docs/social-proof/update-social-proof-widget-enabled): PATCH /api/v2/projects/{projectId}/social-proof/widget - [Upsert Social Proof Template](https://www.saasco.com/docs/social-proof/upsert-social-proof-template): POST /api/v2/projects/{projectId}/social-proof/templates - [Mark Messages Seen](https://www.saasco.com/docs/messages/mark-messages-seen): POST /api/v2/projects/{projectId}/support/conversations/{conversationId}/messages/seen - [List Conversations](https://www.saasco.com/docs/conversations/list-conversations): GET /api/v2/projects/{projectId}/support/conversations - [List Contact Conversations](https://www.saasco.com/docs/conversations/list-contact-conversations): GET /api/v2/projects/{projectId}/support/contacts/{contactId}/conversations - [List Conversation Messages](https://www.saasco.com/docs/messages/list-conversation-messages): GET /api/v2/projects/{projectId}/support/conversations/{conversationId}/messages - [Search Conversation Messages](https://www.saasco.com/docs/messages/search-conversation-messages): GET /api/v2/projects/{projectId}/support/conversations/search - [Get Inbound Email Attachment](https://www.saasco.com/docs/messages/get-inbound-email-attachment): POST /api/v2/projects/{projectId}/support/conversations/{conversationId}/messages/{messageId}/attachments/{attachmentId} - [Update Conversation State](https://www.saasco.com/docs/conversations/update-conversation-state): PATCH /api/v2/projects/{projectId}/support/conversations/{conversationId} - [Get Widget Enabled](https://www.saasco.com/docs/widget/get-widget-enabled): GET /api/v2/projects/{projectId}/support/widget/enabled - [Get Email Agent Enabled](https://www.saasco.com/docs/widget/get-email-agent-enabled): GET /api/v2/projects/{projectId}/support/email-agent - [Update Email Agent Enabled](https://www.saasco.com/docs/widget/update-email-agent-enabled): PATCH /api/v2/projects/{projectId}/support/email-agent - [Get Widget Agent Enabled](https://www.saasco.com/docs/widget/get-widget-agent-enabled): GET /api/v2/projects/{projectId}/support/widget-agent - [Update Widget Agent Enabled](https://www.saasco.com/docs/widget/update-widget-agent-enabled): PATCH /api/v2/projects/{projectId}/support/widget-agent - [Update Widget Enabled](https://www.saasco.com/docs/widget/update-widget-enabled): PATCH /api/v2/projects/{projectId}/support/widget - [Get Trusted Domains](https://www.saasco.com/docs/widget/get-trusted-domains): GET /api/v2/projects/{projectId}/support/trusted-domains - [Update Trusted Domains](https://www.saasco.com/docs/widget/update-trusted-domains): PUT /api/v2/projects/{projectId}/support/trusted-domains - [Get Support Mailbox](https://www.saasco.com/docs/widget/get-support-mailbox): GET /api/v2/projects/{projectId}/support/mailbox - [Update Support Mailbox](https://www.saasco.com/docs/widget/update-support-mailbox): PUT /api/v2/projects/{projectId}/support/mailbox - [Get Widget Copy](https://www.saasco.com/docs/widget/get-widget-copy): GET /api/v2/projects/{projectId}/support/widget-copy - [Update Widget Copy](https://www.saasco.com/docs/widget/update-widget-copy): PATCH /api/v2/projects/{projectId}/support/widget-copy - [Create Workflow](https://www.saasco.com/docs/workflows/create-workflow): POST /api/v2/projects/{projectId}/workflows - [List Workflows](https://www.saasco.com/docs/workflows/list-workflows): GET /api/v2/projects/{projectId}/workflows - [Get Workflow](https://www.saasco.com/docs/workflows/get-workflow): GET /api/v2/projects/{projectId}/workflows/{workflowId} - [Update Workflow](https://www.saasco.com/docs/workflows/update-workflow): PUT /api/v2/projects/{projectId}/workflows/{workflowId} - [Delete Workflow](https://www.saasco.com/docs/workflows/delete-workflow): DELETE /api/v2/projects/{projectId}/workflows/{workflowId} - [Verify Workflow Config](https://www.saasco.com/docs/workflows/verify-workflow-config): POST /api/v2/projects/{projectId}/workflows/{workflowId}/verify