# Notifuse Documentation - [Welcome to Notifuse](https://docs.notifuse.com/index.md): Notifuse is a modern emailing platform for businesses that want complete control over their email infrastructure. Whether you're sending marketing campaigns, transactional emails, or building notification systems, Notifuse provides the tools and flexibility you need. - [Workspaces](https://docs.notifuse.com/features/workspaces.md): Workspaces are the foundational organizational unit in Notifuse. They provide a complete, isolated environment for managing your email marketing operations, making it easy to separate different projects, clients, or business units. - [Contacts](https://docs.notifuse.com/features/contacts.md): Contacts are the foundation of your email marketing efforts in Notifuse. They represent your subscribers, customers, and prospects, complete with detailed profiles, custom fields, and engagement history. - [Lists](https://docs.notifuse.com/features/lists.md): Lists in Notifuse are organized collections of contacts that allow you to segment your audience and send targeted email campaigns. They provide the foundation for effective email marketing by enabling precise audience targeting and personalized messaging. - [Templates](https://docs.notifuse.com/features/templates.md): Templates in Notifuse are the foundation of your email design system. They provide reusable, responsive email layouts that can be personalized with dynamic content using Liquid templating and built with MJML components for perfect cross-client compatibility. - [Broadcast campaigns](https://docs.notifuse.com/features/broadcast-campaigns.md): Broadcast campaigns in Notifuse are mass email marketing initiatives that allow you to send targeted messages to a contact list. They provide powerful features for audience targeting with segment filters, A/B testing, UTM tracking, and flexible scheduling options to deliver the right message to the… - [Transactional API](https://docs.notifuse.com/features/transactional-api.md): The Transactional API enables you to send event-driven emails directly from your application. Unlike broadcast campaigns, transactional emails are sent individually to specific contacts in real-time with automatic contact management, making them perfect for user-triggered notifications and automated… - [Custom Events & Goals](https://docs.notifuse.com/features/custom-events.md): Track user behavior and conversion goals to build RFM segments and enrich contact timelines. - [Setup](https://docs.notifuse.com/web-analytics/setup.md): Install the tracking snippet and configure cookieless website analytics for your workspace. - [Reports](https://docs.notifuse.com/web-analytics/reports.md): Read the dashboard, explore any dimension, and watch traffic arrive live. - [Goals](https://docs.notifuse.com/web-analytics/goals.md): Record conversions from your website and use them in segments and automations. - [Attribution](https://docs.notifuse.com/web-analytics/attribution.md): Classify traffic into channels with rules you control, and rewrite history when you change them. - [Identifying Visitors](https://docs.notifuse.com/web-analytics/identifying-visitors.md): Tie a website visit to a contact, and use browsing behaviour in segments. - [Annotations](https://docs.notifuse.com/web-analytics/annotations.md): Mark the moments that explain a chart — a launch, a campaign, an outage. - [Analytics Assistant](https://docs.notifuse.com/web-analytics/ai-assistant.md): Ask questions about your traffic, get a written summary of a period, and let the assistant drive the dashboard. - [Automations](https://docs.notifuse.com/features/automations.md): Create automated workflows that trigger based on contact behavior and events - [Setup](https://docs.notifuse.com/blog/setup.md): Enable and configure the blog feature for your workspace. - [Theme](https://docs.notifuse.com/blog/theme.md): Customize your blog appearance with Liquid templates. - [Blog Posts](https://docs.notifuse.com/blog/posts.md): Create and manage blog posts with categories, scheduling, and SEO. - [AI Assistant](https://docs.notifuse.com/features/ai-assistant.md): One assistant across the email builder, the blog editor and Web Analytics — writing content, editing templates, and answering questions about your traffic. - [File Manager](https://docs.notifuse.com/features/file-manager.md): The file manager connects to your S3-compatible bucket to store and serve files and images used in your email templates. You can optionally configure a CDN endpoint to customize S3 URLs for better performance. - [Webhooks](https://docs.notifuse.com/features/webhooks.md): Receive real-time HTTP callbacks when events occur in your workspace. - [Logs](https://docs.notifuse.com/features/logs.md): Real-time logs for monitoring email delivery and debugging email provider issues. Track message events and webhook data with advanced filtering capabilities. - [Admins & API Keys](https://docs.notifuse.com/features/admins-api-keys.md): Invite admins and create API keys scoped to exactly the parts of your workspace they need. Choose the permissions a key carries, change them at any time, and understand what each permission really allows. - [Notification Center](https://docs.notifuse.com/features/notification-center.md): The Notification Center is a mobile-first interface that Notifuse automatically renders when users click on unsubscribe links in newsletters. It provides a seamless experience for contacts to manage their email subscription preferences across all public lists. - [Newsletter Form Input](https://docs.notifuse.com/tutorials/newsletter-form-input.md): This tutorial will guide you through creating a newsletter subscription form and integrating it with Notifuse to collect and manage subscriber contacts - [Anthropic](https://docs.notifuse.com/integrations/anthropic.md): Configure Anthropic Claude AI to power blog content creation and email generation in Notifuse. - [OpenAI](https://docs.notifuse.com/integrations/openai.md): Configure OpenAI to power blog content creation and email generation in Notifuse. - [Google Gemini](https://docs.notifuse.com/integrations/gemini.md): Configure Google Gemini to power blog content creation and email generation in Notifuse. - [Firecrawl](https://docs.notifuse.com/integrations/firecrawl.md): Configure Firecrawl to give the AI agent web access for research and content generation. - [Supabase](https://docs.notifuse.com/integrations/supabase.md): Integrate Supabase Auth with Notifuse for authentication emails and user sync. - [Zapier](https://docs.notifuse.com/integrations/zapier.md): Connect Notifuse to Zapier: send your transactional emails from any app, trigger Zaps from contact, list and segment events, and add or subscribe contacts. - [Mailgun](https://docs.notifuse.com/integrations/mailgun.md): Configure Mailgun as your email provider in Notifuse. - [Amazon SES](https://docs.notifuse.com/integrations/amazon-ses.md): Configure Amazon SES as your email provider in Notifuse. - [Postmark](https://docs.notifuse.com/integrations/postmark.md): Configure Postmark as your email provider in Notifuse. - [SendGrid](https://docs.notifuse.com/integrations/sendgrid.md): Configure SendGrid as your email provider in Notifuse. - [SparkPost](https://docs.notifuse.com/integrations/sparkpost.md): Configure SparkPost as your email provider in Notifuse. - [Mailjet](https://docs.notifuse.com/integrations/mailjet.md): Configure Mailjet as your email provider in Notifuse. - [SMTP](https://docs.notifuse.com/integrations/smtp.md): Configure SMTP as your email provider in Notifuse with Basic Auth or OAuth2. - [Self-hosted Installation](https://docs.notifuse.com/self-hosting/installation.md): How to self-host Notifuse - [Licence keys](https://docs.notifuse.com/self-hosting/licence.md): Self-hosting Notifuse is free. Five capabilities need a licence key. This page says which, what a key costs, how to install one, and what happens without it. - [Single Sign-On (OIDC)](https://docs.notifuse.com/self-hosting/sso.md): Let users sign in to Notifuse with your identity provider (Google Workspace, Keycloak, Okta, …) using OpenID Connect, alongside magic-code login. - [Root user programmatic signin](https://docs.notifuse.com/api-reference/authentication/root-user-programmatic-signin.md): Authenticates the root user using HMAC signature for programmatic access. This endpoint is designed for automation scenarios like Infrastructure-as-Code deployments, CI/CD pipelines, and automated testing where magic link authentication is impractical. - [Send a transactional notification](https://docs.notifuse.com/api-reference/send-a-transactional-notification.md): Sends a transactional notification to a contact through specified channels. Requires authentication. - [List contacts with filtering and pagination](https://docs.notifuse.com/api-reference/list-contacts-with-filtering-and-pagination.md): Retrieves a paginated list of contacts with optional filtering. All contact fields are always returned. - [Count contacts in a workspace](https://docs.notifuse.com/api-reference/count-contacts-in-a-workspace.md): Returns the total number of contacts in a workspace. - [Create or update a contact](https://docs.notifuse.com/api-reference/create-or-update-a-contact.md): Creates a new contact or updates an existing one. Contacts are matched **by email address only** — the email is the contact's unique identifier. `external_id` is stored but never used for matching, so sending an existing `external_id` with a new email address creates a second contact. - [Get a contact by email address](https://docs.notifuse.com/api-reference/get-a-contact-by-email-address.md): Retrieves a contact by their email address within a specific workspace. The response always includes the contact's list subscriptions with their status (active, pending, unsubscribed, bounced, complained). - [Get a contact by external ID](https://docs.notifuse.com/api-reference/get-a-contact-by-external-id.md): Retrieves a contact by their external ID within a specific workspace. The response always includes the contact's list subscriptions with their status (active, pending, unsubscribed, bounced, complained). - [Batch import contacts](https://docs.notifuse.com/api-reference/batch-import-contacts.md): Creates or updates multiple contacts in a single batch operation. This is significantly more efficient than individual upsert operations. Optionally subscribes all contacts to specified lists. - [Delete a contact](https://docs.notifuse.com/api-reference/delete-a-contact.md): Deletes a contact from the workspace by email address. This action is permanent and cannot be undone. - [Update contact list subscription status](https://docs.notifuse.com/api-reference/update-contact-list-subscription-status.md): Updates the subscription status of a contact in a specific list. Can set status to active, pending, unsubscribed, bounced, or complained. - [Subscribe to email lists](https://docs.notifuse.com/api-reference/subscribe-to-email-lists.md): Subscribe a contact to one or more email lists. This is a public endpoint that doesn't require authentication. - [Subscribe to email lists (authenticated)](https://docs.notifuse.com/api-reference/subscribe-to-email-lists-authenticated.md): Subscribe a contact to one or more email lists. This is an authenticated endpoint that requires a bearer token. - [Import custom events](https://docs.notifuse.com/api-reference/import-custom-events.md): Imports multiple custom events in a single batch operation. Maximum 50 events per request. Auto-creates contacts if they don't exist. - [Ingest a web analytics beat](https://docs.notifuse.com/api-reference/web-analytics/ingest-a-web-analytics-beat.md): Public collect endpoint used by the Notifuse Analytics browser SDK. Each beat carries the full cumulative session state (all pageviews and goals), so the server can rebuild the session from any single payload. Beats are typically sent as text/plain to avoid CORS preflights; the body is JSON regardle… - [Replace the workspace's web analytics settings](https://docs.notifuse.com/api-reference/web-analytics/replace-the-workspaces-web-analytics-settings.md): Gated by the web_analytics write permission (like blog settings, members manage the feature without workspace write access). The attribution filters version is recomputed server-side. Passing null settings clears the configuration. - [Start an attribution backfill](https://docs.notifuse.com/api-reference/web-analytics/start-an-attribution-backfill.md): Rewrites historical web_sessions and web_goals rows with the current attribution rules, one monthly partition per step. Fails while a run is already pending or running. - [Get the latest backfill run](https://docs.notifuse.com/api-reference/web-analytics/get-the-latest-backfill-run.md) - [Cancel the in-flight backfill run](https://docs.notifuse.com/api-reference/web-analytics/cancel-the-in-flight-backfill-run.md) - [List annotations](https://docs.notifuse.com/api-reference/web-analytics/list-annotations.md): Returns the workspace's annotations, most recent moment first. Every filter is optional; with none the most recent 100 rows come back. - [Get an annotation](https://docs.notifuse.com/api-reference/web-analytics/get-an-annotation.md): Retrieves a single annotation by ID. Requires the web_analytics read permission. - [Create an annotation](https://docs.notifuse.com/api-reference/web-analytics/create-an-annotation.md): Creates a manual annotation. Requires the web_analytics write permission. - [Update an annotation](https://docs.notifuse.com/api-reference/web-analytics/update-an-annotation.md): Edits an annotation's moment, timezone and presentation. Requires the web_analytics write permission. - [Delete an annotation](https://docs.notifuse.com/api-reference/web-analytics/delete-an-annotation.md): Deletes an annotation, automatic ones included — a broadcast annotation cannot come back by accident, since its broadcast has already started. Requires the web_analytics write permission. - [List broadcasts](https://docs.notifuse.com/api-reference/list-broadcasts.md): Retrieves a list of broadcasts with pagination and optional filtering by status. Supports fetching template details for each variation. - [Get a broadcast](https://docs.notifuse.com/api-reference/get-a-broadcast.md): Retrieves a single broadcast by ID. Optionally includes template details for each variation. - [Create a broadcast](https://docs.notifuse.com/api-reference/create-a-broadcast.md): Creates a new broadcast campaign in draft status. - [Update a broadcast](https://docs.notifuse.com/api-reference/update-a-broadcast.md): Updates an existing broadcast. Only broadcasts in draft, scheduled, or paused status can be updated. - [Schedule a broadcast](https://docs.notifuse.com/api-reference/schedule-a-broadcast.md): Schedules a broadcast for sending either immediately or at a specified time. This endpoint is restricted in demo mode. - [Pause a broadcast](https://docs.notifuse.com/api-reference/pause-a-broadcast.md): Pauses a broadcast that is currently sending. - [Resume a broadcast](https://docs.notifuse.com/api-reference/resume-a-broadcast.md): Resumes a paused broadcast. - [Cancel a broadcast](https://docs.notifuse.com/api-reference/cancel-a-broadcast.md): Cancels a scheduled broadcast. - [Send broadcast to individual](https://docs.notifuse.com/api-reference/send-broadcast-to-individual.md): Sends a broadcast to a single recipient for testing purposes. Optionally specify which template variation to send. - [Delete a broadcast](https://docs.notifuse.com/api-reference/delete-a-broadcast.md): Deletes a broadcast. This action is permanent and cannot be undone. - [Get A/B test results](https://docs.notifuse.com/api-reference/get-ab-test-results.md): Retrieves the performance metrics for all variations in an A/B test broadcast. - [Select winning A/B test variation](https://docs.notifuse.com/api-reference/select-winning-ab-test-variation.md): Manually selects the winning variation for an A/B test broadcast. The winning variation will be sent to the remaining audience. This endpoint is restricted in demo mode. - [List templates](https://docs.notifuse.com/api-reference/list-templates.md): Retrieves a list of all templates in the workspace. Supports optional filtering by category and channel. - [Get a template](https://docs.notifuse.com/api-reference/get-a-template.md): Retrieves a single template by ID. Optionally specify a version number to retrieve a specific version. - [Create a template](https://docs.notifuse.com/api-reference/create-a-template.md): Creates a new template. Each template must have a channel (email or web) with corresponding channel-specific content. - [Update a template](https://docs.notifuse.com/api-reference/update-a-template.md): Updates an existing template. Creates a new version of the template. - [Delete a template](https://docs.notifuse.com/api-reference/delete-a-template.md): Soft-deletes a template. The template will be marked as deleted but not removed from the database. - [Compile template](https://docs.notifuse.com/api-reference/compile-template.md): Compiles an MJML template with provided data, returning the rendered HTML. When `subject` and/or `subject_preview` are provided, they are rendered through the same Liquid engine used at send time and returned alongside the HTML so callers do not need to run a separate Liquid pass to preview the subj… - [Create a webhook subscription](https://docs.notifuse.com/api-reference/create-a-webhook-subscription.md): Creates a new webhook subscription to receive HTTP callbacks when specified events occur in the workspace. - [List webhook subscriptions](https://docs.notifuse.com/api-reference/list-webhook-subscriptions.md): Returns all webhook subscriptions for the specified workspace. - [Get a webhook subscription](https://docs.notifuse.com/api-reference/get-a-webhook-subscription.md): Retrieves a specific webhook subscription by ID. - [Update a webhook subscription](https://docs.notifuse.com/api-reference/update-a-webhook-subscription.md): Updates an existing webhook subscription with new configuration. - [Delete a webhook subscription](https://docs.notifuse.com/api-reference/delete-a-webhook-subscription.md): Permanently deletes a webhook subscription. This action cannot be undone. - [Toggle webhook subscription enabled state](https://docs.notifuse.com/api-reference/toggle-webhook-subscription-enabled-state.md): Enables or disables a webhook subscription. Disabled subscriptions will not receive events. - [Regenerate webhook secret](https://docs.notifuse.com/api-reference/regenerate-webhook-secret.md): Generates a new signing secret for the webhook subscription. The old secret will immediately become invalid. - [Get webhook delivery history](https://docs.notifuse.com/api-reference/get-webhook-delivery-history.md): Returns the delivery history for a webhook subscription, including status and response information. - [Send a test webhook](https://docs.notifuse.com/api-reference/send-a-test-webhook.md): Sends a test webhook to the subscription's URL to verify connectivity and configuration. - [List available event types](https://docs.notifuse.com/api-reference/list-available-event-types.md): Returns a list of all available webhook event types that can be subscribed to. ## OpenAPI Specs - [openapi](/openapi.json) ## Optional - [Cloud](https://cloud.notifuse.com)