> ## Documentation Index
> Fetch the complete documentation index at: https://loops.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# API Changelog

> Release notes for the Loops REST API and webhooks, covering new endpoints, fields, breaking changes, and deprecations across OpenAPI versions.

**October 20, 2026**

New: workflows can now be moved between groups in the [Update workflow](https://loops.so/docs/api-reference/update-workflow.md) endpoint.

**October 6, 2026**

New: endpoints for managing workflow groups.

**September 30, 2026**

Updated: campaigns created without a group are now added to the "Unsorted" group rather than the first group listed in your account.

**September 29, 2026**

New: metrics endpoints for [campaigns](https://loops.so/docs/api-reference/get-campaign-metrics.md), [transactional emails](https://loops.so/docs/api-reference/get-transactional-email-metrics.md), and [workflow email nodes](https://loops.so/docs/api-reference/get-workflow-node-metrics.md).

**September 17, 2026**

Updated: `ccEmail` and `bccEmail` are now rejected in the API when [updating campaign email messages](https://loops.so/docs/api-reference/update-email-message.md), matching app behavior (they are still accepted for workflow and transactional emails).

**September 1, 2026**

New: [Delete a workflow](https://loops.so/docs/api-reference/delete-workflow.md) endpoint.

**August 31, 2026**

New: campaign, transactional and workflow endpoints now include a `url` field, which gives quick access to the object in the Loops app.

**July 23, 2026**

New:

* [Create audience segment](https://loops.so/docs/api-reference/create-audience-segment.md) endpoint.
* Endpoints for creating and editing [workflows](https://loops.so/docs/api-reference/intro.md#workflows) and [workflow nodes](https://loops.so/docs/api-reference/intro.md#workflow-nodes).
* Endpoints for reading [event patterns](https://loops.so/docs/api-reference/intro.md#event-patterns).

Updated: removed `queuedContactLimitReached` from workflow node delete and mailing list change responses.

**July 16, 2026**

Updated: `rootNodeId` is now always a non-null string in [workflow](https://loops.so/docs/api-reference/get-workflow.md) responses.

**July 8, 2026**

New: endpoints for creating and updating themes and components.

**July 2, 2026**

New: [Guardian](https://loops.so/docs/api-reference/run-guardian-checks.md) endpoint for validating email message content via the API.

**July 1, 2026**

New: a `transactionalName` field in the [transactional.email.sent](https://loops.so/docs/webhooks.md#transactional-email-sent) webhook event.

**June 22, 2026**

New: endpoints for viewing [workflows](https://loops.so/docs/api-reference/list-workflows.md) and [workflow nodes](https://loops.so/docs/api-reference/get-workflow-node.md). These endpoints are currently in open alpha.

**June 19, 2026**

New: endpoints for [campaign groups](https://loops.so/docs/api-reference/list-campaign-groups.md), [transactional groups](https://loops.so/docs/api-reference/list-transactional-groups.md), [audience segments](https://loops.so/docs/api-reference/list-audience-segments.md), and [email message previews](https://loops.so/docs/api-reference/preview-email-message.md).

Updated:

* [Campaign](https://loops.so/docs/api-reference/create-campaign.md) endpoints now support audience targeting (mailing list, segment, or filter), groups, and scheduling.
* [Email message](https://loops.so/docs/api-reference/update-email-message.md) endpoints now support CC/BCC, language, email format, and property fallbacks.
* [Transactional email](https://loops.so/docs/api-reference/create-transactional-email.md) endpoints now support groups.

**June 5, 2026**

New: endpoints for creating and editing transactional emails. These endpoints are currently in an open alpha.

**May 20, 2026**

New: [Upload](https://loops.so/docs/api-reference/create-upload.md) endpoints for uploading images to use in emails.

**April 24, 2026**

New: endpoints for creating and editing campaigns. These endpoints are currently in an open alpha.

**March 25, 2026**

New: API endpoints to [check](https://loops.so/docs/api-reference/check-contact-suppression.md) and [remove](https://loops.so/docs/api-reference/remove-contact-suppression.md) suppression for contacts.

**February 13, 2026**

New: a `campaignName` field in the [campaign.email.sent](https://loops.so/docs/webhooks.md#campaign-email-sent) webhook event.

**October 17, 2025**

New: an [`email.resubscribed`](https://loops.so/docs/webhooks#email-resubscribed) webhook event for
when contacts resubscribe to your marketing email from an email's
"Unsubscribe" link.

**October 13, 2025**

New: an `optInStatus` field from [double opt-in](https://loops.so/docs/contacts/double-opt-in.md) in
the [Find contact](https://loops.so/docs/api-reference/find-contact.md) endpoint and in
`contact.created` [webhook events](https://loops.so/docs/webhooks.md).

**September 29, 2025**

New: [webhooks](https://loops.so/docs/webhooks.md) are now available to all users.

**September 11, 2025**

Improvement: all endpoints now return a `success` and `message` field in the error response bodies.

`error` and `path` top-level keys are now deprecated but will continue to be supported for some time for backward compatibility.

**August 21, 2025**

The docs have been updated to reflect that the `email` parameter is optional
in the [Update contact](https://loops.so/docs/api-reference/update-contact.md) endpoint if a `userId`
is provided.

**May 23, 2025**

Improvement: data variables are now optional in the [Send transactional
email](https://loops.so/docs/api-reference/send-transactional-email.md) endpoint. [Read
more](https://loops.so/docs/transactional.md#optional-data-variables)

**April 29, 2025**

New: an `Idempotency-Key` header when [sending
events](https://loops.so/docs/api-reference/send-event.md).

**March 28, 2025**

New: an `Idempotency-Key` header when [sending transactional
emails](https://loops.so/docs/api-reference/send-transactional-email.md).

**February 28, 2025**

New: an endpoint for [listing transactional
emails](https://loops.so/docs/api-reference/list-transactional-emails.md) and their data variables.

**February 5, 2025**

New: [webhooks](https://loops.so/docs/webhooks.md) are in Beta.

**January 14, 2025**

New: new endpoints for [creating contact properties](https://loops.so/docs/api-reference/create-contact-property.md) and [listing contact properties](https://loops.so/docs/api-reference/list-contact-properties.md).

Deprecation: the [List custom fields](https://loops.so/docs/api-reference/list-custom-fields) endpoint is now deprecated in favor of the new [List contact properties](https://loops.so/docs/api-reference/list-contact-properties.md) endpoint.

**December 18, 2024**

New: we added `description` to mailing list objects in the [List mailing
lists](https://loops.so/docs/api-reference/list-mailing-lists.md) endpoint.

**November 5, 2024**

Improvement: the maximum payload size for the transactional endpoint has been
increased from 1MB to 4MB, allowing for more or larger attachments.

**September 6, 2024**

New: our new [Nuxt module](https://loops.so/docs/sdks/nuxt.md) is now out!

**August 16, 2024**

New: our new [Ruby SDK](https://loops.so/docs/sdks/ruby.md) is available!

**August 15, 2024**

New: we added an `isPublic` attribute to mailing list objects in the [List
mailing lists](https://loops.so/docs/api-reference/list-mailing-lists.md) endpoint.

**June 28, 2024**

New: there's a new `addToAudience` parameter in the [Send transactional
email](https://loops.so/docs/api-reference/send-transactional-email.md) endpoint that can add contacts to
your audience.

**June 18, 2024**

New: support for our new [mailing lists](https://loops.so/docs/contacts/mailing-lists.md) feature.

You can now add contacts to and remove contacts from mailing lists in the [Create contact](https://loops.so/docs/api-reference/create-contact.md), [Update contact](https://loops.so/docs/api-reference/update-contact.md) and [Send event](https://loops.so/docs/api-reference/send-event.md) endpoints.

There is also a [new endpoint](https://loops.so/docs/api-reference/list-mailing-lists.md) for retrieving your mailing lists.

**April 18, 2024**

New: you can now [Find contacts](https://loops.so/docs/api-reference/find-contact.md) by `userId`.

**April 9, 2024**

New: a new endpoint for testing your integration and/or API key: [API
key](https://loops.so/docs/api-reference/api-key.md).

**March 21, 2024**

New: you can now include [event properties](https://loops.so/docs/events/properties.md) in requests to
the [Send event](https://loops.so/docs/api-reference/send-event.md) endpoint.

**March 13, 2024**

Improvement: we removed behavior that returned a `400 Bad Request` response if
an unrecognized property was added to Contact endpoints.

**February 9, 2024**

Improvement: sending in a payload that contains an unrecognized property will
now return a `400 Bad Request` response.

**January 25, 2024**

Clarification in the API docs that `userId` can be used in a [Send
event](https://loops.so/docs/api-reference/send-event.md) request.

**November 6, 2023**

New: we added a new endpoint for [querying custom contact
properties](https://loops.so/docs/api-reference/list-custom-fields).

**October 30, 2023**

Our [official JavaScript/TypeScript SDK](https://loops.so/docs/sdks/javascript.md) is now available!

**October 12, 2023**

New: we now accept dates as a custom [contact property](https://loops.so/docs/contacts/properties.md)
type. [View the available formats](https://loops.so/docs/contacts/properties.md#dates).


## Related topics

- [API Introduction](https://loops.so/docs/api-reference/intro.md)
- [API key](https://loops.so/docs/api-reference/api-key.md)
- [API Examples](https://loops.so/docs/api-reference/examples.md)
- [Bubble API Connector](https://loops.so/docs/guides/bubble-api-connector.md)
- [Campaigns API examples](https://loops.so/docs/api-reference/examples/campaigns.md)
