Home
Providers
Loops
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.
12 APIs
26 Features
Email Marketing Email Transactional Email Email Automation Email Campaigns Email Workflows Contacts Audience Management Events Webhooks SaaS Developer Tools
On this page
Kin Score
APIs 12
Open Collections 1
Features 26
Security Posture 2
Agentic Access 1
Integrations 23
Resources 35
apis.yml
40 Operational Transparency
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
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
Individual APIs this provider publishes, each with its own machine-readable definition.
Scroll for all 12
Open, tool-agnostic API collections (OpenAPI-derived and Bruno).
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
Authentication, domain security, vulnerability disclosure, and trust-center signals.
Recommended x-agentic-access execution contracts for AI agents.
Pre-built integrations with other platforms and tools.
Scroll for all 23
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)
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'