This page contains information about using the SOAP API to retrieve subscriber information based on the ListID object.
Why Retrieve Subscribers using ListID
Using the Retrieve method to get subscriber information allows you to review information about those subscribers subscribed to a specific list. You can also use this information to further segment or target specific users with more meaningful information or offers.
How to Retrieve Subscribers using ListID
Use the sample code below as a model to construct your own API calls.
Sample .NET Code
try
{
//Retrieve Subscriber
//Local variables
APIObject[] Results;
String requestID;
String status;
ListSubscriber listSub = new ListSubscriber();
int totalResults = 0;
// Instantiate the retrieve request
RetrieveRequest rr = new RetrieveRequest();
rr.ObjectType = "ListSubscriber";
// Setting up a simple listid filter
SimpleFilterPart sf = new SimpleFilterPart();
sf.SimpleOperator = SimpleOperators.equals;
sf.Property = "ListID";
sf.Value = new String[] { "1753489" };
//Add Filter and properties
rr.Filter = sf;
rr.Properties = new string[] { "SubscriberKey", "Status" };
do
{
//Retrieve Results
status = client.Retrieve(rr, out requestID, out Results);
//Display Results
for (int i = 0; i < Results.Length; i++)
{
listSub = (ListSubscriber)Results[i];
totalResults += 1;
lblMessage.Text += "<br/>Subscriber Key: " + listSub.SubscriberKey + ", Status: " + listSub.Status;
}
}
while (status.Equals("MoreDataAvailable"));//This means there are more than 2500 records
}
catch (Exception ex)
{
lblMessage.Text += ex.Message;
lblMessage.Text += "<br/>";
}
Sample Java Code (Axis 1.4)
/**
* Return List of subscribers from given List ID
*/
public void testGetSubscribersForList() {
try {
Soap stub = init();
String OBJECT_LIST_SUBSCRIBERS = "ListSubscriber";
java.util.List list = new ArrayList();
list.add("SubscriberKey");
list.add("ListID");
list.add("Status");
String listID = "12345";
RetrieveRequest retrieveRequest = new RetrieveRequest();
retrieveRequest.setObjectType(OBJECT_LIST_SUBSCRIBERS);
String[] stringArray = (String[]) list.toArray(new String[list.size()]);
retrieveRequest.setProperties(stringArray);
SimpleFilterPart filter = new SimpleFilterPart();
filter.setProperty("ListID");
filter.setSimpleOperator(SimpleOperators.equals);
java.util.List filterValues = new ArrayList();
filterValues.add(listID);
String[] filerValuesArray = (String[])filterValues.toArray(new String[filterValues.size()]);
filter.setValue(filerValuesArray);
retrieveRequest.setFilter(filter);
RetrieveRequestMsg retrieveRequestMsg = new RetrieveRequestMsg();
retrieveRequestMsg.setRetrieveRequest(retrieveRequest);
RetrieveResponseMsg retrieveResponseMsg = stub.retrieve(retrieveRequestMsg);
System.out.println("[overall status message] " + retrieveResponseMsg.getOverallStatus());
APIObject[] apiObjectList = retrieveResponseMsg.getResults();
for (APIObject dumpStepThrough : apiObjectList) {
ListSubscriber listSubscriber = (ListSubscriber) dumpStepThrough;
System.out.print(" [List ID ::: ] " + listSubscriber.getListID());
System.out.print(" [Subscriber Key ::: ] " + listSubscriber.getSubscriberKey());
System.out.println(" [Subscriber Status ::: ] " + listSubscriber.getStatus());
}
} catch (Exception e) {
e.printStackTrace();
}
}
Sample SOAP Envelope
<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:header>
<wsse:security soapenv:mustunderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:usernametoken wsu:id="UsernameToken-24440876" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:username>XXXXX</wsse:username>
<wsse:password type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXX</wsse:password>
</wsse:usernametoken>
</wsse:security>
</soapenv:header>
<soapenv:body>
<retrieverequestmsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
<retrieverequest>
<objecttype>SubscriberList</objecttype>
<properties>ID</properties>
<properties>PartnerKey</properties>
<properties>CreatedDate</properties>
<properties>Client.ID</properties>
<properties>Status</properties>
<properties>List.ID</properties>
<properties>List.ListName</properties>
<properties>Subscriber.Status</properties>
<properties>Subscriber.CreatedDate</properties>
<properties>Subscriber.ID</properties>
<properties>Subscriber.EmailAddress</properties>
<properties>Subscriber.SubscriberKey</properties>
<filter xsi:type="par:ComplexFilterPart" xmlns:par="http://exacttarget.com/wsdl/partnerAPI">
<leftoperand xsi:type="par:SimpleFilterPart">
<property>List.ID</property>
<simpleoperator>equals</simpleoperator>
<value>1718921</value>
</leftoperand>
<logicaloperator>AND</logicaloperator>
<rightoperand xsi:type="par:SimpleFilterPart">
<property>CreatedDate</property>
<simpleoperator>between</simpleoperator>
<datevalue>2013-03-01T08:42:00</datevalue>
<datevalue>2013-03-18T08:42:00</datevalue>
</rightoperand>
</filter>
<queryallaccounts>false</queryallaccounts>
</retrieverequest>
</retrieverequestmsg>
</soapenv:body>
</soapenv:envelope>