Loops website screenshot

Loops

Loops is a modern email platform purpose-built for software companies, combining product, marketing, and transactional email behind a single REST API and a single audience. Contacts, contact properties, mailing lists, events, segments, campaigns, email messages, themes, components, uploads, transactional sends, and dedicated sending IPs are all first-class API resources, with an OpenAPI 3.1 spec published at app.loops.so/openapi.yaml. Lifecycle workflows ("loops") use the Events API as their trigger, an HMAC-SHA256-signed webhook stream broadcasts every contact and email event for real-time integrations, and official SDKs ship for JavaScript, Nuxt, PHP, Ruby, and Go alongside an official Go-based CLI. Transactional email is included on every plan, team seats are unlimited, and a generous free tier covers 1,000 contacts and 4,000 sends per month — making Loops a Tier-1 developer-first email service for SaaS teams from waitlist to IPO.

Loops publishes 12 APIs on the APIs.io network, including API key API, Campaigns API, Components API, and 9 more. Tagged areas include Email, Marketing Email, Transactional Email, Email Automation, and Email Campaigns.

Loops’ developer surface includes authentication, developer portal, documentation, getting-started guide, pricing, engineering blog, changelog, and 25 more developer resources.

46.6/100 developing ▬ flat Agent 55/100 agent native Full breakdown ↓
scored 2026-08-05 · rubric v0.9.1
AccessSelf serve
12 APIs 26 Features
EmailMarketing EmailTransactional EmailEmail AutomationEmail CampaignsEmail WorkflowsContactsAudience ManagementEventsWebhooksSaaSDeveloper Tools

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-05 · rubric v0.9.1
Composite quality — 46.6/100 · developing
Contract Quality 14.8 / 25
Developer Ergonomics 11.3 / 20
Commercial Clarity 8.9 / 20
Operational Transparency 5.1 / 13
Governance 0.0 / 12
Discoverability 6.5 / 10
Agent readiness — 55/100 · agent native
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 9 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 6 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/loops-so: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 12

Individual APIs this provider publishes, each with its own machine-readable definition.

Loops API key API

The API key API from Loops — 1 operation(s) for api key.

Loops Campaigns API

Create and manage email campaigns

Loops Components API

View email components

Loops Contact properties API

Manage contact properties

Loops Contacts API

Manage contacts in your audience

Loops Dedicated sending IPs API

View dedicated sending IP addresses

Loops Email messages API

Manage email message content for campaigns

Loops Events API

Trigger email sending with events

Loops Mailing lists API

View mailing lists

Loops Themes API

View email themes

Loops Transactional emails API

Send and view transactional emails

Loops Uploads API

Upload image assets

Scroll for all 12

Open Collections 1

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

Loops OpenAPI Spec

OPEN COLLECTION

Features 26

Notable capabilities this provider offers.

Unified platform for product, marketing, and transactional email built for software companies
Single REST API (OpenAPI 3.1 published at app.loops.so/openapi.yaml) covering contacts, properties, mailing lists, events, campaigns, email messages, themes, components, transactional, uploads, suppressions, and dedicated sending IPs
Bearer-token API key authentication with a GET /api-key test endpoint
10 requests/second per team baseline rate limit with x-ratelimit-* response headers
Contacts API — create, update, find, delete; manage suppression status
Contact properties API — create custom properties and list the full property catalog
Mailing lists API — list mailing lists and manage list membership via contact updates
Events API — POST /events/send to trigger loops (workflows) and personalize content
Campaigns API — full CRUD plus list, with separate endpoints for the email message body
Email message API — fetch and update the content of an individual email message inside a campaign
Themes and components API — read reusable themes and shared components used across emails
Transactional email API — send transactional emails with template variables, file attachments, and headers; list transactional sends
Uploads API — create and complete file uploads for use in transactional attachments
Dedicated sending IPs API — list dedicated IPs assigned to your account
Webhook system with HMAC-SHA256 signing, 30 days of delivery history, contact + email + send + testing events, schema version 1.0.0
Lifecycle workflows ("loops") with triggers, timers, branching, and conditional logic
Saved segments built from contact properties and engagement data
A/B testing for campaigns
Email design editor optimized for major email clients
Analytics for conversion, opens, clicks, bounces, and unsubscribes
Official SDKs for JavaScript/TypeScript, Nuxt, PHP, Ruby, and Go; community SDKs for Laravel and Rails
Official `loops` CLI (Go) with Homebrew tap distribution
Official Claude Code Skills repository for the Loops API and CLI
25+ integrations across Stripe, Supabase, Clerk, Auth0, Auth.js, Better Auth, PostHog, Segment, RudderStack, Fivetran, HubSpot, Salesforce, Attio, Clay, Zapier, Make, Integrately, Bubble, Framer, Webflow, Emailify, and Email Love
Transactional email included at no extra charge on every plan
Unlimited team seats — never billed per seat or per send

