Back

Marketo API Essential Guide

Aug 15, 20246 minute read

What type of API does Marketo provide?

Marketo offers multiple types of APIs, with REST being the primary and most actively developed API. The key points about Marketo's API offerings are:

  1. Marketo's API types include REST, SOAP, JavaScript, and User Management APIs.

  2. The REST API is the most comprehensive and actively developed API for Marketo.

  3. Key features of Marketo's REST API:

    • Allows remote execution of many system capabilities
    • Provides fine-grained control of a Marketo instance
    • Covers a wide range of functionalities, including creating programs, bulk lead import, and more
  4. Marketo provides three REST APIs for interacting with data:

    • Asset API (for managing folders, programs, emails, landing pages, etc.)
    • Identity API (for retrieving access tokens)
    • Lead Database API (for managing leads, companies, opportunities, etc.)
  5. The SOAP API is still functional but no longer under active development. Marketo recommends focusing on the REST API for future development.

  6. JavaScript API is also available, though less prominently mentioned.

  7. User Management API allows CRUD operations on user records in Marketo.

Does the Marketo API have webhooks?

Marketo Webhooks

  • Marketo allows the use of webhooks to communicate with third-party web services.
  • Webhooks support GET or POST HTTP methods to push or retrieve data from a specific URL.
  • You can create webhooks in Marketo and add them to Smart Campaigns.

Webhook Configuration

  • URL: Enter the URL to submit your request to the web service.
  • Request Type: Specify the HTTP method (GET or POST).
  • Payload Template: For POST requests, enter the template for data to transmit in the body. Supports formats like XML, JSON, or SOAP.
  • Request Token Encoding: Specify JSON or Form/Url encoding for special characters.
  • Response Type: Select JSON or XML for the response format.
  • Custom Headers: Add custom HTTP headers as key-value pairs.

API vs Webhooks

  • An API enables two-way communication between software applications driven by requests.
  • A webhook is a lightweight API that powers one-way data sharing triggered by events.

Limitations and Considerations

  • You cannot call a specific instance of Marketo using SOAP or REST using the webhook in that same instance.
  • There are API call limits to consider when integrating with Marketo.

Updating Lead Records

To update a lead record using webhooks:

  1. Create a webhook to retrieve data from the external system (e.g. Vibes).
  2. Create a separate webhook to update the Marketo lead record with the retrieved data.
  3. Use a Smart Campaign to trigger the webhooks in sequence.

The exact implementation will depend on the specific APIs and data formats involved. You may need to parse the response from the first webhook and use that data in the payload of the second webhook to update the Marketo record.

It's recommended to work with a developer to properly set up the webhooks and handle any authentication, data parsing, and error handling required when integrating external APIs with Marketo.

Rate Limits and other limitations

Here are the key API rate limits for the Marketo API:

Daily Quota

  • Most Marketo subscriptions are allocated 50,000 REST API calls per day
  • The daily quota resets at 12:00 AM CST each day
  • The daily quota can be increased by contacting Marketo support or your account manager

Rate Limit

  • API access is limited to 100 calls per 20 seconds
  • This rate limit is shared among all third-party API services
  • Best practice is to limit utilization to 50 calls per 20 seconds or fewer

Concurrency Limit

  • Maximum of 10 concurrent API calls allowed
  • This limit is shared among all API services and users
  • Concurrent calls are those still processing and not yet returned

Other Limits

  • Standard calls are limited to 8KB URI length and 1MB body size
  • Bulk APIs have a 10MB payload size limit
  • Default daily bulk export allocation is 500MB, shared between leads and activities

Key Points

  • The rate and concurrency limits cannot be increased, unlike the daily quota
  • Use bulk and batch methods when possible to optimize API usage
  • Monitor API usage regularly and remove unused integrations
  • Cache access tokens to reduce overhead of fetching new ones

In summary, Marketo enforces strict API rate limits to ensure fair usage across all integrations. Developers should design their applications with these limits in mind, using batching and bulk APIs where possible, and implementing best practices like caching and exponential backoff for retries.

Latest API Version

Based on the search results provided, here are the key points about the most recent version of the Marketo API:

  1. The current version of the Marketo REST API is v1. This can be seen in the API endpoint example: "/rest/v1/leads.json".

  2. There is no explicit mention of a newer API version in the search results. The documentation and examples all refer to v1 of the REST API.

  3. Marketo exposes a REST API which allows for remote execution of many of the system's capabilities, including lead database and asset management.

  4. The API has some usage limits:

    • Daily quota of 50,000 API calls per day (resets at 12:00AM CST)
    • Rate limit of 100 calls per 20 seconds
    • Concurrency limit of 10 concurrent API calls
  5. There are ongoing updates and enhancements to the API functionality, as evidenced by the platform update announcements. However, these updates do not mention a new API version.

  6. Marketo is planning to migrate all developer documentation to the Adobe Experience League and Adobe Developer website in July 2024.

  7. There is an announcement about deprecating support for authentication using access tokens in a query parameter of REST API calls in a future release (specific date TBD).

In summary, while there are ongoing updates and enhancements to the API, the most recent version of the Marketo API appears to still be v1 of the REST API. Marketo continues to update and improve this version rather than releasing a completely new version number.

How to get a Marketo developer account and API Keys?

To get a developer account for Marketo to create an API integration, you'll need to follow these steps:

  1. Apply for a Marketo partner account:

    • Go to Marketo's partner program application page
    • Fill out the application form
    • Note that there may be minimum requirements to be eligible for a partner account
  2. Once approved, you'll get access to a sandbox account for development purposes.

  3. In your Marketo instance, you'll need to set up API access:

    • Log in to Marketo as an admin
    • Go to Admin > Users & Roles
    • Create a new API-only user role with the necessary permissions (e.g. Read-Only Lead)
    • Create a new API-only user and assign it the role you created
    • Go to Admin > LaunchPoint and create a new custom service
    • Associate the custom service with your API-only user
    • Get the Client ID and Client Secret for the custom service
  4. Use the Client ID and Client Secret to generate an access token for making API calls.

  5. Find your REST API endpoint URL in Admin > Web Services.

What can you do with the Marketo API?

Here are the key data models you can interact with using the Marketo API, along with what is possible for each:

Lead Database

  • Leads

    • Get lead details
    • Create/update leads
    • Merge leads
    • Get lead activities and changes
  • Companies/Accounts

    • Get company details
    • Create/update companies
  • Opportunities

    • Get opportunity details
    • Create/update opportunities
  • Custom Objects

    • Get custom object details
    • Create/update custom object records
    • Delete custom object records
  • Activities

    • Get lead activity data
    • Get lead changes
  • Static Lists

    • Import leads to lists
    • Perform list operations

Assets

  • Programs

    • Get program details
    • Get program channels and tags
  • Campaigns

    • Get campaign details
    • Request/schedule campaigns
  • Emails

    • Get email details
    • Create/update emails
  • Forms

    • Get form details
    • Create/update forms
  • Landing Pages

    • Get landing page details
    • Create/update landing pages
  • Snippets

    • Get snippet details
    • Create/update snippets
  • Files

    • Get file details
    • Upload/update files

Bulk Operations

  • Bulk Lead Import/Export
  • Bulk Activity Export
  • Bulk Custom Object Import/Export

Other

  • User Management

    • Create/update/delete users
  • Authentication

    • Generate access tokens

The API allows you to perform CRUD operations on most of these data models, as well as execute various marketing actions like scheduling campaigns. The bulk APIs enable large-scale data import and export.