Loops
Use Loops APIs to manage contacts, contact properties, mailing lists, campaigns, workflows, events, transactional emails, uploads, themes, components, and audience segments.
Authentication
| Method | Kind | Status | Details |
|---|---|---|---|
| API Key | api_key | available | — |
Call a tool
import { createClient } from "@open-connector/sdk";const oc = createClient({ baseUrl: "https://api.openconnector.dev", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await oc.executeTool({ slug: "LOOPS_DELETE_V1_CONTACTS_SUPPRESSION", connectedAccountId: "conn_...", arguments: { /* match this tool's input schema */ },});import Composio from "@composio/client";const composio = new Composio({ baseURL: "https://api.openconnector.dev/composio", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await composio.tools.execute("LOOPS_DELETE_V1_CONTACTS_SUPPRESSION", { connected_account_id: "conn_...", arguments: { /* match this tool's input schema */ },});oc tools execute LOOPS_DELETE_V1_CONTACTS_SUPPRESSION --data '{ }'Tool catalog
Available tools
51 callable operations
Remove a contact from suppression listLOOPS_DELETE_V1_CONTACTS_SUPPRESSIONRemove a suppressed contact from the suppression list by `email` or `userId`. Include only one query parameter.Connection
Remove a suppressed contact from the suppression list by `email` or `userId`. Include only one query parameter.
Authentication
Connected account requiredTags
Test your API keyLOOPS_GET_V1_API_KEYTest your API keyConnection
Test your API key
Authentication
Connected account requiredTags
List audience segmentsLOOPS_GET_V1_AUDIENCE_SEGMENTSRetrieve a paginated list of audience segments, most recently created first.Connection
Retrieve a paginated list of audience segments, most recently created first.
Authentication
Connected account requiredTags
Get an audience segmentLOOPS_GET_V1_AUDIENCE_SEGMENTS_AUDIENCE_SEGMENT_IDRetrieve a single audience segment by ID.Connection
Retrieve a single audience segment by ID.
Authentication
Connected account requiredTags
List campaign groupsLOOPS_GET_V1_CAMPAIGN_GROUPSRetrieve a paginated list of campaign groups, most recently created first.Connection
Retrieve a paginated list of campaign groups, most recently created first.
Authentication
Connected account requiredTags
Get a campaign groupLOOPS_GET_V1_CAMPAIGN_GROUPS_CAMPAIGN_GROUP_IDRetrieve a single campaign group by ID.Connection
Retrieve a single campaign group by ID.
Authentication
Connected account requiredTags
List campaignsLOOPS_GET_V1_CAMPAIGNSRetrieve a paginated list of campaigns.Connection
Retrieve a paginated list of campaigns.
Authentication
Connected account requiredTags
Get a campaignLOOPS_GET_V1_CAMPAIGNS_CAMPAIGN_IDRetrieve a single campaign by ID.Connection
Retrieve a single campaign by ID.
Authentication
Connected account requiredTags
List componentsLOOPS_GET_V1_COMPONENTSRetrieve a paginated list of email components.Connection
Retrieve a paginated list of email components.
Authentication
Connected account requiredTags
Get a componentLOOPS_GET_V1_COMPONENTS_COMPONENT_IDRetrieve a single component by ID.Connection
Retrieve a single component by ID.
Authentication
Connected account requiredTags
Find a contactLOOPS_GET_V1_CONTACTS_FINDSearch for a contact by `email` or `userId`. Only one parameter is allowed.Connection
Search for a contact by `email` or `userId`. Only one parameter is allowed.
Authentication
Connected account requiredTags
Get a list of contact propertiesLOOPS_GET_V1_CONTACTS_PROPERTIESRetrieve a list of your account's contact properties.<br>Use the `list` parameter to query "all" or "custom" properties.Connection
Retrieve a list of your account's contact properties.<br>Use the `list` parameter to query "all" or "custom" properties.
Authentication
Connected account requiredTags
Get suppression status for a contactLOOPS_GET_V1_CONTACTS_SUPPRESSIONRetrieve suppression status and removal quota for a contact by `email` or `userId`. Include only one query parameter.Connection
Retrieve suppression status and removal quota for a contact by `email` or `userId`. Include only one query parameter.
Authentication
Connected account requiredTags
Get dedicated sending IP addressesLOOPS_GET_V1_DEDICATED_SENDING_IPSRetrieve a list of Loops' dedicated sending IP addresses.Connection
Retrieve a list of Loops' dedicated sending IP addresses.
Authentication
Connected account requiredTags
Get an email messageLOOPS_GET_V1_EMAIL_MESSAGES_EMAIL_MESSAGE_IDRetrieve an email message, including its compiled LMX content.Connection
Retrieve an email message, including its compiled LMX content.
Authentication
Connected account requiredTags
Run Guardian checks on an email messageLOOPS_GET_V1_EMAIL_MESSAGES_EMAIL_MESSAGE_ID_GUARDIANValidate an email message's content against Guardian rules and return any errors and warnings. Errors must be resolved before the email can be published, warnings are advisory.Connection
Validate an email message's content against Guardian rules and return any errors and warnings. Errors must be resolved before the email can be published, warnings are advisory.
Authentication
Connected account requiredTags
Get a list of mailing listsLOOPS_GET_V1_LISTSRetrieve a list of your account's mailing lists.Connection
Retrieve a list of your account's mailing lists.
Authentication
Connected account requiredTags
List themesLOOPS_GET_V1_THEMESRetrieve a paginated list of email themes, most recently created first.Connection
Retrieve a paginated list of email themes, most recently created first.
Authentication
Connected account requiredTags
Get a themeLOOPS_GET_V1_THEMES_THEME_IDRetrieve a single theme by ID.Connection
Retrieve a single theme by ID.
Authentication
Connected account requiredTags
List transactional emailsLOOPS_GET_V1_TRANSACTIONALGet a list of published transactional emails.Connection
Get a list of published transactional emails.
Authentication
Connected account requiredTags
List transactional emailsLOOPS_GET_V1_TRANSACTIONAL_EMAILSRetrieve a paginated list of transactional emails, most recently created first.Connection
Retrieve a paginated list of transactional emails, most recently created first.
Authentication
Connected account requiredTags
Get a transactional emailLOOPS_GET_V1_TRANSACTIONAL_EMAILS_TRANSACTIONAL_IDRetrieve a single transactional email by ID.Connection
Retrieve a single transactional email by ID.
Authentication
Connected account requiredTags
List transactional groupsLOOPS_GET_V1_TRANSACTIONAL_GROUPSRetrieve a paginated list of transactional groups, most recently created first.Connection
Retrieve a paginated list of transactional groups, most recently created first.
Authentication
Connected account requiredTags
Get a transactional groupLOOPS_GET_V1_TRANSACTIONAL_GROUPS_TRANSACTIONAL_GROUP_IDRetrieve a single transactional group by ID.Connection
Retrieve a single transactional group by ID.
Authentication
Connected account requiredTags
Get a simplified workflowLOOPS_GET_WORKFLOWRetrieve a workflow graph with node type names, connections, and selected display fields.Connection
Retrieve a workflow graph with node type names, connections, and selected display fields.
Authentication
Connected account requiredTags
Get workflow node detailsLOOPS_GET_WORKFLOW_NODERetrieve detailed data for a single workflow node.Connection
Retrieve detailed data for a single workflow node.
Authentication
Connected account requiredTags
List workflowsLOOPS_LIST_WORKFLOWSRetrieve a paginated list of workflows.Connection
Retrieve a paginated list of workflows.
Authentication
Connected account requiredTags
Create a campaign groupLOOPS_POST_V1_CAMPAIGN_GROUPSCreate a new campaign group.Connection
Create a new campaign group.
Authentication
Connected account requiredTags
Update a campaign groupLOOPS_POST_V1_CAMPAIGN_GROUPS_CAMPAIGN_GROUP_IDUpdate a campaign group's name or description. At least one field must be provided. The reserved "Unsorted" group cannot be edited.Connection
Update a campaign group's name or description. At least one field must be provided. The reserved "Unsorted" group cannot be edited.
Authentication
Connected account requiredTags
Create a campaignLOOPS_POST_V1_CAMPAIGNSCreate a new draft campaign. An empty email message is created automatically and its `emailMessageId` is returned. Use the `/email-messages/{emailMessageId}` endpoint to set subject, sender, preview text, and LMX content. The audience (mailing list, segment, or filter), group, and scheduling can be set on create or later via update.Connection
Create a new draft campaign. An empty email message is created automatically and its `emailMessageId` is returned. Use the `/email-messages/{emailMessageId}` endpoint to set subject, sender, preview text, and LMX content. The audience (mailing list, segment, or filter), group, and scheduling can be set on create or later via update.
Authentication
Connected account requiredTags
Update a campaignLOOPS_POST_V1_CAMPAIGNS_CAMPAIGN_IDUpdate a draft campaign's name, group, audience (mailing list, segment, or filter), or scheduling. At least one field must be provided. Campaigns can only be updated while in draft status.Connection
Update a draft campaign's name, group, audience (mailing list, segment, or filter), or scheduling. At least one field must be provided. Campaigns can only be updated while in draft status.
Authentication
Connected account requiredTags
Create a componentLOOPS_POST_V1_COMPONENTSCreate a new email component from an LMX body.Connection
Create a new email component from an LMX body.
Authentication
Connected account requiredTags
Update a componentLOOPS_POST_V1_COMPONENTS_COMPONENT_IDUpdate a component's name and/or body. When the `lmx` body changes, the update cascades to every email using this component, and `affectedEmailCount` reports how many were affected. A change that would introduce a dynamic variable an email using the component cannot use is rejected.Connection
Update a component's name and/or body. When the `lmx` body changes, the update cascades to every email using this component, and `affectedEmailCount` reports how many were affected. A change that would introduce a dynamic variable an email using the component cannot use is rejected.
Authentication
Connected account requiredTags
Create a contactLOOPS_POST_V1_CONTACTS_CREATEAdd a contact to your audience.Connection
Add a contact to your audience.
Authentication
Connected account requiredTags
Delete a contactLOOPS_POST_V1_CONTACTS_DELETEDelete a contact by `email` or `userId`.Connection
Delete a contact by `email` or `userId`.
Authentication
Connected account requiredTags
Create a contact propertyLOOPS_POST_V1_CONTACTS_PROPERTIESAdd a contact property to your team.Connection
Add a contact property to your team.
Authentication
Connected account requiredTags
Update an email messageLOOPS_POST_V1_EMAIL_MESSAGES_EMAIL_MESSAGE_IDUpdate fields on an email message (subject, preview text, sender, LMX content). The campaign must be in draft status. Supply `expectedRevisionId` matching the current `contentRevisionId` — the server rejects mismatched revisions with 409.Connection
Update fields on an email message (subject, preview text, sender, LMX content). The campaign must be in draft status. Supply `expectedRevisionId` matching the current `contentRevisionId` — the server rejects mismatched revisions with 409.
Authentication
Connected account requiredTags
Send a preview of an email messageLOOPS_POST_V1_EMAIL_MESSAGES_EMAIL_MESSAGE_ID_PREVIEWSend a test preview of an email message to one or more addresses. The accepted variable fields depend on the parent's type - campaign previews accept `contactProperties`, workflow previews accept `contactProperties` and `eventProperties`, and transactional previews accept `dataVariables`. Supplying a field the parent cannot reference is rejected with 400.Connection
Send a test preview of an email message to one or more addresses. The accepted variable fields depend on the parent's type - campaign previews accept `contactProperties`, workflow previews accept `contactProperties` and `eventProperties`, and transactional previews accept `dataVariables`. Supplying a field the parent cannot reference is rejected with 400.
Authentication
Connected account requiredTags
Send an eventLOOPS_POST_V1_EVENTS_SENDSend events to trigger emails in Loops.Connection
Send events to trigger emails in Loops.
Authentication
Connected account requiredTags
Create a themeLOOPS_POST_V1_THEMESCreate a new email theme.Connection
Create a new email theme.
Authentication
Connected account requiredTags
Update a themeLOOPS_POST_V1_THEMES_THEME_IDUpdate a theme's name and/or styles. When `styles` change, the update cascades to every email using this theme, and `affectedEmailCount` in the response reports how many emails were affected. Manual style edits made on individual emails are preserved: the cascade only changes properties an email has not overridden. A per-email override is removed only when it becomes identical to the theme's new value, after which that email follows the theme for that property.Connection
Update a theme's name and/or styles. When `styles` change, the update cascades to every email using this theme, and `affectedEmailCount` in the response reports how many emails were affected. Manual style edits made on individual emails are preserved: the cascade only changes properties an email has not overridden. A per-email override is removed only when it becomes identical to the theme's new value, after which that email follows the theme for that property.
Authentication
Connected account requiredTags
Send a transactional emailLOOPS_POST_V1_TRANSACTIONALSend a transactional email to a contact.<br>Please [email us](mailto:[email protected]) to enable attachments on your account before using them with the API.Connection
Send a transactional email to a contact.<br>Please [email us](mailto:[email protected]) to enable attachments on your account before using them with the API.
Authentication
Connected account requiredTags
Create a transactional emailLOOPS_POST_V1_TRANSACTIONAL_EMAILSCreate a new transactional email. An empty draft email message is created automatically and its `draftEmailMessageId` is returned. Use the `/api/v1/email-messages/{emailMessageId}` endpoint to set subject, sender, preview text, and LMX content, then call `/api/v1/transactional-emails/{transactionalId}/publish` to publish.Connection
Create a new transactional email. An empty draft email message is created automatically and its `draftEmailMessageId` is returned. Use the `/api/v1/email-messages/{emailMessageId}` endpoint to set subject, sender, preview text, and LMX content, then call `/api/v1/transactional-emails/{transactionalId}/publish` to publish.
Authentication
Connected account requiredTags
Update a transactional emailLOOPS_POST_V1_TRANSACTIONAL_EMAILS_TRANSACTIONAL_IDUpdate a transactional email by ID.Connection
Update a transactional email by ID.
Authentication
Connected account requiredTags
Ensure a draft email messageLOOPS_POST_V1_TRANSACTIONAL_EMAILS_TRANSACTIONAL_ID_DRAFTEnsure the transactional email has a draft email message. If a draft already exists it is returned unchanged; otherwise a new empty draft is created (seeded from the most recent published version when present). Use `/v1/email-messages/{emailMessageId}` to edit the draft's content.Connection
Ensure the transactional email has a draft email message. If a draft already exists it is returned unchanged; otherwise a new empty draft is created (seeded from the most recent published version when present). Use `/v1/email-messages/{emailMessageId}` to edit the draft's content.
Authentication
Connected account requiredTags
Publish a transactional email draftLOOPS_POST_V1_TRANSACTIONAL_EMAILS_TRANSACTIONAL_ID_PUBLISHPublish the transactional email's current draft email message. The draft becomes the published version and the draft is cleared.Connection
Publish the transactional email's current draft email message. The draft becomes the published version and the draft is cleared.
Authentication
Connected account requiredTags
Create a transactional groupLOOPS_POST_V1_TRANSACTIONAL_GROUPSCreate a new transactional group.Connection
Create a new transactional group.
Authentication
Connected account requiredTags
Update a transactional groupLOOPS_POST_V1_TRANSACTIONAL_GROUPS_TRANSACTIONAL_GROUP_IDUpdate a transactional group's name or description. At least one field must be provided. The reserved "Unsorted" group cannot be edited.Connection
Update a transactional group's name or description. At least one field must be provided. The reserved "Unsorted" group cannot be edited.
Authentication
Connected account requiredTags
Create an uploadLOOPS_POST_V1_UPLOADSRequest a pre-signed URL to upload an image asset. Upload the file with an HTTP `PUT` to the returned `presignedUrl` (sending the same `Content-Type` and `Content-Length`), then call `/uploads/{id}/complete` to finalize the asset.Connection
Request a pre-signed URL to upload an image asset. Upload the file with an HTTP `PUT` to the returned `presignedUrl` (sending the same `Content-Type` and `Content-Length`), then call `/uploads/{id}/complete` to finalize the asset.
Authentication
Connected account requiredTags
Complete an uploadLOOPS_POST_V1_UPLOADS_ID_COMPLETEFinalize an asset after the file has been uploaded to the pre-signed URL. Returns the public URL of the uploaded asset.Connection
Finalize an asset after the file has been uploaded to the pre-signed URL. Returns the public URL of the uploaded asset.
Authentication
Connected account requiredTags
Update a contactLOOPS_PUT_V1_CONTACTS_UPDATEUpdate a contact by `email` or `userId`. You must provide one of these parameters.<br>If you want to update a contact’s email address, the contact will first need a `userId` value. You can then make a request containing the userId field along with an updated email address.Connection
Update a contact by `email` or `userId`. You must provide one of these parameters.<br>If you want to update a contact’s email address, the contact will first need a `userId` value. You can then make a request containing the userId field along with an updated email address.
Authentication
Connected account requiredTags