Scroll for all 26

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Loops So Authentication

http · 1 scheme

SECURITY

Loops So Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Loops So Agentic Access

26 operations · 12 acting

26 operations · 12 acting

AGENTIC

Integrations 23

Pre-built integrations with other platforms and tools.

Stripe

Sync Stripe customers to your Loops audience and trigger automated emails on billing events.

Supabase

Send Supabase authentication emails (magic links, password reset, confirmations) through Loops.

Clerk

Send Clerk authentication emails through Loops.

Auth0

Route Auth0 authentication emails through Loops.

Auth.js

Send Auth.js authentication emails through Loops.

Better Auth

Route Better Auth transactional emails through Loops.

PostHog

Sync PostHog events and identified users into Loops contacts and workflows.

Segment

Sync Segment events and identified users into Loops.

RudderStack

Sync RudderStack events into Loops as event triggers.

Fivetran

Sync data into Loops via Fivetran connectors.

HubSpot

Sync HubSpot contacts to Loops.

Salesforce

Sync Salesforce contacts to Loops.

Attio

Sync Attio CRM contacts to Loops.

Clay

Push contacts from Clay into Loops.

Zapier

Connect Loops to 6,000+ apps via Zapier for contact sync, event triggers, and email sends.

Make

No-code automation flows that read from and write to Loops.

Integrately

No-code integration platform for connecting Loops to other tools.

Bubble

Send transactional email and sync contacts from Bubble no-code apps.

Framer

Capture form submissions in Framer sites and add them to Loops.

Webflow

Capture Webflow form submissions and add them to Loops contacts.

Emailify

Import custom MJML email templates from Emailify into Loops.

Email Love

Import MJML email templates from Email Love into Loops.

Incoming Webhooks

Receive arbitrary HTTP payloads and turn them into Loops events.

Scroll for all 23

Resources

Get Started 4

Portal, sign-up, and the first successful call

Documentation 4

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 2

Pagination, idempotency, versioning, errors, and events

Build 11

SDKs, sample code, and the tooling you integrate with

Scroll for all 11

Access & Security 4

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 4

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
aid: loops-so
url: https://raw.githubusercontent.com/api-evangelist/loops-so/refs/heads/main/apis.yml
apis:
- aid: loops-so:loops-so-api-key-api
  name: Loops API key API
  description: The API key API from Loops — 1 operation(s) for api key.
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - API key
  properties:
  - type: OpenAPI
    url: openapi/loops-so-api-key-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-campaigns-api
  name: Loops Campaigns API
  description: Create and manage email campaigns
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Campaigns
  properties:
  - type: OpenAPI
    url: openapi/loops-so-campaigns-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-components-api
  name: Loops Components API
  description: View email components
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Components
  properties:
  - type: OpenAPI
    url: openapi/loops-so-components-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-contact-properties-api
  name: Loops Contact properties API
  description: Manage contact properties
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Contact properties
  properties:
  - type: OpenAPI
    url: openapi/loops-so-contact-properties-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-contacts-api
  name: Loops Contacts API
  description: Manage contacts in your audience
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Contacts
  properties:
  - type: OpenAPI
    url: openapi/loops-so-contacts-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-dedicated-sending-ips-api
  name: Loops Dedicated sending IPs API
  description: View dedicated sending IP addresses
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Dedicated sending IPs
  properties:
  - type: OpenAPI
    url: openapi/loops-so-dedicated-sending-ips-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-email-messages-api
  name: Loops Email messages API
  description: Manage email message content for campaigns
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Email messages
  properties:
  - type: OpenAPI
    url: openapi/loops-so-email-messages-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-events-api
  name: Loops Events API
  description: Trigger email sending with events
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Events
  properties:
  - type: OpenAPI
    url: openapi/loops-so-events-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-mailing-lists-api
  name: Loops Mailing lists API
  description: View mailing lists
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Mailing lists
  properties:
  - type: OpenAPI
    url: openapi/loops-so-mailing-lists-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-themes-api
  name: Loops Themes API
  description: View email themes
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Themes
  properties:
  - type: OpenAPI
    url: openapi/loops-so-themes-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-transactional-emails-api
  name: Loops Transactional emails API
  description: Send and view transactional emails
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Transactional emails
  properties:
  - type: OpenAPI
    url: openapi/loops-so-transactional-emails-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
