Marketo · Capability

Marketo Engage Rest API — Program

Marketo Engage Rest API — Program. 10 operations. Lead operation: Marketo Get Available Form Program Member Fields. Self-contained Naftiko capability covering one Marketo business surface.

Run with Naftiko MarketoProgram

What You Can Do

GET
Getallprogrammemberfieldsusingget — Marketo Get Available Form Program Member Fields
/v1/asset/v1/form/programmemberfields-json
GET
Getprogrambynameusingget — Marketo Get Program by Name
/v1/asset/v1/program/byname-json
GET
Getprogramlistbytagusingget — Marketo Get Programs by Tag
/v1/asset/v1/program/bytag-json
GET
Getprogrambyidusingget — Marketo Get Program by Id
/v1/asset/v1/program/id-json
POST
Updateprogramusingpost — Marketo Update Program Metadata
/v1/asset/v1/program/id-json
POST
Approveprogramusingpost — Marketo Approve Program
/v1/asset/v1/program/{id}/approve-json
POST
Cloneprogramusingpost — Marketo Clone Program
/v1/asset/v1/program/{id}/clone-json
POST
Deleteprogramusingpost — Marketo Delete Program
/v1/asset/v1/program/{id}/delete-json
POST
Unapproveprogramusingpost — Marketo Unapprove Program
/v1/asset/v1/program/{id}/unapprove-json
GET
Getsmartlistbyprogramidusingget — Marketo Get Smart List by Program Id
/v1/asset/v1/program/{programid}/smartlist-json

MCP Tools

marketo-get-available-form-program

Marketo Get Available Form Program Member Fields

read-only idempotent
marketo-get-program-name

Marketo Get Program by Name

read-only idempotent
marketo-get-programs-tag

Marketo Get Programs by Tag

read-only idempotent
marketo-get-program-id

Marketo Get Program by Id

read-only idempotent
marketo-update-program-metadata

Marketo Update Program Metadata

marketo-approve-program

Marketo Approve Program

marketo-clone-program

Marketo Clone Program

marketo-delete-program

Marketo Delete Program

marketo-unapprove-program

Marketo Unapprove Program

marketo-get-smart-list-program

Marketo Get Smart List by Program Id

read-only idempotent

Capability Spec

