Knowledgebase

Sort by:
Issue Description You make a REST API call and receive an error code 1006 "Field '****' not found"   Issue Resolution This error lets you know you are referencing a field by the wrong API name. The ****  will let you know which field you are referencing incorrectly. To resolve this Export a list of API names for the fields in your instance. Locate the desired field and its API name in the list Update your REST API call with the correct API field name   Who This Solution Applies To Customers using REST API Is this article helpful ? YesNo
View full article
Issue Description You need to revert a data value change for a field on multiple leads. Issue Resolution There is no way through the UI to "undo" a data value change (unless it was a boolean field, in which case there are only two possible values.) You can certainly use a Smart List to identify whose values have changed, but there no way to go back to the old value (unless it's stored elsewhere in another field or through another data store, along with the API). However, you can use the API to extract the data value change activity from the activity log, which would include the old and new values, extract the original values, then use the API to rewrite the old values back to the lead record. http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Activities/getLeadChangesU… Is this article helpful ? YesNo
View full article
Issue Description REST API call, Get Lead Activities , is returning 603 error   Issue Resolution Error 603 refers to 'access denied' where authentication is successful but the user doesn’t have sufficient permission to call this API. Additional permissions may need to be assigned to the user role. http://developers.marketo.com/rest-api/error-codes/   Go to Admin > Users and Roles Select API User and identify what role it is assigned to (e.g. API role) Go to Roles and check the permissions assigned to the API role Check to see if the API role does not have 'Read-Only Activity' or 'Read-Write Activity' permission In order to make a Get Lead Activities REST API call with the API user, the API role of the user must be modified to have permissions to  'Read-Only Activity' or 'Read-Write Activity'. If you use Workspaces and Partitions, make sure the API User has the necessary access. Is this article helpful ? YesNo
View full article
Issue Description You have created a SFDC Custom Object that is associated with an object in Salesforce that is not Lead, Contact, or Account, and you are wondering how to sync this with Marketo. Issue Resolution Per the Marketo Documentation, it is only possible to natively sync SFDC Custom Objects to Marketo that are associated with the SFDC Lead, Contact or Account objects. https://docs.marketo.com/display/public/DOCS/SFDC+Sync%3A+Custom+Object+Sync However, there is a possible workaround for this. Our suggestion is to create a place-holder Marketo Custom Object, and then sync the data from Salesforce to Marketo via REST API. Using this SFDC Documentation https://developer.salesforce.com/page/Creating_REST_APIs_using_Apex_REST This reviews how to set up a workflow in Salesforce to send data to Marketo with REST API. This is commonly used in the context of SFDC Custom Objects associated with the Opportunity Object in SFDC. Clients create a Marketo Custom Object to send this SFDC Custom Object data to. This will also give you the option to trigger off updates to the Marketo Custom Object. Who This Solution Applies To Clients with SFDC and Marketo Custom Objects
View full article
Issue Description The Get Lead Activities REST API is not returning any activities even though t he lead referenced definitely has multiple activities of the type being called.   REQUEST: https://[munchkinID].mktorest.com/rest/v1/activities.json?access_token=x&leadIds=123&nextPageToken=ABC&activityTypeIds=46   RESPONSE: { "requestId": "xyz123", "success": true, "nextPageToken": "ABC", "moreResult": true }   Issue Resolution The Get Lead Activity REST API are reliant on timestamps for their nextPageToken. Each Get Lead Activity call will go through 300 activities of ALL types from the timestamp placed on the nextPageToken. This is supported by the article http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#/Activities/getLeadActivitiesUsingGET   "By default, the endpoints mentioned in this section will return 300 activity items at a time.  If the moreResult attribute is true, this means that more results are available. Continue to call the endpoint until the moreResult attribute returns false, which means that there are no more results available."   Based on that, the reason why the API call does not return any activities is that it does not find any activities of type 46 in the 300 activities it checks from the timestamp placed on the nextPageToken   So when making a Get Lead Activity call for a specific activity type, ensure that nextPageToken is as close as to the timestamp of the specific activities Is this article helpful ? YesNo
View full article
Included in this article Note: This post will be updated to reflect changes made to activity records returned by the API due to migration to new infrastructure. Overview With the rollout of Marketo’s next-generation Activity Service beginning in May 2017, we will be unable to enforce the uniqueness or presence of the integer “id” field in activities, data value changes, or lead deletion records returned by Marketo’s APIs.  This change will begin rolling out to all subscriptions over the remaining first half of 2017. To avoid service disruptions for integrations which retrieve activity records, the id field should be treated as optional.  Cutover of this change will begin to affect subscriptions with the September (Q3) 2017 release. This change will affect the following endpoints: REST API Get Lead Activities​ Get Lead Changes​ Get Deleted Leads​ Add Custom Activities​ SOAP API getLeadActivity​ getLeadChanges​ The affected SOAP types are ActivityRecord and LeadChangeRecord. Examples The following examples show record types which will be affected.  In both examples, the effected field is called “id.” Example REST Field: id ​ Example SOAP Field: id ​ FAQs Do I need to update my WSDL version if I'm using SOAP integration? Yes. The marketoGUID field will only be returned in activities when using the WSDL version 3.1 or later.  The new URI will follow this pattern: https:// {munchkinId}.mktoapi.com/soap/mktows/3_1  It may also be obtained through the Admin->Web Services menu in your subscription When can I expect to see each change? Beginning with our Q1 Minor Release on April 7th, activity records retrieved via Marketo’s SOAP or REST APIs will include a new field called “marketoGUID”.  The value of this field will match the value of the “id” field, but will be a string type field.  Some time after the Q2 release beginning May 17th 2017, the “id” field will stop being returned as part of these records, and the value of marketoGUID will become a 128-bit string. What do I need to do? If you are responsible for code that deals with Marketo activities, you should determine whether your code relies on the presence or uniqueness of “id” field for Marketo activities, and then remove that requirement.  In an upcoming release, an additional string field called “marketoGUID” will be added.  “marketoGUID” should be considered the unique ID for retrieved activities when it becomes available.  If you are not, you should consult with your team and relay this message to the appropriate stakeholders. Who will this change affect? This change should only affect client and partner integrations which retrieve activity records from Marketo, and only if the integrations rely on either the presence and/or type of the “id” field in the response, or rely on the uniqueness of the field.  After the rollout of Orion AS, and the disabling of activity writes to MySQL, the “id” field will no longer be available and will be supplanted by a unique string id field. Check out our documentation on the Marketo Developers Site here: https://developers.marketo.com/blog/important-change-activity-records-marketo-apis/
View full article
Issue Description When using the GET activities API with a specific list Id in the parameter, the response will get all the specified activities from other assets as well. This is the endpoint for this article. Issue Resolution Instead of using list Id (listId) as a parameter, change that to asset Ids (assetIds) in the API call. assetIds is the Id of the primary asset for an activity. Then, the response will narrow down the activities associated to the primary asset by looking up the Id during the call.
View full article
Issue Description Persons do not trigger Smart Campaigns as expected when using the REST API 'Push Leads to Marketo' endpoint. Issue Resolution Marketo utilizes a special trigger for persons pushed to Marketo using REST API. The 'Person is Pushed to Marketo' trigger will qualify persons upserted by the 'Push to Marketo' endpoint.
View full article
Issue Description Does Marketo have an SLA for REST API? Issue Resolution No, Marketo does not have an SLA for REST API. Our REST API Responses time out after 30 seconds. Unless written within the contract for SLAs there is not a commitment for Marketo to provide an SLA for REST API Responses. As mentioned in our API License document: http://developers.marketo.com/api-license/ in section 6 B: "B. No Support. Unless otherwise agreed to in writing, Marketo shall not be responsible for providing any support, maintenance, or other services (or level of service) to You or a user of the Software Application for the Marketo APIs." Who This Solution Applies To REST API Users
View full article
Note: Please ensure that you have access to an experienced Web developer. Marketo Technical Support is not set up to assist with troubleshooting code. The listOperation SOAP API call allows for the ability to interact with static lists (My Lists) in the Lead Database. The supported operations are adding a lead to list (ADDTOLIST), checking if a lead is a member of the list (ISMEMBEROFLIST), and removing a lead from a list (REMOVEFROMLIST) Note, there is no operation to create a new list (or delete) via the SOAP API. The list must be created beforehand in the Lead Database. In the examples, the list is named "Static List". Example 1 - Request: Adding multiple leads into the list <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>ADDTOLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>215</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 1 - Response: <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:successListOperation>          <result>             <success>true</success>             <statusList xsi:nil="true"/>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 2 - Request: Check to see if leads are a part of list. One lead (Lead ID #213) is and the other (Lead ID #70) is not  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>ISMEMBEROFLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>70</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 2 - Response: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>false</success>             <statusList>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>213</keyValue>                   </leadKey>                   <status>true</status>                </leadStatus>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>70</keyValue>                   </leadKey>                   <status>false</status>                </leadStatus>             </statusList>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 3 - Request: Similar to Example 2, but all leads are valid  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>ISMEMBEROFLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>215</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 3 - Response:  <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:successListOperation>          <result>             <success>true</success>             <statusList xsi:nil="true"/>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 4 - Request: Remove leads from the list. One lead (Lead ID #213) is a member of the list, the other (Lead ID #70) is not  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>REMOVEFROMLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>70</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Request 4 - Response:  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.marketo.com/mktows/">    <SOAP-ENV:Body>       <ns1:successListOperation>          <result>             <success>false</success>             <statusList>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>213</keyValue>                   </leadKey>                   <status>true</status>                </leadStatus>                <leadStatus>                   <leadKey>                      <keyType>IDNUM</keyType>                      <keyValue>70</keyValue>                   </leadKey>                   <status>false</status>                </leadStatus>             </statusList>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example 5 - Request: Similar to Example 4, but all leads are valid  <soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/" xmlns:mkt = "http://www.marketo.com/mktows/">     <soapenv:Header>         <mkt:AuthenticationHeader>          <mktowsUserId>[User Id]</mktowsUserId>          <requestSignature>[Signature]</requestSignature>          <requestTimestamp>[yyyy-mm-ddThh:mm:ss-00:00]</requestTimestamp>         </mkt:AuthenticationHeader>     </soapenv:Header>     <soapenv:Body>         <mkt:paramsListOperation>             <listOperation>REMOVEFROMLIST</listOperation>             <listKey>                 <keyType>MKTOLISTNAME</keyType>                 <keyValue>Static List</keyValue>             </listKey>             <listMemberList>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>213</keyValue>                 </leadKey>                 <leadKey>                     <keyType>IDNUM</keyType>                     <keyValue>215</keyValue>                 </leadKey>             </listMemberList>         </mkt:paramsListOperation>     </soapenv:Body> </soapenv:Envelope> Example 5 - Response:  <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:successListOperation>          <result>             <success>true</success>             <statusList xsi:nil="true"/>          </result>       </ns1:successListOperation>    </SOAP-ENV:Body> </SOAP-ENV:Envelope> Related Learning Resources Marketo SOAP API Reference
View full article
Issue Description API user making bulk extract calls is encountering the error "1029, Export daily quota exceeded" but under Admin>Web services> Request in the 7 days shows that you have not reached the "Daily Request limit". Issue Resolution The "Daily Request Limit" that can be found under Admin>Web Services>API call information is different from the limit that is in place for the bulk extract limit. The API limit is a on the number of calls that can be made, while the bulk extract limit is a limit on the amount of data that can be exported used based on the file size of the bulk extract job. If you notice this behavior, please reach out to your CSM for more information about increasing the Bulk Extract limit.
View full article
Using the Marketo SOAP API, you can check whether or not your website visitors have filled out a form and present them content accordingly. The following code below is unsupported and is intended to help you develop your own solution. In the resources section of the Marketo website, we use this method for our premium content. For leads who have already registered, their links go directly to the resource. Leads who haven't registered are given links to a landing page. In both cases, the link appears the same. Behind the scenes, a cookie is used to store whether or not this lead has registered: If the user has the premium registration cookie, the premium links are shown. If the user does not have that cookie, the lead's record is retrieved via the SOAP API. Based on the lead's record: If the lead has a valid email address, the premium content links are shown and the premium registration cookie is set. If not, the premium content links are not shown. Instead, they take leads to a landing page to fill out a form. First, you'll need to develop a SOAP API connection to Marketo. The attached ZIP file has a sample connection PHP file. You'll need to make the following changes in this file: ... $this->access_key = 'Your API Access Key Goes Here'; $this->secret_key = 'Your Secret API Key Goes Here'; // // The endpoint is in the "SOAP API Setup" page in the Marketo Admin section // ex. $soap_end_point = 'https://xx-1.marketo.com/soap/mktows/'; // $soap_end_point = 'Your SOAP API End Point URL Goes Here'; // // Errors are sent to this email address. Your web server // must be configured to send email for this to work correctly. // // ex. $this->error_email_address = 'example@example.com'; // $this->error_email_address = 'Put your debug email address here'; ... After creating your SOAP API connection, the next step is to implement the logic that determines which content to show if the user is logged in or not. The get_premium_url_status() function returns true if the lead has the premium cookie or if they've filled out a form. Otherwise, it returns false. You can use that result to determine what content the lead should see. The attached ZIP file has a PHP file that contains an example of this check.
View full article
Attached to this article is a ASP.NET C# implementation of Marketo's SOAP API. This is just a sample, but it may be useful for providing a starting point for building your own SOAP API client. Learn more: Marketo SOAP API Note: You will need access to experienced developers This is not supported development by Marketo Support. Our support engineers are not able to provide assistance in building or troubleshooting SOAP API's.
View full article
Issue Description How to Pull Data for Program ID, similarly to Campaign ID. (Example): Pull Individual Program Activity Data, then join Data with Programs via Program ID. Issue Resolution [ Note ]: You can not get the Program directly from the Activity Endpoint. - After one has obtained the Smart Campaign ID , they can use a seperate API Call to get the Program ID . - Within the Get Activity API Call , there will be a Campaign ID . - Once this has been obtained, one can make a Get Campaign API Call with that Campaign ID and it will return the Program ID . [ Get Activity ]: > Use this [ Get Activity - URL ] to Obtain Campaign ID . http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#/Activities/getLeadActivitiesUsingGET [ Get Campaign, with the ID ]: > Use this [ Get Campaign, with the ID - URL ] to Obtain Program ID . http://developers.marketo.com/rest-api/endpoint-reference/lead-database-endpoint-reference/#!/Campaigns/getCampaignsUsingGET The Program ID is not something that is returned in an Activity Call . The above method is the quickest possible way to obtain that information. Who This Solution Applies To API Users
View full article
Issue Description You have exported the fields under the Field Management section as mentioned in this document to view the API name of the Marketo fields  You see there are few fields missing and would like to know their API names. Issue Resolution Here's a list of the Marketo Standard fields that are available via API. If there are fields which are not available in the list export, it means they likely do not have an API name or not accessible through API calls.
View full article
Issue Description You want to use the /rest/v1/leads/delete.json API endpoint to delete multiple lead from your instance in one call. Issue Resolution You can include up to 300 lead IDs in the body of the call and delete them at once. To delete more leads than that you will need to make multiple calls with batches of 300 leads or less. Who This Solution Applies To Customers using the REST API
View full article
Issue Description When a lead is created through an API call, the Reason and Source attributes say "Web Service API" with no further detail. Issue Resolution As described in the doc here, https://docs.marketo.com/display/DOCS/Understanding+System+Managed+Fields, "Source" and "Reason" fields are managed by Marketo: 1. Web Service API for Original Source Type means Person was discovered by a web service API. 2. For Registration Source Type, it states that Person was created via SOAP/REST API When a lead is created via API, no additional "Source" or "Reason" is provided to Marketo. A possible workaround is to create a custom field and populate it as needed through the API.
View full article
Issue Description Occasionally Bulk Import API calls will return a blank response. Issue Resolution You can add the following header: 'Transfer-Encoding: chunked' to your API calls and it will fix this issue. Please note that adding this header on the client side will cause cURL to send data in chunks. Who This Solution Applies To People using the Bulk Import API call
View full article
Issue Description Is there a way for a user to see or pull which users used data towards their daily Bulk API usage? Issue Resolution The API will allow you to see if the user you are connected with has used data, but it won't give you visibility into other API users' usage.  There is currently no report in the UI that shows usage across users.
View full article
Issue Description You would like to update My Token values from the Request Trigger Campaigns endpoint, but are unsure of why My Token types can be updated.   Issue Resolution The following My Token types can be updated from the Request Trigger Campaigns endpoint : Date Image Number Rich Text Score Text An example of a JSON body in the POST request may look like: {    "input":       {          "leads" : [             {                "id" : 1             }          ],          "tokens" : [             {                "name": "{{my.DateToken}}",                "value": "10/16/2020"             },             {                "name": "{{my.EmailScriptToken}}",                "value": "{$lead.country}"             },             {                "name": "{{my.ImageToken}}",                "value": "https://www.marketo.com/"             },             {                "name": "{{my.NumberToken}}",                "value": 222             },             {                "name": "{{my.RichTextToken}}",                "value": "<strong>Hello World!</strong>"             },             {                "name": "{{my.ScoreToken}}",                "value": -10             },              {                "name": "{{my.TextToken}}",                "value": "Hello World!"             }          ]       } }
View full article