Email Campaigns and Marketing Automation on iOS powered by EmailOctopus
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


CI Status Version License Platform

EmailOctopus is an affordable email campaign and marketing automation platform. EmailOctopusKit makes use of the EmailOctopus API and lets you manage contacts and email lists on EmailOctopus.

One possible use case of this pod might be signing up mobile app users to your email lists and sending them automated emails (e.g. Welcome Email).

New to EmailOctopus? Use this link to signup and get $15 credit.


To run the example project, clone the repo, and run pod install from the Example directory first.


To use the EmailOctopus to send email campaigns, you need to create an account at and Amazon SES. EmailOctopus has a detailed API documentation and FAQs that can help you navigating the process.


EmailOctopusKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'EmailOctopusKit'

Alternatively, copy the EmailOctopus.swift and Keychain.swift files from the Classes folder into your project and add the Security.framework to your project.


The primary use case of the EmailOctopus API for usage in iOS is managing contacts and email lists. EmailOctopusKit lets you create, edit and delete contacts and manage lists. It also has (limited) support for campaign management.


Register your EmailOctopus API key:


This will save your API key to the keychain. You only need to set it once (e.g. in AppDelegate).

Managing Contacts

EmailOctopus.Lists.getContact("contact-id", in: "list-id") { (error, result) in }
EmailOctopus.Lists.getSubscribedContacts(of: "list-id") { (error, result) in }
EmailOctopus.Lists.getUnsubscribedContacts(of: "list-id") { (error, result) in }

EmailOctopus.Lists.createContact("email-address", in: "list-id", fields: [:]) { (error, result) in }
EmailOctopus.Lists.updateContact("contact-id", of: "list-id", newEmail: nil, newFields: nil, subscribed: true) { (error, result) in }
EmailOctopus.Lists.deleteContact("contact-id", of:"list-id") { (error, result) in }

Managing Email Lists

EmailOctopus.Lists.getAllLists { (error, result) in }
EmailOctopus.Lists.getList("list-id") { (error, result) in }

EmailOctopus.Lists.createList(name: "list-name") { (error, result) in }
EmailOctopus.Lists.deleteList("list-id") { (error, result) in }

Campaign Management

EmailOctopus.Campaigns.getAllCampaigns() { (error, result) in }
EmailOctopus.Campaigns.getCampaign("campaign-id") { (error, result) in }


EmailOctopusKit was created by Josef Moser. I am an independent software developer and co-founder of Cora Health and Cryptoradar.

Find me on: Github or Twitter


We welcome contribution to this project by opening issues or pull request.


EmailOctopusKit is available under the MIT license. See the LICENSE file for more info. If you'd like to acknowledge the author of EmailOctopusKit, please set a link to this GitHub page.