SOLVED

How do I get a list of Lead Fieldnames using the API?

Go to solution
Anonymous
Not applicable
Hi there,

I am stuck trying to get a list of lead fieldnames (Firstname, lastname, salutation, company etc.) using the API and the discussions about this topic only talked about geting a list of field names using the UI. 

Any ideas on how to do this? 

I have tried using the ParamsGetMObjects but using the paramsGetMObjects type = "Field" or "Fields" gave errors saying that "MObject type is unknown".

Here is the piece of code I am working with: 

            Marketo_WS_2_0.ParamsGetMObjects pgo = new Marketo_WS_2_0.ParamsGetMObjects();
            Marketo_WS_2_0.MObjCriteria moc = new Marketo_WS_2_0.MObjCriteria();
            moc.attrName = "*";
            pgo.mObjCriteriaList = new Marketo_WS_2_0.MObjCriteria[1];
            pgo.mObjCriteriaList[0] = moc;
            pgo.type = "Field"; 
            var resp = client.getMObjects(ws_header, pgo);


Thank you.
Tags (1)
1 ACCEPTED SOLUTION
Anonymous
Not applicable
You can use the DescribeMObject API call to get back the list of API Fields.  Specify LeadRecord as the objectName.

Here is a sample REQUEST/RESPONSE XML

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt="http://www.marketo.com/mktows/">
   <soapenv:Header>
      <mkt:AuthenticationHeader>
         <mktowsUserId>XXXXXXXXXXXXXXXXXX</mktowsUserId>
         <requestSignature>XXXXXXXXXXXXXXXXXX</requestSignature>
         <requestTimestamp>2013-02-12T09:16:05-07:00</requestTimestamp>
      </mkt:AuthenticationHeader>
   </soapenv:Header>
   <soapenv:Body>
      <mkt:paramsDescribeMObject>
         <objectName>LeadRecord</objectName>
      </mkt:paramsDescribeMObject>
   </soapenv:Body>
</soapenv:Envelope>


<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.marketo.com/mktows/">
   <SOAP-ENV:Body>
      <ns1:successDescribeMObject>
         <result>
            <metadata>
               <name>LeadRecord</name>
               <description>Composite object composed of fields from Lead, LeadInterest, and Company</description>
               <isCustom>false</isCustom>
               <isVirtual>true</isVirtual>
               <fieldList>
                  <field>
                     <name>Email</name>
                     <description xsi:nil="true"/>
                     <displayName>Email Address</displayName>
                     <sourceObject>Lead</sourceObject>
                     <dataType>email</dataType>
                     <size>255</size>
                     <isReadonly>false</isReadonly>
                     <isUpdateBlocked>false</isUpdateBlocked>
                     <isName xsi:nil="true"/>
                     <isPrimaryKey>false</isPrimaryKey>
                     <isCustom>false</isCustom>
                     <isDynamic>false</isDynamic>
                     <dynamicFieldRef xsi:nil="true"/>
                     <updatedAt>2012-10-16T18:46:37-05:00</updatedAt>
                  </field>

                  <field>
                    ...
                  </field>

                  <field>
                    ...
                  </field>

               </fieldList>
               <updatedAt>2013-02-08T12:33:34-06:00</updatedAt>
            </metadata>
         </result>
      </ns1:successDescribeMObject>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

View solution in original post

2 REPLIES 2
Anonymous
Not applicable
Thank you! That does the trick. 
Anonymous
Not applicable
You can use the DescribeMObject API call to get back the list of API Fields.  Specify LeadRecord as the objectName.

Here is a sample REQUEST/RESPONSE XML

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt="http://www.marketo.com/mktows/">
   <soapenv:Header>
      <mkt:AuthenticationHeader>
         <mktowsUserId>XXXXXXXXXXXXXXXXXX</mktowsUserId>
         <requestSignature>XXXXXXXXXXXXXXXXXX</requestSignature>
         <requestTimestamp>2013-02-12T09:16:05-07:00</requestTimestamp>
      </mkt:AuthenticationHeader>
   </soapenv:Header>
   <soapenv:Body>
      <mkt:paramsDescribeMObject>
         <objectName>LeadRecord</objectName>
      </mkt:paramsDescribeMObject>
   </soapenv:Body>
</soapenv:Envelope>


<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns1="http://www.marketo.com/mktows/">
   <SOAP-ENV:Body>
      <ns1:successDescribeMObject>
         <result>
            <metadata>
               <name>LeadRecord</name>
               <description>Composite object composed of fields from Lead, LeadInterest, and Company</description>
               <isCustom>false</isCustom>
               <isVirtual>true</isVirtual>
               <fieldList>
                  <field>
                     <name>Email</name>
                     <description xsi:nil="true"/>
                     <displayName>Email Address</displayName>
                     <sourceObject>Lead</sourceObject>
                     <dataType>email</dataType>
                     <size>255</size>
                     <isReadonly>false</isReadonly>
                     <isUpdateBlocked>false</isUpdateBlocked>
                     <isName xsi:nil="true"/>
                     <isPrimaryKey>false</isPrimaryKey>
                     <isCustom>false</isCustom>
                     <isDynamic>false</isDynamic>
                     <dynamicFieldRef xsi:nil="true"/>
                     <updatedAt>2012-10-16T18:46:37-05:00</updatedAt>
                  </field>

                  <field>
                    ...
                  </field>

                  <field>
                    ...
                  </field>

               </fieldList>
               <updatedAt>2013-02-08T12:33:34-06:00</updatedAt>
            </metadata>
         </result>
      </ns1:successDescribeMObject>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>