Mass Approve Landing Pages Via API

If you have ever updated a landing page template or edited a form used by multiple landing pages in Marketo, you know how time-consuming re-approving each page can be. Fortunately, the Marketo API can streamline this process with two simple calls and Postman's runner tool.

By Landing Page Template

While there isn’t a direct API endpoint to fetch all landing pages by template, you can retrieve all landing pages with the GET Landing Pages endpoint or use tools like Dataketo to do so. You can then filter by template ID to find pages associated with a specific template.

Get Forms Used By

Use the GET Form Used By endpoint to find all assets associated with a form, including landing pages and smart campaigns. Here’s an example of the call, where you’ll replace the ID with the relevant form ID:

https://{{munchkin}}.mktorest.com/rest/asset/v1/form/1273/usedBy.json?maxReturn=200&offset=0

The response is a JSON object. I recommend using this tool to convert JSON to CSV format, which you can then refine further. Ensure only landing page IDs remain, with the column titled "id". Save it as a CSV for the next step.

Approve Landing Page Draft

Next, use the approve landing page draft endpoint with a POST request. Note the {{id}} variable in the URL—this should match the CSV column name to iterate correctly in the runner tool.

https://{{munchkin}}.mktorest.com/rest/asset/v1/landingPage/{{id}}/approveDraft.json

Running the API Calls with Postman

Open your Postman collection, click “Run” on the top right, and deselect all endpoints except “Approve Landing Page Draft.” Upload your CSV file, set a 300 ms delay to avoid exceeding Marketo’s API limits, and click “Run.” You’ll see landing pages start approving in Marketo.

Postman runner settings for Marketo API