engage-rest-program.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Marketo Engage Rest API — Program
  description: 'Marketo Engage Rest API — Program. 10 operations. Lead operation: Marketo Get Available Form Program Member
    Fields. Self-contained Naftiko capability covering one Marketo business surface.'
  tags:
  - Marketo
  - Program
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MARKETO_API_KEY: MARKETO_API_KEY
capability:
  consumes:
  - type: http
    namespace: engage-rest-program
    baseUri: https://localhost:8080
    description: Marketo Engage Rest API — Program business capability. Self-contained, no shared references.
    resources:
    - name: rest-asset-v1-form-programMemberFields.json
      path: /rest/asset/v1/form/programMemberFields.json
      operations:
      - name: getallprogrammemberfieldsusingget
        method: GET
        description: Marketo Get Available Form Program Member Fields
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: maxReturn
          in: query
          type: integer
          description: Maximum number of fields to return. Max 200, default 20
        - name: offset
          in: query
          type: integer
          description: Integer offset for paging
    - name: rest-asset-v1-program-byName.json
      path: /rest/asset/v1/program/byName.json
      operations:
      - name: getprogrambynameusingget
        method: GET
        description: Marketo Get Program by Name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: query
          type: string
          description: Name of the program
          required: true
        - name: includeTags
          in: query
          type: boolean
          description: Set true to populate program tags
        - name: includeCosts
          in: query
          type: boolean
          description: Set true to populate program costs
    - name: rest-asset-v1-program-byTag.json
      path: /rest/asset/v1/program/byTag.json
      operations:
      - name: getprogramlistbytagusingget
        method: GET
        description: Marketo Get Programs by Tag
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tagType
          in: query
          type: string
          description: Type of program tag
          required: true
        - name: tagValue
          in: query
          type: string
          description: Value of the tag
          required: true
        - name: maxReturn
          in: query
          type: integer
          description: Maximum number of channels to return. Max 200, default 20
        - name: offset
          in: query
          type: integer
          description: Integer offset for paging
    - name: rest-asset-v1-program-id}.json
      path: /rest/asset/v1/program/{id}.json
      operations:
      - name: getprogrambyidusingget
        method: GET
        description: Marketo Get Program by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
      - name: updateprogramusingpost
        method: POST
        description: Marketo Update Program Metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-asset-v1-program-id-approve.json
      path: /rest/asset/v1/program/{id}/approve.json
      operations:
      - name: approveprogramusingpost
        method: POST
        description: Marketo Approve Program
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-program-id-clone.json
      path: /rest/asset/v1/program/{id}/clone.json
      operations:
      - name: cloneprogramusingpost
        method: POST
        description: Marketo Clone Program
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-asset-v1-program-id-delete.json
      path: /rest/asset/v1/program/{id}/delete.json
      operations:
      - name: deleteprogramusingpost
        method: POST
        description: Marketo Delete Program
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-program-id-unapprove.json
      path: /rest/asset/v1/program/{id}/unapprove.json
      operations:
      - name: unapproveprogramusingpost
        method: POST
        description: Marketo Unapprove Program
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-program-programId-smartList.json
      path: /rest/asset/v1/program/{programId}/smartList.json
      operations:
      - name: getsmartlistbyprogramidusingget
        method: GET
        description: Marketo Get Smart List by Program Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: programId
          in: path
          type: integer
          description: Id for the email program containing smart list to retrieve
          required: true
        - name: includeRules
          in: query
          type: boolean
          description: Set true to populate smart list rules. Default false
  exposes:
  - type: rest
    namespace: engage-rest-program-rest
    port: 8080
    description: REST adapter for Marketo Engage Rest API — Program. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/asset/v1/form/programmemberfields-json
      name: rest-asset-v1-form-programmemberfields-json
      description: REST surface for rest-asset-v1-form-programMemberFields.json.
      operations:
      - method: GET
        name: getallprogrammemberfieldsusingget
        description: Marketo Get Available Form Program Member Fields
        call: engage-rest-program.getallprogrammemberfieldsusingget
        with:
          maxReturn: rest.maxReturn
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/byname-json
      name: rest-asset-v1-program-byname-json
      description: REST surface for rest-asset-v1-program-byName.json.
      operations:
      - method: GET
        name: getprogrambynameusingget
        description: Marketo Get Program by Name
        call: engage-rest-program.getprogrambynameusingget
        with:
          name: rest.name
          includeTags: rest.includeTags
          includeCosts: rest.includeCosts
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/bytag-json
      name: rest-asset-v1-program-bytag-json
      description: REST surface for rest-asset-v1-program-byTag.json.
      operations:
      - method: GET
        name: getprogramlistbytagusingget
        description: Marketo Get Programs by Tag
        call: engage-rest-program.getprogramlistbytagusingget
        with:
          tagType: rest.tagType
          tagValue: rest.tagValue
          maxReturn: rest.maxReturn
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/id-json
      name: rest-asset-v1-program-id-json
      description: REST surface for rest-asset-v1-program-id}.json.
      operations:
      - method: GET
        name: getprogrambyidusingget
        description: Marketo Get Program by Id
        call: engage-rest-program.getprogrambyidusingget
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updateprogramusingpost
        description: Marketo Update Program Metadata
        call: engage-rest-program.updateprogramusingpost
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/{id}/approve-json
      name: rest-asset-v1-program-id-approve-json
      description: REST surface for rest-asset-v1-program-id-approve.json.
      operations:
      - method: POST
        name: approveprogramusingpost
        description: Marketo Approve Program
        call: engage-rest-program.approveprogramusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/{id}/clone-json
      name: rest-asset-v1-program-id-clone-json
      description: REST surface for rest-asset-v1-program-id-clone.json.
      operations:
      - method: POST
        name: cloneprogramusingpost
        description: Marketo Clone Program
        call: engage-rest-program.cloneprogramusingpost
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/{id}/delete-json
      name: rest-asset-v1-program-id-delete-json
      description: REST surface for rest-asset-v1-program-id-delete.json.
      operations:
      - method: POST
        name: deleteprogramusingpost
        description: Marketo Delete Program
        call: engage-rest-program.deleteprogramusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/{id}/unapprove-json
      name: rest-asset-v1-program-id-unapprove-json
      description: REST surface for rest-asset-v1-program-id-unapprove.json.
      operations:
      - method: POST
        name: unapproveprogramusingpost
        description: Marketo Unapprove Program
        call: engage-rest-program.unapproveprogramusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/program/{programid}/smartlist-json
      name: rest-asset-v1-program-programid-smartlist-json
      description: REST surface for rest-asset-v1-program-programId-smartList.json.
      operations:
      - method: GET
        name: getsmartlistbyprogramidusingget
        description: Marketo Get Smart List by Program Id
        call: engage-rest-program.getsmartlistbyprogramidusingget
        with:
          programId: rest.programId
          includeRules: rest.includeRules
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: engage-rest-program-mcp
    port: 9090
    transport: http
    description: MCP adapter for Marketo Engage Rest API — Program. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: marketo-get-available-form-program
      description: Marketo Get Available Form Program Member Fields
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-program.getallprogrammemberfieldsusingget
      with:
        maxReturn: tools.maxReturn
        offset: tools.offset
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-program-name
      description: Marketo Get Program by Name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-program.getprogrambynameusingget
      with:
        name: tools.name
        includeTags: tools.includeTags
        includeCosts: tools.includeCosts
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-programs-tag
      description: Marketo Get Programs by Tag
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-program.getprogramlistbytagusingget
      with:
        tagType: tools.tagType
        tagValue: tools.tagValue
        maxReturn: tools.maxReturn
        offset: tools.offset
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-program-id
      description: Marketo Get Program by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-program.getprogrambyidusingget
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-program-metadata
      description: Marketo Update Program Metadata
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-program.updateprogramusingpost
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-approve-program
      description: Marketo Approve Program
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-program.approveprogramusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-clone-program
      description: Marketo Clone Program
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-program.cloneprogramusingpost
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-delete-program
      description: Marketo Delete Program
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-program.deleteprogramusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-unapprove-program
      description: Marketo Unapprove Program
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-program.unapproveprogramusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-smart-list-program
      description: Marketo Get Smart List by Program Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-program.getsmartlistbyprogramidusingget
      with:
        programId: tools.programId
        includeRules: tools.includeRules
      outputParameters:
      - type: object
        mapping: $.