# SuprSend, Notification infrastructure for Product teams - [Documentation (161 pages)](https://docs.suprsend.com/_llms/documentation.md): Documentation for Documentation. ## Guides ### Guides - [Modelling your business customers & applications: tenants vs workspaces](https://docs.suprsend.com/docs/guides/modelling-customers-workspace-vs-tenant.md): Learn how to model each business customer or your applications in SuprSend — as a tenant in a shared workspace, or as its own workspace — and how to choose. - [Designing Notifications for Multi-Tenant B2B2X Applications](https://docs.suprsend.com/docs/guides/multi-tenant-modelling.md): Model multi-tenant B2B2X notification architecture in SuprSend with per-tenant preferences, whitelabeled templates, and tenant vendor routing. - [Workflow Triggers: Event vs Workflow API](https://docs.suprsend.com/docs/guides/event-vs-workflow-api.md): Compare the event trigger and direct workflow API methods in SuprSend to choose the right approach for triggering notification workflows from your backend. - [Designing Notification Preferences](https://docs.suprsend.com/docs/guides/preference-guide.md): Practical guide to designing notification preference centres in SuprSend with eight real-world patterns covering channel opt-ins and multi-tenant setups. - [Designing notifications for multi-tenant B2B applications](https://docs.suprsend.com/docs/guides/modelling-customers-b2b.md): Model notifications for a B2B product in SuprSend, so each customer can set what its own people receive — customer-wide, per project, and per user. - [Designing notifications for B2B2C applications](https://docs.suprsend.com/docs/guides/modelling-customers-b2b2c.md): Model each business customer as its own isolated SuprSend workspace — its own keys, vendors, users, templates, workflows, and analytics. ## API Reference ### API Reference - [Overview](https://docs.suprsend.com/reference/overview.md): Get an overview of the SuprSend API reference, supported backend SDKs in Java, Python, Node, Go, and how to send notifications reliably at scale. - [Authentication](https://docs.suprsend.com/reference/authentication.md): Learn how to authenticate SuprSend HTTP API requests using workspace API keys, including where to find them in the dashboard and how to use them safely. - [Idempotent Requests](https://docs.suprsend.com/reference/idempotent-requests.md): Use an idempotency key in SuprSend workflow API requests to safely retry calls, prevent duplicate notifications, and track webhook delivery. - [SuprSend APIs on Postman](https://docs.suprsend.com/reference/postman-collection.md): Test and explore SuprSend APIs using our Postman collection, fork the workspace, set authorization variables, and try workflow requests in minutes. ### USERS - [Create / Update Users](https://docs.suprsend.com/reference/create-update-users.md): API to upsert (create if not exists, update if exists) user profile using a `distinct_id`. - [Edit User Profile](https://docs.suprsend.com/reference/edit-user-profile.md): API to edit (add/remove) properties and communication-channels for a user. - [Fetch User by id](https://docs.suprsend.com/reference/get-user-profile.md): API to fetch user object by passing it's unique `distinct_id`. - [Upsert User Tenant Profile](https://docs.suprsend.com/reference/upsert-user-tenant-profile.md): Adds or updates the per-tenant profile for a user. Fields you set here override the user's global profile when the workflow is triggered with `tenant_id`. Body accepts the same shape as [Create / Update Users](/reference/create-update-users). - [Fetch User Tenant Profile](https://docs.suprsend.com/reference/fetch-user-tenant-profile.md): Returns the user profile evaluated for a specific tenant. The top-level fields are the **merged** effective profile (global layered with per-tenant overrides). The `tenant` block returns only the fields explicitly set on the per-tenant profile. - [List User Tenant Profiles](https://docs.suprsend.com/reference/list-user-tenant-profiles.md): Returns every tenant profile the user has, one entry per mapping. Each entry contains the merged effective profile evaluated for that tenant, with the per-tenant override under the `tenant` key. - [Delete User Tenant Mapping](https://docs.suprsend.com/reference/delete-user-tenant-mapping.md): Removes the per-tenant profile for a user. The global profile is untouched and the user remains in the workspace. - [Fetch User object subscriptions](https://docs.suprsend.com/reference/fetch-user-object-subscriptions.md): API to fetch all objects that a given user is subscribed to. - [Fetch User list subscriptions](https://docs.suprsend.com/reference/fetch-user-list-subscriptions.md): API to retrieve all lists that a user is part of. - [List Users](https://docs.suprsend.com/reference/list-users.md): API to list cursor-based paginated list of users in your workspace. - [Delete User](https://docs.suprsend.com/reference/delete-user.md): API to permanently delete a user from SuprSend by passing `distinct_id`. - [Merge User Profiles](https://docs.suprsend.com/reference/merge-users.md): API to merge two user profiles to resolve duplicate user records. ### TRIGGER WORKFLOWS - [Trigger Workflow (single or bulk)](https://docs.suprsend.com/reference/trigger-workflow-api.md): API to trigger multi-step workflow to one or more users/objects by passing workflow slug, via `POST /trigger/`. - [Dynamic Workflow Trigger](https://docs.suprsend.com/reference/dynamic-workflow-trigger.md): API to dynamically create and trigger a single step workflow. - [Cancel Workflow](https://docs.suprsend.com/reference/cancel-workflow.md): API to cancel a running workflow execution. You can cancel a workflow by passing any combination of filters in the request body. When multiple parameters are provided, they are **ANDed** together to narrow down the matching workflow runs. ### EVENTS - [Trigger an Event](https://docs.suprsend.com/reference/trigger-event.md): API to pass an event, which in turn triggers workflows where that event is defined as the trigger. ### MESSAGES - [List Messages](https://docs.suprsend.com/reference/list-messages.md): Retrieve a paginated list of messages in a workspace order by created_at desc. Can be used to fetch and show message logs on the platform. - [Get Message Content](https://docs.suprsend.com/reference/get-message-content.md): Retrieve the rendered content of a specific message. Returns the channel and the content object containing the rendered template output. - [Bulk Update Message Status](https://docs.suprsend.com/reference/bulk-update-messages.md): Change the status of messages by passing their id and notification action. ### OBJECTS - [Create / Update Objects](https://docs.suprsend.com/reference/create-update-objects.md): API to upsert (create if not exists, update if exists) object by providing a unique object ID and type. - [Edit Object Profile](https://docs.suprsend.com/reference/edit-object-profile.md): API to edit (add/remove) properties and communication-channels for an object. - [Add Subscription](https://docs.suprsend.com/reference/add-object-subscription.md): API to add subscribers (users/child objects) to a given object, to notify subscribers when workflow is triggered on the parent object. - [Fetch Object by ID](https://docs.suprsend.com/reference/get-object-by-id.md): API to fetch Object details by passing object type and ID. - [Fetch Object Subscriptions](https://docs.suprsend.com/reference/get-object-subscriptions.md): API to fetch a paginated list of all parent objects that the given child object is subscribed to. - [List Objects by Type](https://docs.suprsend.com/reference/list-objects-by-type.md): API to fetch paginated list of objects that belong to the specified `object_type`. - [List Object Subscriptions](https://docs.suprsend.com/reference/list-object-subscriptions.md): API to fetch a paginated list of users or child objects subscribed to a given object. - [Delete an Object](https://docs.suprsend.com/reference/delete-object.md): API to permanently delete an object by passing `object_type` and `id`. - [Remove Object Subscriptions](https://docs.suprsend.com/reference/delete-object-subscription.md): API to remove object subscribers (users or child objects). ### TEMPLATES - [Fetch Template List](https://docs.suprsend.com/reference/get-template-list.md): API to fetch paginated list of all templates in a given workspace. - [Fetch Template details](https://docs.suprsend.com/reference/get-template-details.md): API to fetch content of a template group (active & draft versions) across all associated channels and languages. - [Fetch Template content for a Channel](https://docs.suprsend.com/reference/get-template-details-for-channel.md): API to fetch content of a particular channel in a template group (live & draft versions). ### TENANTS - [Create / Update Tenants](https://docs.suprsend.com/reference/create-update-tenants.md): API to create a new Tenant OR update an existing Tenant - [Update Tenant Properties](https://docs.suprsend.com/reference/update-tenant-properties.md): Update a tenant's custom `properties` in one of two ways: - [Get Tenant](https://docs.suprsend.com/reference/get-tenant-data.md): API to fetch properties and blocked channel settingcorresponding to a tenant_id. To create or update tenant data, use the [Create/Update Tenant](#operation/create-tenants) endpoint. - [List Tenants](https://docs.suprsend.com/reference/get-tenant-list.md): API to fetch a paginated list of tenants available in your workspace. - [Delete Tenant](https://docs.suprsend.com/reference/delete-tenant.md): Delete a tenant by passing it's ID. Deletion does not affect in-flight notifications, which complete with the settings that were in effect at trigger time. When the tenant has sub-tenants, use `children_action` in the request body to control what happens to them. ### PREFERENCE #### Get User Preferences - [Full Preference](https://docs.suprsend.com/reference/get-user-full-preference.md): API to fetch user preferences across all channels and categories. - [All Categories](https://docs.suprsend.com/reference/user-category-preference.md): API to fetch user preferences across all categories. - [All Channels](https://docs.suprsend.com/reference/get-user-channel-preferences.md): API to retrieve user preferences for all channels. - [Single Category](https://docs.suprsend.com/reference/get-user-category-preferences.md): API to fetch user preferences for a given category. #### Update User Preferences - [Update User Full Preference](https://docs.suprsend.com/reference/update-user-full-preference.md): API to update user preferences across all channels and categories with translated names and descriptions in the response. - [Category and Channel within Category](https://docs.suprsend.com/reference/update-user-category-preference.md): API to update user preferences for a specific notification category. - [Overall Channel level](https://docs.suprsend.com/reference/update-user-channel-preference.md): API to update user preferences across all channels. - [Bulk Update](https://docs.suprsend.com/reference/bulk-update-user-preference.md): Bulk API to update channel and category-level notification preferences for multiple users in one request. - [Reset](https://docs.suprsend.com/reference/reset-user-preferences.md): API to reset user preference settings to default preference. #### Manage Tenant Preferences - [Get Tenant Full Preference](https://docs.suprsend.com/reference/get-tenant-full-preference.md): API to fetch tenant preferences across all categories with translated names and descriptions. - [Get Tenant Preference All Categories](https://docs.suprsend.com/reference/get-tenant-preference-all-categories.md): API to get tenant preferences for all categories with translated names and descriptions. - [Get Tenant Preference Single Category](https://docs.suprsend.com/reference/get-tenant-preference-single-category.md): API to get tenant preference for a specific category. - [Update Tenant Preference Single Category](https://docs.suprsend.com/reference/update-tenant-preference-single-category.md): API to update tenant preference for a specific category. - [Get Tenant Default Preference](https://docs.suprsend.com/reference/get-tenant-category-preferences.md): API to get default tenant preference for all categories. #### Get Object Preferences - [Full Preference](https://docs.suprsend.com/reference/get-object-full-preference.md): API to fetch object preferences across all channels and categories. - [All Categories](https://docs.suprsend.com/reference/get-object-category-preference.md): API to fetch user preferences across all categories. - [All Channels](https://docs.suprsend.com/reference/get-object-channel-preferences.md): API to retrieve all channel preferences for a given object. - [Single Category](https://docs.suprsend.com/reference/get-object-single-category-preference.md): API to fetch object preferences for a given category. #### Update Object Preferences - [Update Object Full Preference](https://docs.suprsend.com/reference/update-object-full-preference.md): API to update object preferences across all channels and categories with translated names and descriptions in the response. - [Category and Channel within Category](https://docs.suprsend.com/reference/object-preference-category.md): API to update object preferences for a specific notification category. - [Overall Channel level](https://docs.suprsend.com/reference/update-object-channel-preference.md): API to update object preferences across all channels. ### LISTS - [Create a List](https://docs.suprsend.com/reference/create-list.md): API to create / manage lists to send notification to a bulk list of users. To create a [Segment List](/docs/segment-lists) — a list whose membership is driven by a SQL query against your `users` and `events` tables — pass `list_type: dynamic_list` along with the `query`. - [Add Users to List](https://docs.suprsend.com/reference/add-user-to-list.md): API to add users to the list by passing their distinct_ids. - [Remove Users from List](https://docs.suprsend.com/reference/remove-subscribers-from-list.md): API to remove users from a list by passing their distinct_ids. - [Get all Lists](https://docs.suprsend.com/reference/get-all-lists.md): API to fetch a paginated list of all lists created in your workspace. - [Get List Configuration](https://docs.suprsend.com/reference/get-list-details.md): API to fetch list metadata like list type, count, source, and status. Doesn't include users in the list. For [Segment Lists](/docs/segment-lists) (`list_type: dynamic_list`), the response also includes the committed `query` and the `sync_task` block with the live version. - [Get list users](https://docs.suprsend.com/reference/get-list-users.md): API to fetch a cursor-based paginated list of all users in the list. - [Delete a List](https://docs.suprsend.com/reference/delete-list.md): API to permanently delete a list. #### Replace List Users - [Overview](https://docs.suprsend.com/reference/replace-list-subscribers.md): Overview of SuprSend APIs to fully replace a subscriber list using start sync, add or remove users in a draft, and finish sync to publish changes. - [Start Sync](https://docs.suprsend.com/reference/start-sync.md): Creates an empty draft version of the list where you can update users to be replaced without affecting the live version. - [Add Users to Draft List](https://docs.suprsend.com/reference/add-subscribers-to-draft-list.md): API to add users in the draft list by passing its `version_id` returned in [Start Sync](/reference/start-sync) API response. - [Remove Users from Draft List](https://docs.suprsend.com/reference/remove-subscribers-from-draft-list.md): API to remove users from the draft list by passing its `version_id` returned in [Start Sync](/reference/start-sync) API response. - [Finish Sync](https://docs.suprsend.com/reference/finish-sync.md): API to finish sync and make the draft list version live. - [Delete Draft List](https://docs.suprsend.com/reference/delete-draft-list.md): API to delete draft version of the list. Use this to discard test or interim versions before publishing the final list. #### Segment Lists (dry-run) - [Dry-run a segment query (sample rows)](https://docs.suprsend.com/reference/segment-dry-run.md): Preview the rows a [Segment List](/docs/segment-lists) SQL query would match, without committing it to a list. Returns up to the top 10 matched rows for the columns selected. Use this to spot-check a query before creating a Segment List or committing a new version. - [Dry-run a segment query (count only)](https://docs.suprsend.com/reference/segment-dry-run-count.md): Return the total number of users a [Segment List](/docs/segment-lists) SQL query would match, without returning the rows. Use this when you only need to size the audience. ### BROADCAST - [Trigger Broadcast](https://docs.suprsend.com/reference/trigger-broadcast.md): API to trigger broadcast notification to list users. - [Cancel Broadcast](https://docs.suprsend.com/reference/cancel-broadcast.md): API to cancel a running broadcast execution. You can cancel a broadcast by passing any combination of filters in the request body. When multiple parameters are provided, they are **ANDed** together to narrow down the matching broadcast runs. ## Management API ### API Reference - [Overview](https://docs.suprsend.com/docs/management-api-overview.md): Get started with the SuprSend Management API to programmatically manage workflows, templates, schemas, and translations from your dashboard resources. - [Authentication](https://docs.suprsend.com/reference/service-token-authentication.md): Authenticate SuprSend management API requests with service tokens generated from your dashboard to manage workflows, templates, and schemas at scale. - [Errors](https://docs.suprsend.com/docs/management-api-errors.md): Reference HTTP status codes, error response formats, and troubleshooting steps you can use to debug failed SuprSend Management API calls in your app. ### WORKSPACE & AUTH KEYS #### Workspaces - [List Workspaces](https://docs.suprsend.com/reference/list-workspaces.md): List all workspaces available in your account. - [Create Workspace](https://docs.suprsend.com/reference/create-workspace.md): Create a new workspace in your account. - [Get Workspace Config](https://docs.suprsend.com/reference/get-workspace-config.md): Retrieve workspace-level configuration flags — the settings that govern behavior for every user, tenant, and workflow inside this workspace. - [Update Workspace Config](https://docs.suprsend.com/reference/update-workspace-config.md): Update one or more workspace-level configuration flags. Any field returned by `GET /v1/workspace/{workspace_slug}/config/` can be sent in the PATCH body — only fields you include are changed. #### API keys - [List API Keys](https://docs.suprsend.com/reference/list-workspace-api-keys.md): List API keys scoped to a workspace. Secret values are never returned on list; only a masked preview is shown. - [Create API Key](https://docs.suprsend.com/reference/create-workspace-api-key.md): Create a new API key scoped to this workspace. - [Delete API Key](https://docs.suprsend.com/reference/delete-workspace-api-key.md): Delete an API key by its `id` (e.g. `ws_apik_...`). Once disabled, the key can no longer authenticate requests. #### Public keys - [List Workspace Public Keys](https://docs.suprsend.com/reference/list-workspace-public-keys.md): List public keys for this workspace. Public keys are used by client-side SDKs. - [Create Workspace Public Key](https://docs.suprsend.com/reference/create-workspace-public-key.md): Create a new public key for this workspace. Public keys can be safely distributed to client SDKs. - [Enable or Disable Secure Mode on Public Key](https://docs.suprsend.com/reference/patch-workspace-public-key.md): Enable or disable secure mode on an existing public key (e.g. `ws_pubk_...`). - [Rotate Workspace Public Key](https://docs.suprsend.com/reference/rotate-workspace-public-key.md): Rotate public key material while keeping the same logical key record. Clients using the old material must switch to the new value. - [Delete Workspace Public Key](https://docs.suprsend.com/reference/delete-workspace-public-key.md): Delete a public key by its `id`. #### Signing keys - [List Workspace Signing Keys](https://docs.suprsend.com/reference/list-workspace-signing-keys.md): List signing keys for this workspace. Signing keys are used to verify signed payloads. - [Create Workspace Signing Key](https://docs.suprsend.com/reference/create-workspace-signing-key.md): Create a signing key for this workspace. - [Roll Workspace Signing Key](https://docs.suprsend.com/reference/roll-workspace-signing-key.md): Roll a signing key. Generates a new signing key that replaces the existing active key. The previous key is marked `rolled`. - [Delete Workspace Signing Key](https://docs.suprsend.com/reference/delete-workspace-signing-key.md): Delete a signing key by its `uid` (e.g. `signing_key_20260421T123746`). ### WORKFLOWS - [Create or Update Workflow](https://docs.suprsend.com/reference/create-update-workflow.md): Create a new workflow or update the draft version of an existing one - [Commit Workflow](https://docs.suprsend.com/reference/commit-workflow.md): Commit a workflow to make the draft version live. - [Get Workflow Details](https://docs.suprsend.com/reference/get-workflow.md): Fetch workflow corresponding to the given slug in a workspace. - [List Workflows](https://docs.suprsend.com/reference/list-workflows.md): Retrieve a list of workflows in a workspace. - [Enable/Disable Workflow](https://docs.suprsend.com/reference/enable-disable-workflow.md): Enable or disable a workflow. Disabled workflows will not be executed when triggered. By default, workflows are enabled unless you explicitly disable them. - [Delete Workflow](https://docs.suprsend.com/reference/delete-workflow.md): Permanently deletes a workflow by providing it's slug. #### Node Schema - [Delay](https://docs.suprsend.com/reference/workflow-nodes/delay.md) - [Batch](https://docs.suprsend.com/reference/workflow-nodes/batch.md) - [Digest](https://docs.suprsend.com/reference/workflow-nodes/digest.md) - [Webhook](https://docs.suprsend.com/reference/workflow-nodes/webhook.md) - [Fetch](https://docs.suprsend.com/reference/workflow-nodes/fetch.md) - [Wait Until](https://docs.suprsend.com/reference/workflow-nodes/wait-until.md) - [Branch](https://docs.suprsend.com/reference/workflow-nodes/branch.md) - [Data Transform](https://docs.suprsend.com/reference/workflow-nodes/data-transform.md) - [Time Window](https://docs.suprsend.com/reference/workflow-nodes/time-window.md) - [Add User to List](https://docs.suprsend.com/reference/workflow-nodes/add-user-to-list.md) - [Remove User from List](https://docs.suprsend.com/reference/workflow-nodes/remove-user-from-list.md) - [Subscribe to Object](https://docs.suprsend.com/reference/workflow-nodes/subscribe-to-object.md) - [Unsubscribe from Object](https://docs.suprsend.com/reference/workflow-nodes/unsubscribe-from-object.md) - [Update User Profile](https://docs.suprsend.com/reference/workflow-nodes/update-user-profile.md) - [Invoke Workflow](https://docs.suprsend.com/reference/workflow-nodes/invoke-workflow.md) - [Send Email](https://docs.suprsend.com/reference/workflow-nodes/send-email.md) - [Send SMS](https://docs.suprsend.com/reference/workflow-nodes/send-sms.md) - [Send WhatsApp](https://docs.suprsend.com/reference/workflow-nodes/send-whatsapp.md) - [Send Mobile Push](https://docs.suprsend.com/reference/workflow-nodes/send-mobile-push.md) - [Send Inbox](https://docs.suprsend.com/reference/workflow-nodes/send-inbox.md) - [Send Web Push](https://docs.suprsend.com/reference/workflow-nodes/send-web-push.md) - [Send Slack](https://docs.suprsend.com/reference/workflow-nodes/send-slack.md) - [Send Microsoft Teams](https://docs.suprsend.com/reference/workflow-nodes/send-ms-teams.md) - [Send Multi-Channel](https://docs.suprsend.com/reference/workflow-nodes/send-multi-channel.md) - [Smart Channel Routing](https://docs.suprsend.com/reference/workflow-nodes/send-smart-channel-routing.md) ### SCHEMAS - [Create/Update Schema](https://docs.suprsend.com/reference/upsert-schema.md): Upset draft version of a JSON schema. Creates a new schema if it doesn't exist. - [Commit Schema](https://docs.suprsend.com/reference/commit-schema.md): Commit a draft schema to make it live. Changes will start to take effect as soon as it's live. - [List Schemas](https://docs.suprsend.com/reference/list-schemas.md): Retrieve a list of schemas in a workspace. - [Get Schema](https://docs.suprsend.com/reference/get-schema.md): Fetch the JSON schema corresponding to a slug. ### EVENTS - [Create Event](https://docs.suprsend.com/reference/create-event.md): Add events and their linked schemas in SuprSend - [Update Event](https://docs.suprsend.com/reference/update-event.md): Update event description and its linked schema. - [List Events](https://docs.suprsend.com/reference/list-events.md): Retrieve a list of events in a workspace. - [Get Event Details](https://docs.suprsend.com/reference/get-event.md): Fetch event details and its linked schema. - [Get Linked Workflows](https://docs.suprsend.com/reference/get-linked-workflows.md): Fetch list of all workflows where this event is used - [Delink Schema from Event](https://docs.suprsend.com/reference/delink-event-schema.md): Remove the linked schema from an event, making it schema-less. This allows the event to accept any payload structure without validation against a predefined schema. ### CATEGORIES - [Get Preference Category](https://docs.suprsend.com/reference/get-category.md): Retrieve the current preference category for a workspace - [Create or Update Preference Category](https://docs.suprsend.com/reference/create-update-category.md): Use this API to set preference categories to be used in workflow or to show on user preference page. - [Commit Preference Category](https://docs.suprsend.com/reference/commit-category.md): Commit draft changes to the preference category to make them live - [List Category Translation](https://docs.suprsend.com/reference/list-category-translation.md): Returns all the locales for which translation is uploaded for preference categories. - [Get Category Translation](https://docs.suprsend.com/reference/get-category-translation.md): Fetch translation content for a given locale for preference categories and sections. - [Add or Update Category Translation](https://docs.suprsend.com/reference/add-category-translation.md): Add or update translation content for a given locale for preference categories and sections. - [Delete Category Translation](https://docs.suprsend.com/reference/delete-category-translation.md): Delete translation content for a given locale for preference categories and sections. ### TRANSLATIONS - [Add Translation](https://docs.suprsend.com/reference/add-translation.md): Upload or create a new translation file. The file content should be valid JSON following the translation file structure. - [Commit Translation](https://docs.suprsend.com/reference/commit-translation.md): Commit all files changes to make them live. - [Get Translation](https://docs.suprsend.com/reference/get-translation.md): Retrieve the content of a translation file for a specific locale file. - [List Translations](https://docs.suprsend.com/reference/list-translations.md): Retrieve a list of translation files in a workspace. By default, returns draft translations. Use the mode query parameter to filter by draft or live translations. - [Get Translation History](https://docs.suprsend.com/reference/get-translation-history.md): Retrieve version history information for translations, including all versions and their details. - [Rollback Translation](https://docs.suprsend.com/reference/rollback-translation.md): Rollback translations to a previous version. This will replace all files with what was available at the previous version. - [Delete Translation](https://docs.suprsend.com/reference/delete-translation.md): Marks a file for deletion in the next commit. Actual deletion will happen when you commit the draft. ### TEMPLATES - [List Templates](https://docs.suprsend.com/reference/list-templates-v2.md): Retrieve a paginated list of templates in a workspace. Returns template metadata including name, slug, status, enabled channels, and linked workflows. - [Get Template Detail](https://docs.suprsend.com/reference/get-template-v2.md): Retrieve detailed information about a specific template including its metadata, enabled channels, and version info. - [Create or Update Template](https://docs.suprsend.com/reference/upsert-template-v2.md): Create a new template or update an existing one. If the template slug already exists, the template metadata is updated. Changes are saved to the draft version. - [Commit Template](https://docs.suprsend.com/reference/commit-template-v2.md): Commit the current draft version, making it live. All draft changes across all channels and variants are published as a new version. #### Variants - [List All Variants](https://docs.suprsend.com/reference/list-all-variants-v2.md): Retrieve all variants across all channels for a template. Returns variant metadata, conditions, and content. - [List Channel Variants](https://docs.suprsend.com/reference/list-channel-variants-v2.md): Retrieve all variants for a specific channel within a template. - [Get Variant Detail](https://docs.suprsend.com/reference/get-variant-v2.md): Retrieve detailed information about a specific variant including its content, conditions, and vendor approval status. - [Create or Update Variant](https://docs.suprsend.com/reference/upsert-variant-v2.md): Create a new variant or update an existing one for a specific channel. Pass the variant content, conditions, locale, and optionally vendor approval details. - [Discard Variant](https://docs.suprsend.com/reference/discard-variant-v2.md): Discard a variant that is in approval-pending state. Only applicable for WhatsApp and SMS channels that require vendor approval. The variant returns to draft state. - [Add/Update Vendor Approval](https://docs.suprsend.com/reference/vendor-approval-v2.md): Add or update a vendor approval entry for a WhatsApp or SMS variant. Use this to record approval status from the vendor portal, including the vendor template ID and name. #### Mock Data - [Get Mock Data](https://docs.suprsend.com/reference/get-mock-data-v2.md): Retrieve the mock data (input payload, recipient, tenant, actor settings) for a template. Used for previewing and testing. - [Update Mock Data](https://docs.suprsend.com/reference/update-mock-data-v2.md): Update the mock data for a template. Sets the input payload, recipient, tenant, actor, and batching configuration used for previews and testing. ## CLI ### Getting Started with CLI - [CLI Overview](https://docs.suprsend.com/reference/cli-intro.md): Overview of the SuprSend CLI for managing workflows, templates, schemas, and events, syncing assets across workspaces, and building notification CI/CD. - [Verify CLI Signature](https://docs.suprsend.com/reference/cli-verify-signature.md): Cryptographically verify the SuprSend CLI binary using Cosign and checksums before installing to confirm authenticity and prevent tampering. - [Quickstart](https://docs.suprsend.com/reference/cli-quickstart.md): Quickstart guide to install the SuprSend CLI, authenticate with a service token, configure a workspace, and run your first commands in minutes. - [Installation](https://docs.suprsend.com/reference/cli-installation.md): Install the SuprSend CLI using npx, Homebrew, GitHub release binaries, or build from source on macOS, Linux, and Windows with version checks. - [Authentication](https://docs.suprsend.com/reference/cli-authentication.md): Set up SuprSend CLI authentication using service tokens, including how to generate tokens in the dashboard and the priority order the CLI uses to resolve them. - [Enable Autocompletion](https://docs.suprsend.com/reference/cli-autocompletion.md): Generate shell autocompletion scripts for the SuprSend CLI in bash, zsh, fish, or PowerShell so you can tab-complete commands and flags without typos. - [Global Flags](https://docs.suprsend.com/reference/cli-global-flags.md): Reference for global flags in the SuprSend CLI like config, workspace, service token, output, and verbosity available with every suprsend command. ### Updates and Versioning - [CLI Changelog](https://docs.suprsend.com/reference/cli-changelog.md): Browse the SuprSend CLI changelog for release notes covering new features, bug fixes, breaking changes, and security updates across every CLI version. - [Versioning and Support Policy](https://docs.suprsend.com/reference/cli-versioning.md): Understand the SuprSend CLI semantic versioning policy, what counts as major, minor, and patch releases, and which versions stay supported. ### Sync - [Sync Assets](https://docs.suprsend.com/reference/cli-sync.md): Sync notification assets like workflows, schemas, events, categories, and translations from a source SuprSend workspace to a destination workspace. ### Workflow - [SuprSend workflow CLI commands and flags](https://docs.suprsend.com/reference/cli-workflow-overview.md): Reference for the suprsend workflow CLI commands and flags used to list, get, push, pull, enable, and disable notification workflows from your terminal. - [List workflows with the SuprSend CLI](https://docs.suprsend.com/reference/cli-workflow-list.md): Use the suprsend workflow list command to list all SuprSend workflows in a workspace, with options to filter by draft or live mode and by workflow slug. - [Get workflow details with the SuprSend CLI](https://docs.suprsend.com/reference/cli-workflow-get.md): Use the suprsend workflow get command to fetch the full configuration of a single SuprSend workflow by slug, including its nodes, branches, and metadata. - [Pull workflows with the SuprSend CLI](https://docs.suprsend.com/reference/cli-workflow-pull.md): Use the suprsend workflow pull command to download SuprSend workflows from a workspace to your local directory for editing and version control in Git. - [Push workflows with the SuprSend CLI](https://docs.suprsend.com/reference/cli-workflow-push.md): Use the suprsend workflow push command to promote SuprSend workflows from your local directory to a workspace, enabling Git-based version control and sync. - [Enable a workflow with the SuprSend CLI](https://docs.suprsend.com/reference/cli-workflow-enable.md): Use the suprsend workflow enable command to activate a SuprSend workflow so it runs when triggered by events, the workflow API, or scheduled broadcasts. - [Disable a workflow with the SuprSend CLI](https://docs.suprsend.com/reference/cli-workflow-disable.md): Use the suprsend workflow disable command to mark a SuprSend workflow as inactive so it stops executing when triggered, without deleting its configuration. ### Template - [Commands and Flags](https://docs.suprsend.com/reference/cli-template-overview.md): Overview of suprsend template CLI commands to list, get, pull, push, and commit notification templates and their channel variants between workspaces. - [List Template](https://docs.suprsend.com/reference/cli-template-list.md): List notification templates in a SuprSend workspace with name, slug, status, enabled channels, and last updated timestamp using the template list command. - [Get Template](https://docs.suprsend.com/reference/cli-template-get.md): Retrieve a notification template by slug from a SuprSend workspace with all channel variants, targeting conditions, and mock data for draft or live. - [Pull Template](https://docs.suprsend.com/reference/cli-template-pull.md): Pull notification templates and all channel variants from a SuprSend workspace into local files you can edit and push back using the template pull command. - [Push Template](https://docs.suprsend.com/reference/cli-template-push.md): Push locally edited notification template files and all channel variants to a SuprSend workspace as draft or commit them live in one step. - [Commit Template](https://docs.suprsend.com/reference/cli-template-commit.md): Commit a notification template's draft to live in a SuprSend workspace using the suprsend template commit CLI command with the template slug argument. ### Schema - [Commands and Flags](https://docs.suprsend.com/reference/cli-schema-overview.md): Overview of suprsend schema CLI commands to list, get, pull, push, and commit trigger payload schemas that validate workflow and event payloads. - [List Schema](https://docs.suprsend.com/reference/cli-schema-list.md): List trigger payload schemas in a SuprSend workspace with pagination, returning slug, name, and version for draft or live mode via the schema list command. - [Get Schema](https://docs.suprsend.com/reference/cli-schema-get.md): Retrieve a single trigger payload schema by slug from a SuprSend workspace, returning JSON Schema type, properties, and validation rules for draft or live. - [Pull Schema](https://docs.suprsend.com/reference/cli-schema-pull.md): Download trigger payload schema definitions from a SuprSend workspace into local JSON files, one per slug, using the suprsend schema pull command. - [Push Schema](https://docs.suprsend.com/reference/cli-schema-push.md): Upload local trigger payload schema JSON files to a SuprSend workspace and optionally commit them live using the suprsend schema push command. - [Commit Schema](https://docs.suprsend.com/reference/cli-schema-commit.md): Promote a trigger payload schema from draft to live in a SuprSend workspace using the suprsend schema commit command with a schema slug argument. - [Generate Types](https://docs.suprsend.com/reference/cli-schema-generate-types.md): Generate typed code from trigger payload JSON schemas for TypeScript, Go, Python, Java, Kotlin, or Swift using the suprsend generate-types command. ### Event - [Commands and Flags](https://docs.suprsend.com/reference/cli-event-overview.md): Learn the suprsend event CLI commands and flags for managing events, including list, get, push, and pull for event definitions and schema mappings. - [List Event](https://docs.suprsend.com/reference/cli-event-list.md): Use the suprsend event list CLI command to view all events in a workspace with pagination, including event names and linked schema information. - [Get Event](https://docs.suprsend.com/reference/cli-event-get.md): Use the suprsend event get CLI command to retrieve all events and their schema mappings from a workspace, including names, descriptions, and payloads. - [Pull Event](https://docs.suprsend.com/reference/cli-event-pull.md): Use the suprsend event pull CLI command to download event definitions and the event schema mapping file from your workspace to a local directory. - [Push Event](https://docs.suprsend.com/reference/cli-event-push.md): Push event-to-schema mappings from a local event_schema_mapping.json file to a SuprSend workspace using the suprsend event push CLI command. ### Preference Category - [Commands and Flags](https://docs.suprsend.com/reference/cli-category-overview.md): Learn the suprsend category CLI commands and flags for managing preference categories, including list, get, pull, push, and commit operations. - [List Category](https://docs.suprsend.com/reference/cli-category-list.md): Use the suprsend category list CLI command to view preference categories in a workspace as a flat table with root, section, and channel details. - [Get Category](https://docs.suprsend.com/reference/cli-category-get.md): Use the suprsend category get CLI command to retrieve preference categories and their translations from a workspace in draft or live mode. - [Pull Category](https://docs.suprsend.com/reference/cli-category-pull.md): Use the suprsend category pull CLI command to download preference categories and their locale translation files from your workspace to local JSON. - [Push Category](https://docs.suprsend.com/reference/cli-category-push.md): Use the suprsend category push CLI command to upload local preference categories and translation files to your workspace, with optional commit control. - [Commit Category](https://docs.suprsend.com/reference/cli-category-commit.md): Use the suprsend category commit CLI command to promote preference categories and translation files from draft to live mode in your workspace. - [List Preference Translation](https://docs.suprsend.com/reference/cli-category-translation-list.md): Use the suprsend category translation list CLI command to view available locale codes that have preference category translations configured in a workspace. - [Pull Preference Translation](https://docs.suprsend.com/reference/cli-category-translation-pull.md): Use the suprsend category translation pull CLI command to download preference category translation JSON files for each locale from your workspace. - [Push Preference Translation](https://docs.suprsend.com/reference/cli-category-translation-push.md): Use the suprsend category translation push CLI command to upload locale JSON files for preference categories to your workspace, one locale or all at once. ### Translation - [Commands and Flags](https://docs.suprsend.com/reference/cli-translation-overview.md): Overview of suprsend translation CLI commands to list, get, pull, push, and commit template translations for multilingual notification localization. - [List Translation](https://docs.suprsend.com/reference/cli-translation-list.md): List template translation files in a SuprSend workspace with file names, locale metadata, and optional content for draft or live mode via translation list. - [Get Translation](https://docs.suprsend.com/reference/cli-translation-get.md): Retrieve all template translation content keyed by locale code from a SuprSend workspace for draft or live mode using the translation get command. - [Pull Translation](https://docs.suprsend.com/reference/cli-translation-pull.md): Download template translation files from a SuprSend workspace into local JSON files, one per locale, using the suprsend translation pull CLI command. - [Push Translation](https://docs.suprsend.com/reference/cli-translation-push.md): Upload local template translation JSON files to a SuprSend workspace and optionally commit them live using the suprsend translation push command. - [Commit Translation](https://docs.suprsend.com/reference/cli-translation-commit.md): Promote template translation changes from draft to live across a SuprSend workspace using the suprsend translation commit CLI command for localization. ## Build with AI ### Build with AI - [Build with AI](https://docs.suprsend.com/reference/build-with-ai.md): Explore SuprSend AI-native interfaces including the MCP server, Agent SDK, and Agent Skills to build, manage, and trigger notifications without boilerplate. - [Agent](https://docs.suprsend.com/reference/agent.md): Use SuprSend Agent in the dashboard to query your workspace, draft workflows, and debug notification delivery using a plain English chat interface. - [Slack Agent](https://docs.suprsend.com/reference/slack-agent.md): Manage SuprSend users, workflows, preferences, and analytics from Slack DMs and channels with a Privacy Filter that keeps PII out of shared rooms. - [Agent Plugin](https://docs.suprsend.com/reference/agent-plugin.md): Install the SuprSend agent plugin once to enable Claude Code, VS Code Copilot, and GitHub Copilot CLI with the bundled MCP server, CLI access, and agent skills. ### MCP - [MCP Server](https://docs.suprsend.com/reference/mcp-overview.md): Connect SuprSend workflows, users, tenants, and preferences to Cursor, Claude, Windsurf, or any AI agent through the Model Context Protocol server. - [Quickstart: Cursor](https://docs.suprsend.com/reference/mcp-quickstart-cursor.md): Connect the SuprSend MCP server to Cursor with a service token and npx-based configuration so your AI editor can manage workflows and users. - [Quickstart: Claude](https://docs.suprsend.com/reference/mcp-quickstart-claude.md): Connect the SuprSend MCP server to Claude Code in your terminal or to Claude Desktop, with step-by-step setup, service tokens, and configuration. - [Quickstart: Windsurf](https://docs.suprsend.com/reference/mcp-quickstart-windsurf.md): Connect the SuprSend MCP server to Windsurf with a service token and npx configuration so the AI editor can drive workflows, users, and templates. - [Tool List](https://docs.suprsend.com/reference/mcp-tool-list.md): Browse every tool exposed by the SuprSend MCP server, grouped by category, covering users, workflows, tenants, templates, preferences, and docs. - [Prompt Cheatsheet](https://docs.suprsend.com/reference/mcp-prompts.md): Copy-paste prompt cheatsheet for SuprSend tasks like creating workflows, managing users, and sending notifications from any MCP-connected AI client. #### Example Apps - [Task Management React App](https://docs.suprsend.com/reference/mcp-example-task-management-app.md): Build a Kanban task management board with React, Vite, OTP login, and SuprSend inbox and preference center using ready-made AI prompts. - [Status Page React App](https://docs.suprsend.com/reference/mcp-example-status-page-app.md): Build a status page app with React, Vite, and SuprSend subscriptions using ready-made AI prompts to scaffold UI, categories, and notifications. ### Agent Skills - [Agent Skills](https://docs.suprsend.com/reference/agent-skills.md): Equip your AI coding agent with SuprSend Agent Skills covering workflow schemas, template variants, CLI flags, and live docs for accurate code output. - [Quickstart](https://docs.suprsend.com/reference/agent-skill-quickstart.md): Install SuprSend Agent Skills and ship an AI-generated cart abandonment workflow to your workspace in under five minutes using this quickstart guide. - [suprsend-workflow-schema](https://docs.suprsend.com/reference/agent-skill-workflow-schema.md): Generate valid SuprSend workflow JSON from plain English. This skill teaches your AI agent every workflow node, field, and validation rule. - [suprsend-template-schema](https://docs.suprsend.com/reference/agent-skill-template-schema.md): Teach your AI agent the SuprSend template variant envelope, per-channel content schemas, and Handlebars and JSONNET syntax for all nine channels. - [suprsend-cli](https://docs.suprsend.com/reference/agent-skill-cli.md): Load the suprsend-cli skill so your AI agent runs SuprSend CLI commands correctly, with the right flags for push, pull, sync, and workspace tasks. - [suprsend-docs-support](https://docs.suprsend.com/reference/agent-skill-docs-support.md): Use the docs-support skill to give your AI agent live SuprSend documentation access and the right support channels for accurate answers and escalation. ### Agent SDK - [Agent SDK](https://docs.suprsend.com/reference/agent-sdk.md): Use the Agent SDK to let AI agents in production trigger SuprSend workflows as schema-safe, governed tools across email, SMS, and push channels. - [Developer Resources (104 pages)](https://docs.suprsend.com/_llms/developer-resources.md): Documentation for Developer Resources. ## Self-Hosted ### Getting Started - [Introduction](https://docs.suprsend.com/docs/self-hosted/introduction.md): Deploy SuprSend on your own infrastructure to gain full control over data, networking, and scaling - while maintaining the same feature set as SuprSend Cloud. - [Quick Start](https://docs.suprsend.com/docs/self-hosted/getting-started.md): Deploy SuprSend self-hosted on your infrastructure with this quick start covering PostgreSQL, Redis, dependencies, Helm install, and post-setup checks. ### Installation - [List of Dependencies](https://docs.suprsend.com/docs/self-hosted/list-of-dependencies.md): Review the Kubernetes, PostgreSQL, Redis, NATS, ClickHouse, and storage dependencies you need before deploying SuprSend self-hosted in production. - [Generating Required Keys](https://docs.suprsend.com/docs/self-hosted/generating-required-keys.md): Generate the deployment secret, NATS NKey pair, and AES cipher keys needed to install SuprSend self-hosted with secure component-to-component encryption. - [SuprSend Installation Guide](https://docs.suprsend.com/docs/self-hosted/suprsend-installation-guide.md): Install SuprSend on Kubernetes with Helm using a ready-to-edit values.yaml, plus commands for upgrades, rollbacks, and troubleshooting your deployment. - [Setting up Ingress](https://docs.suprsend.com/docs/self-hosted/setting-up-ingress.md): Expose SuprSend APIs and dashboard to the internet by installing the Nginx Ingress Controller on Kubernetes with TLS certificates and routing rules. - [WorkOS Integration (SSO)](https://docs.suprsend.com/docs/self-hosted/workos-integration.md): Configure WorkOS AuthKit for enterprise SSO, SAML, and magic-link login on self-hosted SuprSend - secrets, Helm values, webhooks, and troubleshooting. #### Setup Dependencies - [PostgreSQL Setup Guide](https://docs.suprsend.com/docs/self-hosted/setup-dependencies/postgres.md): Provision, configure, and validate PostgreSQL v17+ for SuprSend self-hosted deployments using managed services, VMs, or Kubernetes with HA and backups. - [Redis Setup Guide](https://docs.suprsend.com/docs/self-hosted/setup-dependencies/redis.md): Provision the two Redis-compatible key-value stores SuprSend self-hosted needs, covering HA setup, Kubernetes or VM installs, tuning, and backups. - [ClickHouse Setup Guide](https://docs.suprsend.com/docs/self-hosted/setup-dependencies/clickhouse.md): Deploy a production ClickHouse cluster on Kubernetes using the Altinity operator with persistence, connectivity tests, and tuning for SuprSend analytics. - [OpenSearch Setup Guide](https://docs.suprsend.com/docs/self-hosted/setup-dependencies/opensearch.md): Set up OpenSearch on Kubernetes for SuprSend self-hosted, powering inbox search, analytics, and observability with managed or self-managed clusters. - [Temporal Setup Guide](https://docs.suprsend.com/docs/self-hosted/setup-dependencies/temporal.md): Install Temporal as the workflow execution engine for SuprSend self-hosted, covering cluster setup, configuration, scaling, and operational best practices. - [Blob Store Configuration Guide](https://docs.suprsend.com/docs/self-hosted/setup-dependencies/blob-store.md): Configure private and public object storage buckets on AWS S3, Azure Blob, or Google Cloud Storage for your SuprSend self-hosted deployment assets. ### Post-Installation - [Monitoring SuprSend](https://docs.suprsend.com/docs/self-hosted/monitoring-suprsend.md): Set up Prometheus, Grafana, and Loki on Kubernetes to monitor metrics, dashboards, and logs for your self-hosted SuprSend deployment across services. ### CLI & Automation - [Setting Up CLI Access](https://docs.suprsend.com/docs/self-hosted/cli-profiles.md): Configure the SuprSend CLI to connect to your self-hosted or BYOC deployment by setting up profiles with custom API endpoints and authentication tokens. ### Updates and Versioning - [Changelog](https://docs.suprsend.com/docs/self-hosted/changelog.md): Track SuprSend self-hosted release notes including Helm chart updates, new features, security patches, bug fixes, and upgrade instructions per version. ## Changelog ### Changelog - [Product Updates](https://docs.suprsend.com/changelog/overview.md): Track SuprSend product updates, new feature releases, platform improvements, and bug fixes shipped across the notification infrastructure each month. ## Other - [Amazon S3](https://docs.suprsend.com/docs/amazon_s3.md): Export SuprSend notification data and message templates to your Amazon S3 bucket as parquet and JSON files for warehousing, analytics, and long term storage. - [Versioning and Support Policy](https://docs.suprsend.com/docs/developer/sdk-versioning-policy.md): Understand SuprSend SDK versioning under SemVer, deprecation timelines and the support windows for major, minor and patch server SDK releases. - [Native Push Setup](https://docs.suprsend.com/docs/expo-push-setup.md): Set up APNs credentials on iOS and FCM with google-services.json on Android to enable native push notifications in your SuprSend Expo SDK app. - [MCP Quickstart](https://docs.suprsend.com/reference/mcp-quickstart.md): Set up the SuprSend MCP server in minutes with service token authentication and npx CLI config so AI assistants can call SuprSend tools directly. ## OpenAPI Specs - [openapi](/openapi.yaml) ## Optional - [Community](https://join.slack.com/t/suprsendcommunity/shared_invite/zt-3932rw936-XNWY1RC8bsffh4if4ZyoXQ) - [Trust Center](https://trust.suprsend.com) - [Platform Status](https://status.suprsend.com) - [Postman Collection](https://www.postman.com/suprsend/suprsend/collection/16bdmwa/suprsend-apis) > The links below point to documentation indexes. Follow each `/_llms/` index recursively until you reach documentation pages. ## Indexes - [Documentation (161 pages)](https://docs.suprsend.com/_llms/documentation.md): Documentation for Documentation. - [Developer Resources (104 pages)](https://docs.suprsend.com/_llms/developer-resources.md): Documentation for Developer Resources.