What can you do with it?

The Marketo API allows you to manage marketing automation campaigns and lead data. You can create and update leads, manage campaigns and programs, track lead activities, handle email communications, work with forms and landing pages, manage custom objects, and implement comprehensive marketing automation workflows.

How to use it?

Basic Command Structure

/your-marketo-connection [action] [required-parameters] [optional-parameters]

Parameters

Required:

  • action - The action to perform (get, create, update, delete, trigger, send)
  • entity - The entity type (lead, campaign, program, email, form, list)
  • id - Entity ID for specific operations

Optional:

  • filter_type - Filter type for searches (email, id, etc.)
  • filter_values - Values to filter by
  • lookup_field - Field to use for lead lookup
  • activity_type_ids - Activity types to retrieve
  • fields - Specific fields to return
  • tokens - Campaign tokens for personalization

Tools

Get Lead by ID

Retrieve a specific lead using their unique ID.

Parameters:

  • lead_id (required) - Lead ID to retrieve

Example:

/your-marketo-connection
action: get
entity: lead
lead_id: 318581

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 318581,
      "firstName": "John",
      "lastName": "Doe",
      "email": "john.doe@example.com",
      "updatedAt": "2023-04-11T08:59:18Z",
      "createdAt": "2023-04-10T10:30:00Z"
    }
  ]
}

Create or Update Leads

Create new leads or update existing ones based on lookup field.

Parameters:

  • action_type (required) - Action type (createOrUpdate)
  • lookup_field (required) - Field to use for lookup (email, id)
  • leads (required) - Array of lead objects
  • email (required) - Lead email address
  • first_name (optional) - Lead first name
  • last_name (optional) - Lead last name
  • company (optional) - Lead company
  • title (optional) - Lead job title

Example:

/your-marketo-connection
action: create
entity: leads
action_type: createOrUpdate
lookup_field: email
leads: [
  {
    "email": "john.doe@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "company": "Acme Corp",
    "title": "Software Engineer"
  }
]

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 318581,
      "status": "updated"
    }
  ]
}

Get Leads by Filter

Retrieve leads using filter criteria like email addresses.

Parameters:

  • filter_type (required) - Filter type (email, id, leadPartitionId)
  • filter_values (required) - Comma-separated values to filter by
  • fields (optional) - Specific fields to return

Example:

/your-marketo-connection
action: get
entity: leads
filter_type: email
filter_values: john.doe@example.com,jane.smith@example.com
fields: id,firstName,lastName,email,company

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 318581,
      "firstName": "John",
      "lastName": "Doe",
      "email": "john.doe@example.com",
      "company": "Acme Corp"
    },
    {
      "id": 318582,
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "company": "Tech Solutions"
    }
  ]
}

Get Lead Activities

Retrieve lead activities based on activity type IDs.

Parameters:

  • activity_type_ids (required) - Comma-separated activity type IDs
  • next_page_token (optional) - Token for pagination
  • lead_ids (optional) - Specific lead IDs to filter

Example:

/your-marketo-connection
action: get
entity: activities
activity_type_ids: 1,6,12
next_page_token: GIYDAOBNGEYS2MBWKQYDAORQGA5DAMBOGAYDAKZQGAYDALBQ

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "nextPageToken": "GIYDAOBNGEYS2MBWKQYDAORQGA5DAMBOGAYDAKZQGAYDALBQ",
  "moreResult": true,
  "result": [
    {
      "id": 2,
      "leadId": 318581,
      "activityDate": "2023-04-11T08:59:18Z",
      "activityTypeId": 6,
      "primaryAttributeValue": "Visited Web Page",
      "attributes": [
        {
          "name": "Web Page",
          "value": "https://example.com/pricing"
        }
      ]
    }
  ]
}

Add Leads to List

Add leads to a specific static list.

Parameters:

  • list_id (required) - List ID to add leads to
  • lead_ids (required) - Array of lead IDs to add

Example:

/your-marketo-connection
action: add
entity: leads_to_list
list_id: 1001
lead_ids: [318581, 318582]

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 318581,
      "status": "added"
    },
    {
      "id": 318582,
      "status": "added"
    }
  ]
}

Get Campaigns

Retrieve a list of available campaigns.

Parameters:

  • program_ids (optional) - Filter by specific program IDs
  • is_triggerable (optional) - Filter by triggerable campaigns only

Example:

