.NET Wrapper for the MailChimp v2.0 API, built with MailChimp love ❤️
Install the NuGet package from the package manager console:
Install-Package MailChimp.NET
Next, you will need to provide MailChimp.NET with your API key in code. Need help finding your API key? Check here: http://kb.mailchimp.com/article/where-can-i-find-my-api-key
In your application, call:
// Pass the API key on the constructor:
MailChimpManager mc = new MailChimpManager("YourApiKeyHere-us2");
// Next, make any API call you'd like:
ListResult lists = mc.GetLists();
using MailChimp;
using MailChimp.Lists;
MailChimpManager mc = new MailChimpManager("YourApiKeyHere-us2");
ListResult lists = mc.GetLists();
// For each list
foreach(var list in lists.Data)
{
// Write out the list name:
Debug.WriteLine("Users for the list " + list.Name);
// Get the first 100 members of each list:
MembersResult results = mc.GetAllMembersForList(list.Id, "subscribed", 0, 100);
// Write out each member's email address:
foreach(var member in results.Data)
{
Debug.WriteLine(member.Email);
}
}
MailChimpManager mc = new MailChimpManager("YourApiKeyHere-us2");
// Create the email parameter
EmailParameter email = new EmailParameter()
{
Email = "[email protected]"
};
EmailParameter results = mc.Subscribe("YourListID", email);
// optionally create a class that inherits MergeVar and add any additional merge variable fields:
[System.Runtime.Serialization.DataContract]
public class MyMergeVar : MergeVar
{
[System.Runtime.Serialization.DataMember(Name = "FNAME")]
public string FirstName { get; set; }
[System.Runtime.Serialization.DataMember(Name = "LNAME")]
public string LastName { get; set; }
}
MyMergeVar myMergeVars = new MyMergeVar();
myMergeVars.Groupings = new List<Grouping>();
myMergeVars.Groupings.Add(new Grouping());
myMergeVars.Groupings[0].Id = 1234; // replace with your grouping id
myMergeVars.Groupings[0].GroupNames = new List<string>();
myMergeVars.Groupings[0].GroupNames.Add("Your Group Name");
myMergeVars.FirstName = "Testy";
myMergeVars.LastName = "Testerson";
MailChimpManager mc = new MailChimpManager("YourApiKeyHere-us2");
// Create the email parameter
EmailParameter email = new EmailParameter()
{
Email = "customeremail@righthere.com"
};
EmailParameter results = mc.Subscribe("YourListID", email, myMergeVars);
// or use the Dictionary to specify the fields and values.
// GetMemberInfo will always return the fields and values using the dictionary and not the custom class.
MergeVar myMergeVars = new MergeVar();
myMergeVars.Groupings = new List<Grouping>();
myMergeVars.Groupings.Add(new Grouping());
myMergeVars.Groupings[0].Id = 1234; // replace with your grouping id
myMergeVars.Groupings[0].GroupNames = new List<string>();
myMergeVars.Groupings[0].GroupNames.Add("Your Group Name");
myMergeVars.Add("FNAME", "Testy");
myMergeVars.Add("LNAME", "Testerson");
MailChimpManager mc = new MailChimpManager("YourApiKeyHere-us2");
// Create the email parameter
EmailParameter email = new EmailParameter()
{
Email = "customeremail@righthere.com"
};
EmailParameter results = mc.Subscribe("YourListID", email, myMergeVars);
MailChimpManager mc = new MailChimpManager("YourApiKeyHere-us2");
ListResult lists = mc.GetLists();
// For each list
foreach(var list in lists.Data)
{
Debug.WriteLine("Information for " + list.Name);
// Get the location data for each list:
List<SubscriberLocation> locations = mc.GetLocationsForList(list.Id);
// Write out each of the locations:
foreach(var location in locations)
{
Debug.WriteLine("Country: {0} - {2} users, accounts for {1}% of list subscribers", location.Country, location.Percent, location.Total);
}
}
This project is not affiliated with MailChimp. All contributors to this project are unpaid average folks (just like you!) who choose to volunteer their time. If you like MailChimp and want to contribute, we would appreciate your help! To get started, just fork the repo, make your changes and submit a pull request.
Also: If you're reading this and you're from MailChimp, we wouldn't mind some swag.
Here is the progress so far (according to the MailChimp API docs ) :
- Campaigns related: 100% (15 of 15)
- Ecomm related: 100% (3 of 3)
- Folder related: 100% (4 of 4)
- Gallery related: 100% (7 of 7)
- List related: 78% (32 of 41)
- Helper related: 70% (7 of 10)
- Reports related: 27% (5 of 18)
- Templates related: 100% (6 of 6)
- User related: 86% (6 of 7)
- Vip related: 0% (0 of 4)
- Goal related 0% (0 of 2)
- Conversations related 0% (0 of 3)
Overall: 71% (85 of 120)