- aid: loops-so:loops-so-uploads-api
  name: Loops Uploads API
  description: Upload image assets
  humanURL: https://loops.so/docs/api-reference/intro
  tags:
  - Uploads
  properties:
  - type: OpenAPI
    url: openapi/loops-so-uploads-api-openapi.yml
  - type: Documentation
    url: https://loops.so/docs/api-reference/intro
name: Loops
tags:
- Email
- Marketing Email
- Transactional Email
- Email Automation
- Email Campaigns
- Email Workflows
- Contacts
- Audience Management
- Events
- Webhooks
- SaaS
- Developer Tools
kind: contract
accessModel:
  pricing: unknown
  onboarding: self-serve
  trial: false
  try_now: false
  public: false
  label: Self-serve signup
  confidence: medium
  source:
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/loops-so.png
access: 3rd-Party
common:
- type: AgenticAccess
  url: agentic-access/loops-so-agentic-access.yml
- type: DomainSecurity
  url: security/loops-so-domain-security.yml
- type: Authentication
  url: authentication/loops-so-authentication.yml
- url: https://loops.so
  type: Portal
- url: https://loops.so/docs
  name: Loops Docs
  type: Documentation
- url: https://loops.so/docs/api-reference/intro
  name: API Reference
  type: Documentation
- url: https://app.loops.so/openapi.yaml
  name: OpenAPI YAML
  type: OpenAPI
- url: https://app.loops.so/openapi.json
  name: OpenAPI JSON
  type: OpenAPI
- url: https://loops.so/docs/quickstart
  name: Quickstart
  type: GettingStarted
- url: https://loops.so/docs/webhooks
  name: Webhooks
  type: Webhooks
- url: https://loops.so/docs/integrations
  name: Integrations
  type: Integrations
- url: https://loops.so/pricing
  name: Pricing
  type: Pricing
- url: https://loops.so/blog
  type: Blog
- url: https://loops.so/changelog
  type: ChangeLog
- url: https://loops.so/legal/terms
  type: TermsOfService
- url: https://loops.so/legal/privacy
  type: PrivacyPolicy
- url: https://loops.so/legal/security
  type: Security
- url: https://app.loops.so/register
  name: Sign Up
  type: Signup
- url: https://app.loops.so/login
  name: Sign In
  type: Login
- url: https://twitter.com/loops_so
  type: Twitter
- url: https://www.linkedin.com/company/loops-so
  type: LinkedIn
- url: https://github.com/loops-so
  name: Loops GitHub
  type: GitHubOrganization
- url: https://github.com/loops-so/loops-js
  name: Loops JavaScript SDK
  type: SDKs
- url: https://github.com/loops-so/loops-nuxt
  name: Loops Nuxt SDK
  type: SDKs
- url: https://github.com/loops-so/loops-php
  name: Loops PHP SDK
  type: SDKs
- url: https://github.com/loops-so/loops-rb
  name: Loops Ruby SDK
  type: SDKs
- url: https://github.com/loops-so/loops-go
  name: Loops Go SDK
  type: SDKs
- url: https://github.com/loops-so/cli
  name: Loops CLI
  type: Tools
- url: https://github.com/loops-so/homebrew-tap
  name: Loops Homebrew Tap
  type: Tools
- url: https://github.com/loops-so/skills
  name: Loops Skills for Claude Code
  type: Tools
- url: https://github.com/loops-so/loops-nextjs
  name: Loops Next.js Example
  type: CodeExamples
- url: https://www.npmjs.com/package/loops
  name: loops on npm
  type: Package
