Marketo Objects

Marketo uses Marketo objects (MObjects) to represent various classes like Program, Opportunity and OpportunityPersonRole.

Structure of MObjects

MObjects can be one of three types: Standard, Custom or Virtual. Standard and Custom MObjects represent distinct entities, such as Lead or Company, while Virtual Objects, such as LeadRecord, are comprised of fields from one or more objects. Virtual Objects are convenience objects used within the API but do not exist within the Marketo application.

MObjects consist of:

  • A small set of fixed attributes that are common to all MObjects
    • Required type
    • Optional externalKey
    • Read only id, createdAt, updatedAt
  • A list of one or more object specific attributes, as name/value pairs, some of which may be required. For example, name on Opportunity.
  • A list of associated object references, as object-name plus
    • Marketo ID or
    • External-key as an attribute-name/attribute-value pair.


External-keys are custom fields defined on Marketo objects, such as Lead or Opportunity. The name is the field name and value is the field value, generated in an external system. Note that Marketo does not enforce a unique constraint on these values. It is the responsibility of the API user to ensure that the values are unique. Should a duplicate occur, Marketo will use the most recently added object. This is similar to the behavior for the Email Address standard field.

Available APIs

API Can Operate On
describeMObject ActivityRecord, LeadRecord, Opportunity, OpportunityPersonRole
getMObjects Opportunity, OpportunityPersonRole, Program
syncMObjects Opportunity, OpportunityPersonRole, Program
deleteMObjects Opportunity, OpportunityPersonRole
listMObjects ActivityRecord, LeadRecord, Opportunity, OpportunityPersonRole