# Maildrip API Documentation

This is the complete API documentation for connecting to the Maildrip API using MindCloud's Universal API.

MindCloud offers one normalized API to access 3,400+ apps from a single place. It centralizes authentication and normalizes app APIs so they are easier and more consistent to use.

## Quickstart

1. A **MindCloud account** — sign in or create an account at [MindCloud](https://app.mindcloud.co).
2. A **MindCloud API Key** — create one in [API Keys](https://app.mindcloud.co/user/api-keys). Keep it on your server.
3. At least one **Maildrip connection** — create or choose one in [Connections](https://app.mindcloud.co/credentials). Note its `connectionId`.

```text
POST https://connect.mindcloud.co/v2/universal/apps/maildrip/actions/{actionSlug}/run
```

## Maildrip actions

- POST `add-a-contact` Add a contact
- POST `add-a-new-card-for-the-user` Add a new card for the user
- POST `add-a-new-sending-node-to-a-domain-group` Add a new sending node to a domain group
- POST `add-a-new-user-to-mumara` Add a new user to Mumara
- POST `add-a-user-to-the-campaign` Add a user to the campaign
- POST `add-an-email-to-a-campaign` Add an email to a campaign
- POST `add-contact-to-opt-in-page-s-groups` Add contact to opt-in page's groups
- POST `add-contacts-in-bulk-to-a-group` Add contacts in bulk to a group
- GET `analyze-email-subject-or-body-content-and-provide-a-performance-report` Analyze email subject or body content and provide a performance report
- POST `atomically-create-a-contact-group-and-attach-it-to-an-opt-in-page` Atomically create a contact group and attach it to an opt-in page
- POST `atomically-create-a-draft-campaign-draft-email-for-an-opt-in-page` Atomically create a draft campaign + draft email for an opt-in page
- POST `authorize-a-transaction` Authorize a transaction
- GET `cancel-a-subscription` Cancel a subscription
- PUT `cancel-an-active-subscription-for-a-user` Cancel an active subscription for a user
- PUT `change-user-password` Change user password
- POST `clone-a-public-template-or-user-owned-template` Clone a public template or user-owned template
- POST `clone-an-instant-email` Clone an instant email
- POST `create-a-new-campaign` Create a new campaign
- POST `create-a-new-contacts-group` Create a new contacts group
- POST `create-a-new-opt-in-page` Create a new opt-in page
- POST `create-a-new-subscription-for-a-user` Create a new subscription for a user
- POST `create-a-pay-as-you-go-transaction` Create a pay-as-you-go transaction
- POST `create-a-payment-intent` Create a payment intent
- POST `create-a-subscription` Create a subscription
- POST `create-a-top-up-transaction` Create a top-up transaction
- POST `create-an-instant-email` Create an instant email
- PUT `deactivate-the-account-of-the-logged-in-user` Deactivate the account of the logged-in user
- DELETE `delete-a-campaign-variable` Delete a campaign variable
- DELETE `delete-a-card` Delete a card
- DELETE `delete-a-contact-from-a-specific-group` Delete a contact from a specific group
- DELETE `delete-a-contact-group` Delete a contact group
- DELETE `delete-a-landing-page-by-id` Delete a landing page by ID
- DELETE `delete-a-sending-domain-from-mumara` Delete a sending domain from Mumara
- DELETE `delete-a-user-from-mumara` Delete a user from Mumara
- DELETE `delete-a-user-s-card` Delete a user's card
- DELETE `delete-an-attachment-from-a-email` Delete an attachment from a email
- DELETE `delete-an-email-from-a-campaign` Delete an email from a campaign
- DELETE `delete-an-opt-in-page-by-id` Delete an opt-in page by ID
- DELETE `delete-campaign` Delete campaign
- DELETE `delete-instant-email-by-id` Delete instant email by ID
- DELETE `delete-user-from-campaign` Delete user from campaign
- POST `duplicate-an-existing-campaign` Duplicate an existing campaign
- PUT `edit-a-contact` Edit a contact
- PUT `edit-campaign-variables` Edit campaign variables
- PUT `edit-instant-email` Edit instant email
- POST `execute-an-mcp-tool` Execute an MCP tool
- PUT `fix-and-optimize-manual-email-content-using-ai-and-analysis-report-paid-users-only` Fix and optimize manual email content using AI and analysis report (paid users only)
- POST `generate-a-new-ai-email-template-from-a-natural-language-prompt` Generate a new AI email template from a natural language prompt
- POST `generate-email-subject-or-body-content-using-ai` Generate email subject or body content using AI
- GET `get-a-published-opt-in-page-by-id-public-no-auth-required` Get a published opt-in page by ID (public, no auth required)
- GET `get-account-health-status` Get account health status
- GET `get-ai-assistant-capabilities` Get AI assistant capabilities
- GET `get-all-active-promos` Get all active promos
- GET `get-all-available-plans` Get all available plans
- GET `get-all-available-subscription-plans-with-ids` Get all available subscription plans with IDs
- GET `get-all-contact-groups` Get all contact groups
- GET `get-all-distinct-metadata-attribute-keys-for-user-s-contacts` Get all distinct metadata attribute keys for user's contacts
- GET `get-an-email-by-id-for-a-specific-campaign` Get an email by ID for a specific campaign
- GET `get-an-opt-in-page-by-id` Get an opt-in page by ID
- GET `get-api-credentials` Get API credentials
- GET `get-campaign-variables` Get campaign variables
- GET `get-contact-count-by-attribute-filters` Get contact count by attribute filters
- GET `get-contact-counts-for-an-opt-in-page-s-linked-groups` Get contact counts for an opt-in page's linked groups
- GET `get-contacts-in-a-specific-group-or-all-contacts` Get contacts in a specific group or all contacts
- GET `get-details-about-a-specific-tool` Get details about a specific tool
- GET `get-details-of-a-specific-sending-node` Get details of a specific sending node
- GET `get-emails-for-a-specific-recipient-in-a-campaign` Get emails for a specific recipient in a campaign
- GET `get-instant-email-by-id` Get instant email by ID
- GET `get-landing-page-by-id` Get landing page by ID
- GET `get-landing-page-details-for-a-campaign` Get landing page details for a campaign
- GET `get-landing-pages` Get landing pages
- GET `get-mcp-server-information-and-capabilities` Get MCP server information and capabilities
- GET `get-opt-in-pages` Get opt-in pages
- GET `get-page-setup-checklist-and-stats-in-a-single-call` Get page, setup, checklist, and stats in a single call
- GET `get-pre-publish-checklist-for-an-opt-in-page` Get pre-publish checklist for an opt-in page
- GET `get-promo-pricing-for-a-plan-public-all-users-see-promo-prices` Get promo pricing for a plan (public - all users see promo prices)
- GET `get-public-templates-with-filtering-and-sorting` Get public templates with filtering and sorting
- GET `get-segment-statistics` Get segment statistics
- GET `get-sending-domains-from-mumara` Get sending domains from Mumara
- GET `get-suggested-prompts-for-the-chat-interface` Get suggested prompts for the chat interface
- GET `get-top-up-rate` Get top-up rate
- GET `get-updated-pay-as-you-go-rate` Get updated pay-as-you-go rate
- GET `get-user-details` Get user details
- GET `get-user-transactions` Get user transactions
- GET `get-user-s-saved-cards-from-paystack` Get user's saved cards from Paystack
- GET `get-utm-attribution-breakdown-for-an-opt-in-page-s-signups` Get UTM attribution breakdown for an opt-in page's signups
- POST `google-oauth-signup-or-login` Google OAuth signup or login
- POST `identify-a-contact-and-sync-attributes-from-your-app` Identify a contact and sync attributes from your app
- POST `import-contact-groups-to-an-instant-email` Import contact groups to an instant email
- POST `import-contacts-from-groups-to-a-campaign` Import contacts from groups to a campaign
- POST `import-contacts-to-a-campaign` Import contacts to a campaign
- POST `import-csv-contacts-to-an-instant-email` Import CSV contacts to an instant email
- POST `iteratively-improve-an-existing-ai-generated-email-template` Iteratively improve an existing AI-generated email template
- POST `join-a-campaign-as-a-guest` Join a campaign as a guest
- GET `list-all-available-mcp-tools` List all available MCP tools
- POST `login-to-the-application` Login to the application
- POST `manually-regenerate-ai-review-costs5-ai-credits` Manually regenerate AI review (costs 5 AI credits)
- POST `manually-trigger-segment-re-evaluation` Manually trigger segment re-evaluation
- PUT `modify-contacts-by-adding-them-to-specified-groups-and-optionally-to-a-campaign` Modify contacts by adding them to specified groups and optionally to a campaign.
- PUT `partially-update-an-opt-in-page-eg-rename` Partially update an opt-in page (e.g. rename)
- POST `perform-a-detailed-analysis-of-email-content-and-provide-manual-recommendations-paid-users-only` Perform a detailed analysis of email content and provide manual recommendations (paid users only)
- POST `platform-internal-identify-sync-dashboard-user-attributes` Platform-internal identify — sync dashboard user attributes
- GET `preview-contacts-in-segment-for-campaign` Preview contacts in segment for campaign
- GET `preview-segment-membership-without-saving` Preview segment membership without saving
- PUT `publish-an-opt-in-page` Publish an opt-in page
- PUT `reactivate-a-canceled-subscription-for-a-user` Reactivate a canceled subscription for a user
- POST `reactivate-a-deactivated-account` Reactivate a deactivated account
- POST `receive-webhook-from-mumara` Receive webhook from Mumara
- POST `record-promo-usage-when-user-subscribes` Record promo usage when user subscribes
- POST `register-a-new-user` Register a new user
- DELETE `remove-contacts-from-a-group-or-delete-them-entirely-asynchronous` Remove contacts from a group or delete them entirely (asynchronous).
- PUT `rename-a-user-owned-template` Rename a user-owned template
- PUT `reorder-emails-in-a-campaign` Reorder emails in a campaign
- POST `resend-verification-email` Resend verification email
- POST `reset-password-using-the-reset-password-hash` Reset password using the reset password hash
- PUT `restore-draft-email-to-drafts` Restore draft email to drafts
- GET `restore-draft-email-to-editing` Restore draft email to editing
- GET `retrieve-a-campaign-by-id` Retrieve a campaign by ID
- GET `retrieve-active-emails-of-a-campaign` Retrieve active emails of a campaign
- GET `retrieve-campaigns` Retrieve campaigns
- GET `retrieve-data-of-a-campaign` Retrieve data of a campaign
- GET `retrieve-deleted-emails-of-a-campaign` Retrieve deleted emails of a campaign
- GET `retrieve-draft-emails-of-a-campaign` Retrieve draft emails of a campaign
- GET `retrieve-instant-emails` Retrieve instant emails
- GET `retrieve-sending-nodes-from-mumara` Retrieve sending nodes from Mumara
- GET `retrieve-the-user-s-saved-cards` Retrieve the user's saved cards
- GET `retrieve-user-templates` Retrieve User Templates
- GET `retrieve-users-associated-with-a-campaign` Retrieve users associated with a campaign
- PUT `save-email-as-draft` Save email as draft
- PUT `save-email-draft-for-a-campaign` Save email draft for a campaign
- POST `send-a-chat-message-to-the-ai-assistant` Send a chat message to the AI assistant
- POST `send-a-test-mail-for-an-instant-email` Send a test mail for an instant email
- POST `send-a-test-mail-for-the-campaign` Send a test mail for the campaign
- POST `send-a-transactional-email-using-a-template` Send a transactional email using a template
- POST `send-a-transactional-email-with-raw-data` Send a transactional email with raw data
- DELETE `send-email-to-trash` Send email to trash
- POST `send-email-via-mumara` Send email via Mumara
- POST `send-onboarding-test-mail-using-dedicated-test-domains` Send onboarding test mail using dedicated test domains
- POST `send-reset-password-email` Send reset password email
- PUT `set-a-card-as-default` Set a card as default
- PUT `set-a-user-s-card-as-the-default-card` Set a user's card as the default card
- PUT `set-campaign-to-target-a-dynamic-segment` Set campaign to target a dynamic segment
- POST `submit-an-appeal-for-account-blocking` Submit an appeal for account blocking
- PUT `toggle-template-public-private-triggers-ai-review-on-first-publish` Toggle template public/private (triggers AI review on first publish)
- POST `top-up-subscription-wallet` Top up subscription wallet
- PUT `unpublish-an-opt-in-page` Unpublish an opt-in page
- PUT `update-a-user-in-mumara` Update a user in Mumara
- PUT `update-a-user-s-subscription-plan` Update a user's subscription plan
- PUT `update-account-settings-for-the-logged-in-user` Update account settings for the logged-in user
- PUT `update-campaign-interval` Update campaign interval
- PUT `update-campaign-status` Update campaign status
- PUT `update-contact-group-description` Update contact group description
- PUT `update-email-configuration-for-a-campaign` Update email configuration for a campaign
- PUT `update-email-content-for-a-campaign` Update email content for a campaign
- PUT `update-email-settings-for-the-logged-in-user` Update email settings for the logged-in user
- PUT `update-landing-page-details-for-a-campaign` Update landing page details for a campaign
- PUT `update-metadata-attributes-for-multiple-contacts` Update metadata attributes for multiple contacts
- PUT `update-sending-node-status` Update sending node status
- PUT `update-subscription-plan` Update subscription plan
- PUT `update-the-low-credit-limit-for-email-credits` Update the low credit limit for email credits
- POST `upload-attachment-to-an-email` Upload attachment To An Email
- POST `upload-image-for-an-opt-in-page` Upload image for an opt-in page
- POST `upload-profile-photo-for-the-user` Upload profile photo for the user
- POST `validate-a-payment-intent` Validate a payment intent
- GET `verify-a-paystack-transaction` Verify a Paystack transaction
- GET `verify-domain-dns-records` Verify domain DNS records
- GET `verify-the-setup-health-of-an-opt-in-page` Verify the setup health of an opt-in page
