Skip to main content


Sync overview

The Marketo source supports both Full Refresh and Incremental syncs. You can choose if this connector will copy only the new or updated data, or all rows in the tables and columns you set up for replication, every time a sync is run.

This connector is based on the Airbyte CDK.

Output schema

This connector can be used to sync the following tables from Marketo:

  • activities_X where X is an activity type contains information about lead activities of the type X. For example, activities_send_email contains information about lead activities related to the activity type send_email. See the Marketo docs for a detailed explanation of what each column means.
  • activity_types. Contains metadata about activity types. See the Marketo docs for a detailed explanation of columns.
  • campaigns. Contains info about your Marketo campaigns. Marketo docs.
  • leads. Contains info about your Marketo leads. Marketo docs.
  • lists. Contains info about your Marketo static lists. Marketo docs.
  • programs. Contins info about your Marketo programs. Marketo docs.

Data type mapping

Integration TypeAirbyte TypeNotes
arrayarrayprimitive arrays are converted into arrays of the types described in this table
int, longnumber



Full Refresh SyncYes
Incremental - Append SyncYes

Performance considerations

By default, Marketo caps all accounts to 50,000 API calls per day.

By default, this connector caps itself to 40,000 API calls per day. But you can also customize the maximum number of API calls this source connector makes per day to Marketo (which may be helpful if you have for example other applications which are also hitting the Marketo API). If this source connector reaches the maximum number you configured, it will not replicate any data until the next day.

If the 50,000 limit is too stringent, contact Marketo support for a quota increase.

Getting started


  • (Optional) Whitelist Airbyte's IP address if needed
  • An API-only Marketo User Role
  • An Airbyte Marketo API-only user
  • A Marketo API Custom Service
  • Marketo Client ID & Client Secret
  • Marketo Base URL

Setup guide

Step 1: (Optional) whitelist Airbyte's IP address

If you don't have IP Restriction enabled in Marketo, skip this step.

If you have IP Restriction enabled in Marketo, you'll need to whitelist the IP address of the machine running your Airbyte instance. To obtain your IP address, run curl from the node running Airbyte. You might need to enlist an engineer to help with this. Copy the IP address returned and keep it on hand.

Once you have the IP address, whitelist it by following the Marketo documentation for allowlisting IP addresses for API based access.

Step 2: Create an API-only Marketo User Role

Follow the Marketo documentation for creating an API-only Marketo User Role.

Step 3: Create an Airbyte Marketo API-only user

Follow the Marketo documentation to create an API only user

Step 4: Create a Marketo API custom service

Follow the Marketo documentation for creating a custom service for use with a REST API.

Make sure to follow the "Credentials for API Access" section in the Marketo docs to generate a Client ID and Client Secret. Once generated, copy those credentials and keep them handy for use in the Airbyte UI later.

Step 5: Obtain your Endpoint and Identity URLs provided by Marketo

Follow the Marketo documentation for obtaining your base URL. Specifically, copy your Endpoint without "/rest" and keep them handy for use in the Airbyte UI.

We're almost there! Armed with your Endpoint & Identity URLs and your Client ID and Secret, head over to the Airbyte UI to setup Marketo as a source.



VersionDatePull RequestSubject
0.1.42022-06-2013930Process failing creation of export jobs
0.1.32021-12-108429Updated titles and descriptions
0.1.22021-12-038483Improve field conversion to conform schema
0.1.12021-11-290000Fix timestamp value format issue
0.1.02021-09-065863Release Marketo CDK Connector