Retrieve Subscribers Using ListID
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 on 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 PHP Code
<?php
require('exacttarget_soap_client.php');
$wsdl = 'https://YOUR_SUBDOMAIN.soap.marketingcloudapis.com/etframework.wsdl';
try {
/* Create the Soap Client */
$client = new Marketing CloudSoapClient($wsdl, array('trace'=>1));
/* Set username and password here */
$client->username = 'xxx';
$client->password = 'xxx';
$rr = new Marketing Cloud_RetrieveRequest();
$rr->ObjectType = "SubscriberList";
$rr->Properties = array();
$rr->Properties[] = "ID";
$rr->Properties[] = "List.ListName";
$rr->Properties[] = "List.ID";
$rr->Properties[] = "Status";
$rr->Properties[] = "Subscriber.EmailAddress";
$sfp= new Marketing Cloud_SimpleFilterPart();
$sfp->Value = array("123123123"); // This is the ListID that you want to get the subscribers for
$sfp->SimpleOperator = Marketing Cloud_SimpleOperators::equals;
$sfp->Property="List.ID";
$rr->Filter = new SoapVar($sfp, SOAP_ENC_OBJECT, 'SimpleFilterPart', "http://exacttarget.com/wsdl/partnerAPI");
$rr->Options = NULL;
$rrm = new Marketing Cloud_RetrieveRequestMsg();
$rrm->RetrieveRequest = $rr;
$results = $client->Retrieve($rrm);
var_dump($results);
} catch (Exception $e) {
var_dump($e);
}
?>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>