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 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>

Related Items

Retrieve Method