- url: https://loops.so/pricing
  data:
  - id: free
    name: Free
    entries:
    - geo: US
      unit: 1
      label: User
      limit: 1
      price: Free
      metric: user
      timeFrame: month
      description: Free tier — no credit card required. Loops branding shown at the bottom of emails.
    elements:
    - name: Up to 1,000 subscribed contacts
    - name: Up to 4,000 sends per month (enough for weekly emails)
    - name: All features included
    - name: Transactional email at no extra charge
    - name: Unlimited team seats
    - name: Loops branding at the bottom of every email
    description: Free to start. No credit card required.
  - id: paid
    name: Paid
    entries:
    - geo: US
      unit: 1
      label: User
      limit: 1
      price: Call
      metric: user
      timeFrame: month
      description: Paid plans remove send limits and Loops branding. Pricing scales by audience size and contact tier.
    elements:
    - name: Remove send limits
    - name: Remove Loops branding from emails
    - name: All features included
    - name: Transactional email at no extra charge
    - name: Unlimited team seats — never charged per seat
    - name: Never charged per send
    description: For teams sending beyond the free-tier limits.
  - id: custom
    name: Custom
    entries:
    - geo: US
      unit: 1
      label: User
      limit: 1
      price: Call
      metric: user
      timeFrame: month
      description: Custom plans for high-volume senders and enterprise.
    elements:
    - name: Custom contact and send volumes
    - name: Dedicated sending IPs
    - name: Custom plan terms
    description: Contact Loops for custom plans.
  name: Plans
  type: Plans
- type: Authentication
  data:
  - name: Bearer Token
    description: API keys are generated in the Loops dashboard under Settings → API and passed via the Authorization header
      as Bearer tokens. Test keys with GET /api-key.
- type: RateLimits
  data:
  - name: Default API rate limit
    description: 10 requests per second per team. Responses include x-ratelimit-limit and x-ratelimit-remaining headers; HTTP
      429 returned when exceeded.
  - name: Webhook delivery rate limit
    description: Webhooks deliver at a maximum of 10 events per second; excess events are queued for subsequent delivery.
- type: Webhooks
  data:
  - name: Webhook event categories
    description: Contact events (contact.created, contact.unsubscribed, contact.deleted, contact.mailingList.subscribed/unsubscribed);
      email send events (campaign.email.sent, loop.email.sent, transactional.email.sent); email engagement (email.delivered,
      email.opened, email.clicked, email.softBounced, email.hardBounced, email.unsubscribed, email.resubscribed, email.spamReported);
      and testing.testEvent.
  - name: Webhook signing
    description: Each webhook carries Webhook-Id, Webhook-Timestamp, and Webhook-Signature (HMAC-SHA256) headers. Verify by
      recomputing the signature from event ID, timestamp, and raw body using the signing secret saved during webhook setup.
  - name: Webhook schema version
    description: Webhooks include webhookSchemaVersion 1.0.0, eventName, and eventTime (unix seconds). 30 days of delivery
      history is retained.
- type: Integrations
  data:
  - name: Stripe
    description: Sync Stripe customers to your Loops audience and trigger automated emails on billing events.
  - name: Supabase
    description: Send Supabase authentication emails (magic links, password reset, confirmations) through Loops.
  - name: Clerk
    description: Send Clerk authentication emails through Loops.
  - name: Auth0
    description: Route Auth0 authentication emails through Loops.
  - name: Auth.js
    description: Send Auth.js authentication emails through Loops.
  - name: Better Auth
    description: Route Better Auth transactional emails through Loops.
  - name: PostHog
    description: Sync PostHog events and identified users into Loops contacts and workflows.
  - name: Segment
    description: Sync Segment events and identified users into Loops.
  - name: RudderStack
    description: Sync RudderStack events into Loops as event triggers.
  - name: Fivetran
    description: Sync data into Loops via Fivetran connectors.
  - name: HubSpot
    description: Sync HubSpot contacts to Loops.
  - name: Salesforce
    description: Sync Salesforce contacts to Loops.
  - name: Attio
    description: Sync Attio CRM contacts to Loops.
  - name: Clay
    description: Push contacts from Clay into Loops.
  - name: Zapier
    description: Connect Loops to 6,000+ apps via Zapier for contact sync, event triggers, and email sends.
  - name: Make
    description: No-code automation flows that read from and write to Loops.
  - name: Integrately
    description: No-code integration platform for connecting Loops to other tools.
  - name: Bubble
    description: Send transactional email and sync contacts from Bubble no-code apps.
  - name: Framer
    description: Capture form submissions in Framer sites and add them to Loops.
  - name: Webflow
    description: Capture Webflow form submissions and add them to Loops contacts.
  - name: Emailify
    description: Import custom MJML email templates from Emailify into Loops.
  - name: Email Love
    description: Import MJML email templates from Email Love into Loops.
  - name: Incoming Webhooks
    description: Receive arbitrary HTTP payloads and turn them into Loops events.