/your-marketo-connection
action: get
entity: campaigns
is_triggerable: true

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 1001,
      "name": "Welcome Email Campaign",
      "description": "Send welcome email to new leads",
      "type": "trigger",
      "programId": 2001,
      "workspaceName": "Default",
      "createdAt": "2023-04-10T10:30:00Z",
      "updatedAt": "2023-04-11T08:59:18Z"
    }
  ]
}

Trigger Campaign

Execute a campaign for specific leads with optional tokens.

Parameters:

  • campaign_id (required) - Campaign ID to trigger
  • lead_ids (required) - Array of lead IDs to include
  • tokens (optional) - Array of token objects for personalization

Example:

/your-marketo-connection
action: trigger
entity: campaign
campaign_id: 1001
lead_ids: [318581, 318582]
tokens: [{"name": "{{my.discount-code}}", "value": "SAVE20"}]

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 318581,
      "status": "triggered"
    },
    {
      "id": 318582,
      "status": "triggered"
    }
  ]
}

Get Programs

Retrieve a list of marketing programs.

Parameters:

  • status (optional) - Filter by program status
  • max_return (optional) - Maximum number of programs to return

Example:

/your-marketo-connection
action: get
entity: programs
status: on
max_return: 20

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 2001,
      "name": "Onboarding Program",
      "description": "New customer onboarding workflow",
      "type": "nurture",
      "channel": "Email",
      "status": "on",
      "workspace": "Default",
      "createdAt": "2023-04-10T10:30:00Z"
    }
  ]
}

Get Forms

Retrieve a list of forms available in Marketo.

Parameters:

  • status (optional) - Filter by form status
  • folder_id (optional) - Filter by folder ID

Example:

/your-marketo-connection
action: get
entity: forms
status: approved

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 1001,
      "name": "Contact Us Form",
      "description": "Main contact form for website",
      "createdAt": "2023-04-10T10:30:00Z",
      "url": "https://app-sjdemo.marketo.com/#FO1001A1",
      "status": "approved",
      "language": "English",
      "locale": "en_US"
    }
  ]
}

Send Sample Email

Send a sample email for testing purposes.

Parameters:

  • email_id (required) - Email ID to send
  • email_address (required) - Recipient email address
  • text_only (optional) - Send text-only version
  • lead_id (optional) - Lead ID for personalization

Example:

/your-marketo-connection
action: send
entity: sample_email
email_id: 3001
email_address: test@example.com
text_only: false
lead_id: 318581

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 1,
      "status": "sent"
    }
  ]
}

Get Custom Objects

Retrieve custom object definitions.

Parameters:

  • names (optional) - Filter by specific custom object names

Example:

/your-marketo-connection
action: get
entity: custom_objects

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "name": "car_c",
      "displayName": "Car",
      "description": "Car purchase tracking",
      "createdAt": "2023-04-10T10:30:00Z",
      "idField": "marketoGUID",
      "dedupeFields": ["vin"],
      "searchableFields": [["vin"], ["marketoGUID"], ["leadId"]]
    }
  ]
}

Create Custom Object Records

Create or update custom object records.

Parameters:

  • custom_object_name (required) - Custom object API name
  • action_type (required) - Action type (createOrUpdate)
  • dedupe_by (required) - Deduplication method
  • records (required) - Array of custom object records

Example:

/your-marketo-connection
action: create
entity: custom_object_records
custom_object_name: car_c
action_type: createOrUpdate
dedupe_by: dedupeFields
records: [
  {
    "vin": "19UYA31581L000000",
    "leadId": 318581,
    "make": "Toyota",
    "model": "Camry",
    "year": 2023
  }
]

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "seq": 0,
      "marketoGUID": "dff23271-f996-47d7-984f-f2676861b5fb",
      "status": "created"
    }
  ]
}

Delete Leads

Delete leads from the Marketo database.

Parameters:

  • lead_ids (required) - Array of lead IDs to delete

Example:

/your-marketo-connection
action: delete
entity: leads
lead_ids: [318581, 318582]

Response:

{
  "requestId": "e42b#14272d07d78",
  "success": true,
  "result": [
    {
      "id": 318581,
      "status": "deleted"
    },
    {
      "id": 318582,
      "status": "deleted"
    }
  ]
}

Notes

All responses include requestId for tracking and success boolean indicating operation status. Lead activities use nextPageToken for pagination when moreResult is true. Campaign types include trigger (real-time) and batch (scheduled). Custom objects support relationships with leads. Tokens enable dynamic content in campaigns. Activity type IDs map to specific Marketo activities like email opens, web visits, and form fills. Uses PinkConnect proxy connection. Lead fields support both standard and custom attributes. Programs organize campaigns and assets in hierarchical structures.