Retrieve a List from an Account

Why Retrieve a List from an Account 

You can retrieve a list from your account to view the information contained within that list.

How to Retrieve a List from an Account 

Use the sample code below as a model to create your own API call.

Sample .NET Code (Filtering by ListID) 

1using System;
2using System.Configuration;
3using System.Data;
4using System.Linq;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.HtmlControls;
9using System.Web.UI.WebControls;
10using System.Web.UI.WebControls.WebParts;
11using System.Xml.Linq;
12using etAPI;
13public partial class ListRetrieve : System.Web.UI.Page
14{
15    //Global Variables
16    private SoapClient client = new SoapClient();
17    protected void Page_Load(object sender, EventArgs e)
18    {
19        //Authenticate
20        client.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationSettings.AppSettings["wsUserName"];
21        client.ClientCredentials.UserName.Password = System.Configuration.ConfigurationSettings.AppSettings["wsPassword"];
22        if (!IsPostBack)
23        {
24        }
25    }
26    protected void btnSubmit_Click(object sender, EventArgs e)
27    {
28        try
29        {
30            //Retrieve Subscriber
31            //Local variables
32            APIObject[] Results;
33            String requestID;
34            String status;
35            // Instantiate the retrieve request
36            RetrieveRequest rr = new RetrieveRequest();
37            rr.ObjectType = "List";//required
38            // Setting up a simple filter
39            SimpleFilterPart sf = new SimpleFilterPart();
40            sf.SimpleOperator = SimpleOperators.equals;
41            sf.Property = "ID";
42            sf.Value = new String[] { "1007549" };
43            //Add Filter
44            rr.Filter = sf;
45            rr.Properties = new string[] { "ID", "CreatedDate", "ModifiedDate", "Client.ID", "ListName", "Description", "Category", "Type", "ListClassification" };//required
46            status = client.Retrieve(rr, out requestID, out Results);
47            lblMessage.Text += "<br/>Total Records: " + Results.Length;
48        }
49        catch (Exception ex)
50        {
51            lblMessage.Text += ex.Message;
52            lblMessage.Text += "<br/>";
53        }
54    }
55}

Sample .NET Code (Filtering by ListName) 

1private int getListID(string listName, string userName, string userPass)
2        {
3            SoapClient framework = new SoapClient();
4            framework.ClientCredentials.UserName.UserName = userName;
5            framework.ClientCredentials.UserName.Password = userPass;
6            APIObject[] result;
7            string requestID;
8            string status;
9            RetrieveRequest rr = new RetrieveRequest();
10            rr.ObjectType = "List";
11            SimpleFilterPart sf = new SimpleFilterPart();
12            sf.SimpleOperator = SimpleOperators.equals;
13            sf.Property = "ListName";
14            sf.Value = new String[] { listName };
15            rr.Filter = sf;
16            rr.Properties = new string[] { "ID", "ListName" };
17            status = framework.Retrieve(rr, out requestID, out result);
18            List l = (List)result[0];
19            return l.ID;
20        }

Sample Java Code (Axis 2.0) 

1private static void RetrieveList(PartnerAPIStub stub) {
2    try {
3    RetrieveRequestMsgDocument retrieveRequestMsgDocument = RetrieveRequestMsgDocument.Factory.newInstance();
4    RetrieveRequest rreq = com.exacttarget.wsdl.partnerapi.RetrieveRequest.Factory.newInstance();
5    // Set the Type of object you are retrieving
6    rreq.setObjectType("List");
7    String[] fields = { "ID", "ListName"};
8    rreq.setPropertiesArray(fields);
9    SimpleFilterPart nameFilter = SimpleFilterPart.Factory.newInstance();
10    nameFilter.setProperty("ListName");
11    nameFilter.setSimpleOperator(SimpleOperators.EQUALS);
12    nameFilter.setValueArray(new String[] { "Public 2" });
13    //Setting a filter is optional, comment out the line below to not specify a filter
14    rreq.setFilter(nameFilter);
15    RetrieveRequestMsgDocument.RetrieveRequestMsg retrieveRequestMsg = retrieveRequestMsgDocument.addNewRetrieveRequestMsg();
16    retrieveRequestMsg.setRetrieveRequest(rreq);
17    RetrieveResponseMsgDocument retrieveResponseMsgDocument = stub.Retrieve(retrieveRequestMsgDocument);    RetrieveResponseMsgDocument.RetrieveResponseMsg retrieveResponseMsg = retrieveResponseMsgDocument
18    .getRetrieveResponseMsg();
19    APIObject[] results = retrieveResponseMsg.getResultsArray();
20    System.out.println(retrieveResponseMsg.getOverallStatus());
21    if (retrieveResponseMsg.getOverallStatus().equals("OK") || retrieveResponseMsg.getOverallStatus().equals("MoreDataAvailable")){
22    for (APIObject apiObj : results) {
23    if (apiObj instanceof List) {
24    System.out.println("List");
25    System.out.println("ListID:" + ((List) apiObj).getID() + "");
26    System.out.println("ListName: " + ((List) apiObj).getListName());
27    }
28    }
29    }
30    } catch (RemoteException e) {
31    e.printStackTrace();
32    } catch (Exception e) {
33    e.printStackTrace();
34    }
35    }

SOAP Envelope (Filtering by ListName) 

1<soapenv:Body>
2      <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
3         <RetrieveRequest>
4            <ObjectType>List</ObjectType>
5            <Properties>ListName</Properties>
6            <Properties>ID</Properties>
7            <Filter xsi:type="SimpleFilterPart">
8               <Property>ListName</Property>
9               <SimpleOperator>equals</SimpleOperator>
10               <Value>All Subscribers</Value>
11            </Filter>
12         </RetrieveRequest>
13      </RetrieveRequestMsg>
14</soapenv:Body>