Module: MailchimpAPI::Audience::Members::APIs

Includes:
Utils, Pagination::ListEachItemHelper
Included in:
MailchimpAPI::Audience::Members, MailchimpAPI::Audience::Members
Defined in:
lib/mailchimp-api/resources/audience/members.rb

Overview

Module with endpoints for Members APIs

Instance Method Summary collapse

Instance Method Details

#add_or_update(list_id, email, query: nil, body: nil, headers: nil) ⇒ Response

Add or update a list member

Examples:

Add or update a member

members.add_or_update('list123', '[email protected]', body: {
  status: 'subscribed',
  merge_fields: { FNAME: 'Updated Name' }
})

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • email (String)

    The member’s email address

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Member attributes

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:

  • (Response)

    API response containing the member



107
108
109
110
# File 'lib/mailchimp-api/resources/audience/members.rb', line 107

def add_or_update(list_id, email, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members/#{subscriber_hash(email)}"
  client.put(path, query: query, body: body, headers: headers)
end

#archive(list_id, email, query: nil, body: nil, headers: nil) ⇒ Response

Archive a list member (soft delete)

Examples:

Archive a member

members.archive('list123', '[email protected]')

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • email (String)

    The member’s email address

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:



74
75
76
77
# File 'lib/mailchimp-api/resources/audience/members.rb', line 74

def archive(list_id, email, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members/#{subscriber_hash(email)}"
  client.delete(path, query: query, body: body, headers: headers)
end

#create(list_id, query: nil, body: nil, headers: nil) ⇒ Response

Add a new member to a list

Examples:

Add a new subscriber

members.create('list123', body: {
  email_address: '[email protected]',
  status: 'subscribed',
  merge_fields: { FNAME: 'John', LNAME: 'Doe' }
})

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Member attributes

  • headers (Hash) (defaults to: nil)

    Optional request headers

Options Hash (body:):

  • :email_address (String)

    The member’s email address

  • :status (String)

    Subscription status (subscribed, unsubscribed, etc.)

  • :merge_fields (Hash)

    Merge fields like FNAME, LNAME

Returns:

  • (Response)

    API response containing the created member



46
47
48
49
# File 'lib/mailchimp-api/resources/audience/members.rb', line 46

def create(list_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members"
  client.post(path, query: query, body: body, headers: headers)
end

#delete_permanent(list_id, email, query: nil, body: nil, headers: nil) ⇒ Response

Permanently delete a list member

Examples:

Permanently delete a member

members.delete_permanent('list123', '[email protected]')

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • email (String)

    The member’s email address

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:



121
122
123
124
# File 'lib/mailchimp-api/resources/audience/members.rb', line 121

def delete_permanent(list_id, email, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members/#{subscriber_hash(email)}/actions/delete-permanent"
  client.post(path, query: query, body: body, headers: headers)
end

#each(list_id, query: nil, body: nil, headers: nil) {|Hash| ... } ⇒ Object

Iterate through all members in a list

Examples:

Iterate through list members

members.each('list123') do |member|
  puts member[:email_address]
end

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Yields:

  • (Hash)

    Each list member



136
137
138
# File 'lib/mailchimp-api/resources/audience/members.rb', line 136

def each(list_id, query: nil, body: nil, headers: nil, &block)
  list_each_item(:members, list_id, query: query, body: body, headers: headers, &block)
end

#list(list_id, query: nil, body: nil, headers: nil) ⇒ Response

List members in a specific list

Examples:

Get first 10 members of a list

members.list('list123')

Get members 11-20

members.list('list123', query: { count: 10, offset: 10 })

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Options Hash (query:):

  • :count (Integer)

    Number of records to return (default: 10)

  • :offset (Integer)

    Number of records to skip (default: 0)

Returns:

  • (Response)

    API response containing list members



26
27
28
29
# File 'lib/mailchimp-api/resources/audience/members.rb', line 26

def list(list_id, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members"
  client.get(path, query: query, body: body, headers: headers)
end

#show(list_id, email, query: nil, body: nil, headers: nil) ⇒ Response

Show details for a specific member

Examples:

Get member details

members.show('list123', '[email protected]')

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • email (String)

    The member’s email address

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Optional request body

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:

  • (Response)

    API response containing member details



60
61
62
63
# File 'lib/mailchimp-api/resources/audience/members.rb', line 60

def show(list_id, email, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members/#{subscriber_hash(email)}"
  client.get(path, query: query, body: body, headers: headers)
end

#update(list_id, email, query: nil, body: nil, headers: nil) ⇒ Response

Update a list member

Examples:

Update member status

members.update('list123', '[email protected]', body: {
  status: 'unsubscribed'
})

Parameters:

  • list_id (String)

    The ID of the Mailchimp list

  • email (String)

    The member’s email address

  • query (Hash) (defaults to: nil)

    Optional query parameters

  • body (Hash) (defaults to: nil)

    Updated member attributes

  • headers (Hash) (defaults to: nil)

    Optional request headers

Returns:

  • (Response)

    API response containing updated member



90
91
92
93
# File 'lib/mailchimp-api/resources/audience/members.rb', line 90

def update(list_id, email, query: nil, body: nil, headers: nil)
  path = "/lists/#{list_id}/members/#{subscriber_hash(email)}"
  client.patch(path, query: query, body: body, headers: headers)
end