# Loops > Documentation for Loops, the email platform for software companies. ## Docs - [Change your login email](https://loops.so/docs/account/changing-your-email.md): How to update the email address you use to log in to Loops. - [Free plan](https://loops.so/docs/account/free-plan.md): Learn what's included in the Loops Free plan: contact and send limits, branding, and how to upgrade when you're ready. - [Notifications](https://loops.so/docs/account/notifications.md): Learn how to receive notifications about new Loops contacts in external tools. - [Team members](https://loops.so/docs/account/team-members.md): How to add and manage team members in your Loops account. - [Team switcher](https://loops.so/docs/account/team-switcher.md): Learn how to create and connect multiple Loops accounts with one email address. - [CSV Upload](https://loops.so/docs/add-users/csv-upload.md): Easily add contacts to Loops by uploading a CSV file. - [Add contacts via integrations](https://loops.so/docs/add-users/integrations.md): Connect Loops to external platforms to automatically add contacts to your audience. - [Add and update contacts with the Loops API](https://loops.so/docs/add-users/loops-api.md): Loops provides a REST API to manage your contacts. - [API key](https://loops.so/docs/api-reference/api-key.md): Test that an API key is valid. - [API Changelog](https://loops.so/docs/api-reference/changelog.md): Stay up-to-date with changes to our API and webhooks. - [Check contact suppression status](https://loops.so/docs/api-reference/check-contact-suppression.md): Check if a contact is suppressed by email address or user ID. - [Create contact](https://loops.so/docs/api-reference/create-contact.md): Create a new contact with an email address and any other contact properties. - [Create contact property](https://loops.so/docs/api-reference/create-contact-property.md): Create a new contact property. - [List dedicated sending IP addresses](https://loops.so/docs/api-reference/dedicated-sending-ips.md): Retrieve a list of Loops' dedicated sending IP addresses. - [Delete contact](https://loops.so/docs/api-reference/delete-contact.md): Delete a contact by email address or user ID. - [API Examples](https://loops.so/docs/api-reference/examples.md): Code examples of how to use the Loops API and SDKs. - [Contacts API examples](https://loops.so/docs/api-reference/examples/contacts.md): Copy/paste code examples for managing contacts with the Loops API and SDKs, including create, update, find, and delete requests with sample payloads. - [Events API examples](https://loops.so/docs/api-reference/examples/events.md): Copy/paste code examples for sending events to Loops via API and SDKs to trigger workflows and attach event properties, with sample payloads. - [Transactional email API examples](https://loops.so/docs/api-reference/examples/transactional-emails.md): Copy/paste code examples for sending transactional email with Loops via API and SDKs, including data variables, attachments, and error handling. - [Find contact](https://loops.so/docs/api-reference/find-contact.md): Find a contact by email address or user ID. - [API Introduction](https://loops.so/docs/api-reference/intro.md): Use the Loops REST API to manage contacts, send events, and send transactional email. Learn authentication, rate limits, and request/response examples. - [List contact properties](https://loops.so/docs/api-reference/list-contact-properties.md): Retrieve a list of your account's contact properties. - [List mailing lists](https://loops.so/docs/api-reference/list-mailing-lists.md): Retrieve a list of your account's mailing lists. - [List transactional emails](https://loops.so/docs/api-reference/list-transactional-emails.md): Retrieve a list of your transactional emails. - [Remove suppression for a contact](https://loops.so/docs/api-reference/remove-contact-suppression.md): Remove suppression for a contact by email address or user ID. - [Send event](https://loops.so/docs/api-reference/send-event.md): Send events to trigger workflows. - [Send transactional email](https://loops.so/docs/api-reference/send-transactional-email.md): Send a transactional email to a contact. - [Update contact](https://loops.so/docs/api-reference/update-contact.md): Update or create a contact. - [CLI Introduction](https://loops.so/docs/cli.md): The official command-line interface for Loops. Manage contacts, send events, and deliver transactional emails from your terminal. - [Auth](https://loops.so/docs/cli/auth.md): Log in, switch teams, and manage stored API keys. - [Completion](https://loops.so/docs/cli/completion.md): Set up shell autocompletion for the Loops CLI. - [Contact properties](https://loops.so/docs/cli/contact-properties.md): Create and list contact properties. - [Contacts](https://loops.so/docs/cli/contacts.md): Create, update, find, and delete contacts, and manage suppression. - [Events](https://loops.so/docs/cli/events.md): Send events to trigger automations. - [Lists](https://loops.so/docs/cli/lists.md): View your mailing lists. - [Transactional](https://loops.so/docs/cli/transactional.md): Send and manage transactional emails. - [Contact activity timeline](https://loops.so/docs/contacts/contact-activity.md): The contact activity timeline is a great way to see all the activity for a specific contact. - [Delete contacts](https://loops.so/docs/contacts/delete-contacts.md): Remove contacts from your audience. - [Double opt-in](https://loops.so/docs/contacts/double-opt-in.md): Require and manage subscription confirmations for new contacts. - [Email blocklist](https://loops.so/docs/contacts/email-blocklist.md): Stop certain email addresses or domains from being added to your audience. - [Export contacts](https://loops.so/docs/contacts/export-contacts.md): Download CSVs of your contact data. - [Filters and Segments](https://loops.so/docs/contacts/filters-segments.md): How to send emails to specific groups of contacts and save segments for future use. - [List management](https://loops.so/docs/contacts/mailing-lists.md): Organise contacts and offer a subscriber preference center with mailing lists. - [Contact properties](https://loops.so/docs/contacts/properties.md): How to add, edit and delete contact properties. - [Contact suppression](https://loops.so/docs/contacts/suppression.md): Check suppression status and remove suppressions with the API. - [Components](https://loops.so/docs/creating-emails/components.md): Create reusable Loops components for your emails. - [Duplicating emails](https://loops.so/docs/creating-emails/duplicating-emails.md): Reuse basic elements of an email or create email templates. - [The editor](https://loops.so/docs/creating-emails/editor.md): Loops' email editor has writing mode, themes, dynamic personalization, reusable content blocks, keyboard/Markdown shortcuts and more. - [Arrays](https://loops.so/docs/creating-emails/editor/arrays.md): Arrays let you add repeatable content blocks to transactional emails, populated at send time via data variables. - [Buttons](https://loops.so/docs/creating-emails/editor/buttons.md): Add styled, clickable buttons to your Loops emails. - [Code blocks](https://loops.so/docs/creating-emails/editor/code-blocks.md): Add code blocks to your email - [Columns](https://loops.so/docs/creating-emails/editor/columns.md): Arrange email content side-by-side with layouts of 2 to 4 columns. - [Dividers](https://loops.so/docs/creating-emails/editor/dividers.md): Separate or group content in your Loops emails with dividers. - [Images](https://loops.so/docs/creating-emails/editor/images.md): Insert and link images in Loops emails, including dynamic images sourced from contact properties, event properties, or data variables. - [Links](https://loops.so/docs/creating-emails/editor/links.md): Add static and dynamic links to text, images, and buttons in your Loops emails. - [Markdown](https://loops.so/docs/creating-emails/editor/markdown.md): Write and format Loops email content with Markdown shortcuts for headings, lists, quotes, bold, and links. - [Sections](https://loops.so/docs/creating-emails/editor/sections.md): Group blocks into reusable sections to structure your email layout. - [Social icons](https://loops.so/docs/creating-emails/editor/social-icons.md): Add a row of social platform icons to your Loops email footer. - [Videos](https://loops.so/docs/creating-emails/editor/videos.md): Email clients do not widely support embedded video. Instead use an image or GIF. - [Font support](https://loops.so/docs/creating-emails/font-support.md): Font support via Google Fonts is now available in Loops. - [Guardian](https://loops.so/docs/creating-emails/guardian.md): Sending emails protected by Guardian. - [Personalizing emails](https://loops.so/docs/creating-emails/personalizing-emails.md): Add context and personalization to emails. - [Sending settings](https://loops.so/docs/creating-emails/sending-settings.md): Set sender name, from/reply, subject/preview, and CC/BCC for emails you send with Loops. - [Styling emails](https://loops.so/docs/creating-emails/styles.md): Learn how to edit emails in the Loops editor. - [Translating emails](https://loops.so/docs/creating-emails/translating-emails-with-ai.md): Loops provides an automated way to translate your emails. - [Uploading a custom email](https://loops.so/docs/creating-emails/uploading-custom-email.md): Use Loops with Emailify, Email Love or MJML. - [Using templates](https://loops.so/docs/creating-emails/using-templates.md): Use Loops templates to draft emails faster: choose a template, customize content, and reuse components. - [Add a sending avatar](https://loops.so/docs/deliverability/adding-a-sending-avatar.md): Set up your email sending avatar through third-party platforms like Gmail and Outlook. - [Sending emails to Apple “Hide my email” addresses](https://loops.so/docs/deliverability/apple-hide-my-email.md): Ensure Loops emails reach Apple Hide My Email addresses by registering your sending domain with Apple. - [DMARC and DKIM setup](https://loops.so/docs/deliverability/dmarc-dkim-setup.md): How SPF, DKIM, and DMARC work with Loops, what records you copy into DNS during domain setup, and how to progress your DMARC policy over time. - [Insights from Google Postmaster](https://loops.so/docs/deliverability/gaining-insights.md): Gmail doesn't report spam reports to Loops, so setting up Google Postmaster is key to getting an idea of your deliverability performance in Gmail. - [Improve your inbox placement](https://loops.so/docs/deliverability/improving-inbox-placement.md): If your emails are not landing in the inbox folder you expect, here are some tips to improve your inbox placement. - [Maintaining a clean list](https://loops.so/docs/deliverability/maintaining-a-clean-list.md): A clean list is a happy list. Here’s how to keep your list clean and your emails deliverable. - [Migrating domains](https://loops.so/docs/deliverability/migrating-domains.md): Switching to a new sending domain. - [Deliverability optimization](https://loops.so/docs/deliverability/optimization.md): How we monitor sends to increase the deliverability of your emails. - [Reducing product email bounce rate](https://loops.so/docs/deliverability/reducing-bounce-rate.md): How to reduce product email bounce rate: hard vs soft bounces, what Loops handles automatically, and the actions you can take when your rate is too high. - [Sending from multiple domains](https://loops.so/docs/deliverability/sending-from-multiple-domains.md): The pros and cons of sending from multiple domains and how to do so in Loops. - [Subdomains vs root domains](https://loops.so/docs/deliverability/sending-from-subdomain.md): Most email services (including Loops) prefer sending emails from subdomains (hey.company.com) over root domains (company.com). - [Building your sender reputation](https://loops.so/docs/deliverability/sending-reputation.md): Understanding how to build your sender reputation. - [Sending to large audiences](https://loops.so/docs/deliverability/sending-to-large-audience.md): Tips for sending emails to a large group of new contacts. - [Sending transactional emails to group inboxes](https://loops.so/docs/deliverability/transactional-group-inboxes.md): Learn how to ensure transactional emails can be delivered to your group inbox. - [Email open rates](https://loops.so/docs/deliverability/understanding-email-open-rates.md): Understand how open rates can be affected by clients and networks. - [Shortened YouTube links warning](https://loops.so/docs/deliverability/youtube-links-warning.md): Information about shortened YouTube links being flagged in Gmail. - [Events: trigger automated emails with Loops](https://loops.so/docs/events.md): Events let you trigger workflows and emails when something happens in an external platform. - [Event properties](https://loops.so/docs/events/properties.md): Learn how to use event properties to personalize your emails. - [Custom form](https://loops.so/docs/forms/custom-form.md): Integrate with Loops via a form endpoint, which will work with any type of custom form solution you have set up. - [Simple form](https://loops.so/docs/forms/simple-form.md): Collect signups from any web page with a customizable form. - [Recipe: Active 30-day users segment](https://loops.so/docs/guides/active-30-day-users.md): A reusable segment of contacts active in the last 30 days, ideal for warming a sender reputation and targeting engaged users with product updates. - [Send emails from Bolt.new](https://loops.so/docs/guides/bolt-emails.md): How to integrate Loops transactional emails into a Bolt application. - [Bubble API Connector](https://loops.so/docs/guides/bubble-api-connector.md): Send data to Loops from Bubble using the API Connector plugin. - [Recipe: Churn risk segment and re-engagement workflow](https://loops.so/docs/guides/churn-risk-segment.md): Define a churn risk segment based on inactivity signals, then automate a re-engagement sequence for those users. - [Dark mode support in emails](https://loops.so/docs/guides/email-dark-mode.md): Understanding dark mode support in email clients and best practices for consistent rendering. - [Set up a welcome email sequence for new Ghost members](https://loops.so/docs/guides/ghost-email-sequence.md): Send automated email sequences to new Ghost subscribers using Zapier and Loops. - [Why we don't support HTML emails](https://loops.so/docs/guides/html-emails.md): Understanding why Loops doesn't support HTML email content and the benefits of our approach. - [Guides for onboarding, deliverability, and lifecycle emails.](https://loops.so/docs/guides/intro.md): Browse Loops guides on onboarding, deliverability, lifecycle emails, integrations, and more. - [Recipe: SaaS customer lifecycle emails](https://loops.so/docs/guides/lifecycle-emails.md): How to send onboarding, dunning and churn emails to your customers with workflows. - [Recipe: Onboarding completion workflow](https://loops.so/docs/guides/onboarding-completion.md): Send a congratulatory email the moment a user finishes your onboarding checklist, plus a next-step nudge if they don't. - [Your first onboarding emails](https://loops.so/docs/guides/onboarding-emails.md): Some best practices for building your sender reputation with onboarding emails. - [Open rates are a vanity metric](https://loops.so/docs/guides/open-rates.md): Email open rates are unreliable due to privacy changes like Apple Mail Privacy Protection. Learn what to track instead when measuring engagement. - [Recipe: Product updates](https://loops.so/docs/guides/product-updates.md): Our updated, definitive guide for sending product updates. - [Retrigger a Workflow](https://loops.so/docs/guides/retroactively-trigger-workflow.md): Backfill contacts into a workflow. - [Recipe: Scheduled digest email](https://loops.so/docs/guides/scheduled-digest-email.md): How to send a daily, weekly or monthly email with a summary of what's happened in your app. - [How to resend a campaign to new subscribers](https://loops.so/docs/guides/send-again.md): A quick guide for sending a campaign to subscribers who signed up since you sent it out. - [Transactional vs marketing email](https://loops.so/docs/guides/transactional-vs-marketing-email.md): When to use transactional email, when to use marketing email, and how Loops keeps the two separate so neither hurts the other. - [Recipe: Upgrade upsell workflow](https://loops.so/docs/guides/upgrade-upsell.md): Trigger an upsell sequence when a free-plan user hits a usage threshold that a paid plan would solve. - [What is BIMI?](https://loops.so/docs/guides/what-is-bimi.md): Learn what BIMI is, how it works, and how to set up a BIMI record for your sending domain. - [What is DNS?](https://loops.so/docs/guides/what-is-dns.md): A beginner’s guide to DNS and the DNS records (MX, TXT, CNAME) used for sending email. - [Integrations](https://loops.so/docs/integrations.md): Browse Loops integrations to sync contacts and trigger emails from around the internet. - [Auth0 integration](https://loops.so/docs/integrations/auth0.md): Send Auth0 authentication emails with Loops. - [Auth.js](https://loops.so/docs/integrations/authjs.md): Send Auth.js magic link emails with Loops. - [Auto BCC](https://loops.so/docs/integrations/auto-bcc.md): Import emails and contacts to your CRM by adding a BCC address to your marketing emails. - [Better Auth](https://loops.so/docs/integrations/better-auth.md): Use Loops as the email sender for Better Auth authentication emails. - [Bubble integration](https://loops.so/docs/integrations/bubble.md): Connect Bubble to Loops with our plugin to add contacts, trigger workflows, and send transactional email. - [Carrd integration](https://loops.so/docs/integrations/carrd.md): Enable sign ups to Loops using a native Carrd form. - [Clay integration](https://loops.so/docs/integrations/clay.md): Learn how to sync data between Clay and Loops. - [Clerk integration](https://loops.so/docs/integrations/clerk.md): Sync contacts and send emails triggered by events in Clerk. - [Fivetran integration](https://loops.so/docs/integrations/fivetran.md): Send user data from your data warehouse to Loops via Fivetran. - [Framer integration](https://loops.so/docs/integrations/framer.md): Enable signups from your Framer site using an in-built or custom Loops component. - [Incoming webhooks](https://loops.so/docs/integrations/incoming-webhooks.md): Send data to Loops from supported platforms using webhooks. - [Integrately](https://loops.so/docs/integrations/integrately.md): Connect Loops to over a thousand apps. - [Make integration](https://loops.so/docs/integrations/make.md): Utilize our official Make integration to manage contacts and send email. - [Novu integration](https://loops.so/docs/integrations/novu.md): Send Novu email notifications with Loops SMTP. - [PostHog](https://loops.so/docs/integrations/posthog.md): Send events and contacts data to Loops from PostHog. - [RudderStack](https://loops.so/docs/integrations/rudderstack.md): Connect Loops to hundreds of apps to manage contacts and send emails. - [Segment](https://loops.so/docs/integrations/segment.md): Utilize our official Segment integration to manage contacts and send email. - [Stripe integration](https://loops.so/docs/integrations/stripe.md): Sync contacts and send emails triggered by events in Stripe. - [Supabase integration](https://loops.so/docs/integrations/supabase.md): Sync contacts and send emails triggered by events in Supabase. - [Webflow integration](https://loops.so/docs/integrations/webflow.md): Enable signups from your site using a native Webflow form. - [Zapier integration](https://loops.so/docs/integrations/zapier.md): Connect Loops to thousands of apps to manage contacts and send email. - [Quickstart](https://loops.so/docs/quickstart.md): Get started with Loops: set up your sending domain, import contacts, create your first email, and trigger messages with events, API, or integrations. - [Loops SDKs](https://loops.so/docs/sdks.md): Official and community SDKs plus SMTP guides to integrate Loops into your stack. - [JavaScript SDK](https://loops.so/docs/sdks/javascript.md): The official Loops SDK for JavaScript, with full TypeScript support. - [Set up Loops in Next.js](https://loops.so/docs/sdks/javascript/nextjs.md): How to send email from your Next.js project with Loops. - [Nuxt module](https://loops.so/docs/sdks/nuxt.md): The official Loops Nuxt module. - [PHP SDK](https://loops.so/docs/sdks/php.md): The official Loops PHP package. - [Ruby SDK](https://loops.so/docs/sdks/ruby.md): The official Loops SDK for Ruby. - [Security and Vulnerability Reporting](https://loops.so/docs/security-reporting.md): How to report security or vulnerability issues. - [Setting up your domain](https://loops.so/docs/sending-domain.md): Steps for adding a sending domain to your account. - [Sending your first email](https://loops.so/docs/sending-first-email.md): A guide for creating and sending emails with Loops, including setup steps and sending best practices. - [Agent Skills](https://loops.so/docs/skills.md): Make your agent work with Loops using skills. - [Send with SMTP](https://loops.so/docs/smtp.md): Send Loops emails over SMTP. - [Django SMTP](https://loops.so/docs/smtp/django.md): Send transactional emails from your Django project using Loops' SMTP service. - [Laravel](https://loops.so/docs/smtp/laravel.md): Send transactional emails from your Laravel project using Loops' SMTP service. - [Ruby on Rails](https://loops.so/docs/smtp/rails.md): Send transactional emails from your Rails project using Loops' SMTP service. - [Supabase SMTP](https://loops.so/docs/smtp/supabase.md): Configure your Supabase account to send authentication emails with Loops. - [Transactional email](https://loops.so/docs/transactional.md): Learn how to send, test, and troubleshoot transactional email in Loops. - [Attachments](https://loops.so/docs/transactional/attachments.md): How to send attachments with your transactional email. - [Types of emails](https://loops.so/docs/types-of-emails.md): Learn about the three types of emails that you can send with Loops: Campaigns, Workflows, and Transactional. - [Webhooks](https://loops.so/docs/webhooks.md): Learn about receiving event notifications with webhooks, including setup steps and payload examples. - [Workflows](https://loops.so/docs/workflows.md): Workflows let you send emails based on something happening, like a contact property updating, a new contact being created or an external event happening in another platform. - [Branching workflows](https://loops.so/docs/workflows/branching.md): Branching allows you to send different emails based on a contact's properties within a single workflow. - [Experiments](https://loops.so/docs/workflows/experiments.md): Learn how to use experiments to test different versions of your emails. - [Pausing workflows](https://loops.so/docs/workflows/pausing.md): Learn how to pause and stop a workflow to control the sending of emails. - [Triggering workflows](https://loops.so/docs/workflows/triggers.md): Learn how to trigger a workflow to start sending emails. ## OpenAPI Specs - [settings](https://loops.so/docs/.vscode/settings.json)