- type: Features
  data:
  - Unified platform for product, marketing, and transactional email built for software companies
  - Single REST API (OpenAPI 3.1 published at app.loops.so/openapi.yaml) covering contacts, properties, mailing lists, events,
    campaigns, email messages, themes, components, transactional, uploads, suppressions, and dedicated sending IPs
  - Bearer-token API key authentication with a GET /api-key test endpoint
  - 10 requests/second per team baseline rate limit with x-ratelimit-* response headers
  - Contacts API — create, update, find, delete; manage suppression status
  - Contact properties API — create custom properties and list the full property catalog
  - Mailing lists API — list mailing lists and manage list membership via contact updates
  - Events API — POST /events/send to trigger loops (workflows) and personalize content
  - Campaigns API — full CRUD plus list, with separate endpoints for the email message body
  - Email message API — fetch and update the content of an individual email message inside a campaign
  - Themes and components API — read reusable themes and shared components used across emails
  - Transactional email API — send transactional emails with template variables, file attachments, and headers; list transactional
    sends
  - Uploads API — create and complete file uploads for use in transactional attachments
  - Dedicated sending IPs API — list dedicated IPs assigned to your account
  - Webhook system with HMAC-SHA256 signing, 30 days of delivery history, contact + email + send + testing events, schema
    version 1.0.0
  - Lifecycle workflows ("loops") with triggers, timers, branching, and conditional logic
  - Saved segments built from contact properties and engagement data
  - A/B testing for campaigns
  - Email design editor optimized for major email clients
  - Analytics for conversion, opens, clicks, bounces, and unsubscribes
  - Official SDKs for JavaScript/TypeScript, Nuxt, PHP, Ruby, and Go; community SDKs for Laravel and Rails
  - Official `loops` CLI (Go) with Homebrew tap distribution
  - Official Claude Code Skills repository for the Loops API and CLI
  - 25+ integrations across Stripe, Supabase, Clerk, Auth0, Auth.js, Better Auth, PostHog, Segment, RudderStack, Fivetran,
    HubSpot, Salesforce, Attio, Clay, Zapier, Make, Integrately, Bubble, Framer, Webflow, Emailify, and Email Love
  - Transactional email included at no extra charge on every plan
  - Unlimited team seats — never billed per seat or per send
  sources:
  - https://loops.so
  - https://loops.so/docs/api-reference/intro
  - https://app.loops.so/openapi.yaml
  - https://loops.so/docs/webhooks
  - https://loops.so/docs/integrations
  - https://loops.so/pricing
  - https://github.com/loops-so
  updated: '2026-05-25'
created: '2026-05-25T00:00:00.000Z'
modified: '2026-05-25'
position: Consuming
description: Loops is a modern email platform purpose-built for software companies, combining product, marketing, and transactional
  email behind a single REST API and a single audience. Contacts, contact properties, mailing lists, events, segments, campaigns,
  email messages, themes, components, uploads, transactional sends, and dedicated sending IPs are all first-class API resources,
  with an OpenAPI 3.1 spec published at app.loops.so/openapi.yaml. Lifecycle workflows ("loops") use the Events API as their
  trigger, an HMAC-SHA256-signed webhook stream broadcasts every contact and email event for real-time integrations, and official
  SDKs ship for JavaScript, Nuxt, PHP, Ruby, and Go alongside an official Go-based CLI. Transactional email is included on
  every plan, team seats are unlimited, and a generous free tier covers 1,000 contacts and 4,000 sends per month — making
  Loops a Tier-1 developer-first email service for SaaS teams from waitlist to IPO.
maintainers:
- FN: Kin Lane
  email: info@apievangelist.com
  X: apievangelist
  url: https://apievangelist.com
specificationVersion: '0.16'