Integrate Mailchimp Marketing API to Manage Audiences in Python
- Firstly, ensure that you have the necessary API Key and List ID. These are crucial for authentication and requesting data.
- Install the Mailchimp Marketing SDK for Python. You can do this using pip, which is the package installer for Python.
pip install mailchimp-marketing
- Import and configure the Mailchimp client in your Python application. This setup includes setting your API key and server prefix (usually found at the end of your API key, after the hyphen).
from mailchimp_marketing import Client
from mailchimp_marketing.api_client import ApiClientError
mailchimp = Client()
mailchimp.set_config({
"api_key": "YOUR_API_KEY",
"server": "YOUR_SERVER_PREFIX"
})
- Retrieve your current audience lists. With the Mailchimp client configured, you can fetch the existing audiences (called Lists in Mailchimp) to manage them further.
try:
response = mailchimp.lists.all_lists()
print(response)
except ApiClientError as error:
print(f"An error occurred: {error.text}")
- Add a new contact to a specific audience. Here, you need to provide the `List ID` and user data such as the email address for adding a contact.
list_id = "YOUR_LIST_ID"
member_info = {
"email_address": "contact@example.com",
"status": "subscribed", # or 'pending' for double opt-in
"merge_fields": {
"FNAME": "First",
"LNAME": "Last"
}
}
try:
response = mailchimp.lists.add_list_member(list_id, member_info)
print("Contact added successfully:", response)
except ApiClientError as error:
print(f"An error occurred: {error.text}")
- Update subscriber information in your audience. To manage audiences effectively, updating contact information is essential. This requires specifying an MD5 hash of the lowercase version of the user's email address.
import hashlib
email_address = "contact@example.com"
subscriber_hash = hashlib.md5(email_address.lower().encode()).hexdigest()
update_info = {
"merge_fields": {
"FNAME": "Updated First Name",
"LNAME": "Updated Last Name",
}
}
try:
response = mailchimp.lists.update_list_member(list_id, subscriber_hash, update_info)
print("Contact updated successfully", response)
except ApiClientError as error:
print(f"An error occurred: {error.text}")
- Delete a contact from your audience. This involves using the MD5 hash again to identify the subscriber you wish to remove.
try:
response = mailchimp.lists.delete_list_member(list_id, subscriber_hash)
print("Contact deleted successfully")
except ApiClientError as error:
print(f"An error occurred: {error.text}")
- Consider handling errors appropriately. With network operations, errors are possible. Proper error handling ensures stability and provides clarity about issues that arise.
Remember, this setup provides a basic structure to manage audiences with the Mailchimp Marketing API. You can enhance it further by adding more features like batch operations, segment management, or even handling response pagination for large lists.