Marketo · Capability

Marketo Engage Rest API — Content

Marketo Engage Rest API — Content. 14 operations. Lead operation: Marketo Rearrange Email Modules. Self-contained Naftiko capability covering one Marketo business surface.

Run with Naftiko MarketoContent

What You Can Do

POST
Rearrangemodulesusingpost — Marketo Rearrange Email Modules
/v1/asset/v1/email/{id}/content/rearrange-json
POST
Updateemailcomponentcontentusingpost — Marketo Update Email Content Section
/v1/asset/v1/email/{id}/content/htmlid-json
POST
Addmoduleusingpost — Marketo Add Email Module
/v1/asset/v1/email/{id}/content/{moduleid}/add-json
POST
Deletemoduleusingpost — Marketo Delete Module
/v1/asset/v1/email/{id}/content/{moduleid}/delete-json
POST
Duplicatemoduleusingpost — Marketo Duplicate Email Module
/v1/asset/v1/email/{id}/content/{moduleid}/duplicate-json
POST
Renameusingpost — Marketo Rename Email Module
/v1/asset/v1/email/{id}/content/{moduleid}/rename-json
GET
Getemaildynamiccontentusingget — Marketo Get Email Dynamic Content
/v1/asset/v1/email/{id}/dynamiccontent/contentid-json
POST
Updateemaildynamiccontentusingpost — Marketo Update Email Dynamic Content Section
/v1/asset/v1/email/{id}/dynamiccontent/contentid-json
GET
Gettemplatecontentbyidusingget — Marketo Get Email Template Content by Id
/v1/asset/v1/emailtemplate/{id}/content
POST
Updatelandingpagecontentusingpost — Marketo Update Landing Page Content Section
/v1/asset/v1/landingpage/{id}/content/contentid-json
POST
Removelandingpagecontentusingpost — Marketo Delete Landing Page Content Section
/v1/asset/v1/landingpage/{id}/content/{contentid}/delete-json
GET
Getlandingpagedynamiccontentsusingget — Marketo Get Landing Page Dynamic Content
/v1/asset/v1/landingpage/{id}/dynamiccontent/contentid-json
POST
Updatelandingpagedynamiccontentusingpost — Marketo Update Landing Page Dynamic Content Section
/v1/asset/v1/landingpage/{id}/dynamiccontent/contentid-json
POST
Updatedynamiccontentusingpost — Marketo Update Snippet Dynamic Content
/v1/asset/v1/snippet/{id}/dynamiccontent/segmentid-json

MCP Tools

marketo-rearrange-email-modules

Marketo Rearrange Email Modules

marketo-update-email-content-section

Marketo Update Email Content Section

marketo-add-email-module

Marketo Add Email Module

marketo-delete-module

Marketo Delete Module

marketo-duplicate-email-module

Marketo Duplicate Email Module

marketo-rename-email-module

Marketo Rename Email Module

marketo-get-email-dynamic-content

Marketo Get Email Dynamic Content

read-only idempotent
marketo-update-email-dynamic-content

Marketo Update Email Dynamic Content Section

marketo-get-email-template-content

Marketo Get Email Template Content by Id

read-only idempotent
marketo-update-landing-page-content

Marketo Update Landing Page Content Section

marketo-delete-landing-page-content

Marketo Delete Landing Page Content Section

marketo-get-landing-page-dynamic

Marketo Get Landing Page Dynamic Content

read-only idempotent
marketo-update-landing-page-dynamic

Marketo Update Landing Page Dynamic Content Section

marketo-update-snippet-dynamic-content

Marketo Update Snippet Dynamic Content

Capability Spec

engage-rest-content.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Marketo Engage Rest API — Content
  description: 'Marketo Engage Rest API — Content. 14 operations. Lead operation: Marketo Rearrange Email Modules. Self-contained
    Naftiko capability covering one Marketo business surface.'
  tags:
  - Marketo
  - Content
  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-content
    baseUri: https://localhost:8080
    description: Marketo Engage Rest API — Content business capability. Self-contained, no shared references.
    resources:
    - name: rest-asset-v1-email-id-content-rearrange.json
      path: /rest/asset/v1/email/{id}/content/rearrange.json
      operations:
      - name: rearrangemodulesusingpost
        method: POST
        description: Marketo Rearrange Email Modules
        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: false
    - name: rest-asset-v1-email-id-content-htmlId}.json
      path: /rest/asset/v1/email/{id}/content/{htmlId}.json
      operations:
      - name: updateemailcomponentcontentusingpost
        method: POST
        description: Marketo Update Email Content Section
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: htmlId
          in: path
          type: string
          description: htmlId
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-asset-v1-email-id-content-moduleId-add.json
      path: /rest/asset/v1/email/{id}/content/{moduleId}/add.json
      operations:
      - name: addmoduleusingpost
        method: POST
        description: Marketo Add Email Module
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: moduleId
          in: path
          type: string
          description: moduleId
          required: true
        - name: name
          in: query
          type: string
          description: Name of the module
          required: true
        - name: index
          in: query
          type: integer
          description: Index of the module. Determines the order of the module in the email.
          required: true
    - name: rest-asset-v1-email-id-content-moduleId-delete.json
      path: /rest/asset/v1/email/{id}/content/{moduleId}/delete.json
      operations:
      - name: deletemoduleusingpost
        method: POST
        description: Marketo Delete Module
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: moduleId
          in: path
          type: string
          description: moduleId
          required: true
    - name: rest-asset-v1-email-id-content-moduleId-duplicate.json
      path: /rest/asset/v1/email/{id}/content/{moduleId}/duplicate.json
      operations:
      - name: duplicatemoduleusingpost
        method: POST
        description: Marketo Duplicate Email Module
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: moduleId
          in: path
          type: string
          description: moduleId
          required: true
        - name: name
          in: query
          type: string
          description: Name of the new module
          required: true
    - name: rest-asset-v1-email-id-content-moduleId-rename.json
      path: /rest/asset/v1/email/{id}/content/{moduleId}/rename.json
      operations:
      - name: renameusingpost
        method: POST
        description: Marketo Rename Email Module
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: moduleId
          in: path
          type: string
          description: moduleId
          required: true
        - name: name
          in: query
          type: string
          description: New module name
          required: true
    - name: rest-asset-v1-email-id-dynamicContent-contentId}.json
      path: /rest/asset/v1/email/{id}/dynamicContent/{contentId}.json
      operations:
      - name: getemaildynamiccontentusingget
        method: GET
        description: Marketo Get Email Dynamic Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of email
          required: true
        - name: contentId
          in: path
          type: string
          description: Id of email dynamic content section
          required: true
        - name: status
          in: query
          type: string
          description: Status filter for draft or approved versions
      - name: updateemaildynamiccontentusingpost
        method: POST
        description: Marketo Update Email Dynamic Content Section
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of email
          required: true
        - name: contentId
          in: path
          type: string
          description: Id of email dynamic content section
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-asset-v1-emailTemplate-id-content
      path: /rest/asset/v1/emailTemplate/{id}/content
      operations:
      - name: gettemplatecontentbyidusingget
        method: GET
        description: Marketo Get Email Template Content by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: status
          in: query
          type: string
          description: Status filter for draft or approved versions
    - name: rest-asset-v1-landingPage-id-content-contentId}.json
      path: /rest/asset/v1/landingPage/{id}/content/{contentId}.json
      operations:
      - name: updatelandingpagecontentusingpost
        method: POST
        description: Marketo Update Landing Page Content Section
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of landing page
          required: true
        - name: contentId
          in: path
          type: string
          description: Id of landing page content section
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: rest-asset-v1-landingPage-id-content-contentId-delete.json
      path: /rest/asset/v1/landingPage/{id}/content/{contentId}/delete.json
      operations:
      - name: removelandingpagecontentusingpost
        method: POST
        description: Marketo Delete Landing Page Content Section
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of landing page
          required: true
        - name: contentId
          in: path
          type: string
          description: Id of landing page content section
          required: true
    - name: rest-asset-v1-landingPage-id-dynamicContent-contentId}.json
      path: /rest/asset/v1/landingPage/{id}/dynamicContent/{contentId}.json
      operations:
      - name: getlandingpagedynamiccontentsusingget
        method: GET
        description: Marketo Get Landing Page Dynamic Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of landing page
          required: true
        - name: contentId
          in: path
          type: string
          description: Id of landing page dynamic content section
          required: true
      - name: updatelandingpagedynamiccontentusingpost
        method: POST
        description: Marketo Update Landing Page Dynamic Content Section
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of the landing page
          required: true
        - name: contentId
          in: path
          type: string
          description: Id of the landing page dynamic content
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: rest-asset-v1-snippet-id-dynamicContent-segmentId}.json
      path: /rest/asset/v1/snippet/{id}/dynamicContent/{segmentId}.json
      operations:
      - name: updatedynamiccontentusingpost
        method: POST
        description: Marketo Update Snippet Dynamic Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: segmentId
          in: path
          type: integer
          description: segmentId
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
  exposes:
  - type: rest
    namespace: engage-rest-content-rest
    port: 8080
    description: REST adapter for Marketo Engage Rest API — Content. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/asset/v1/email/{id}/content/rearrange-json
      name: rest-asset-v1-email-id-content-rearrange-json
      description: REST surface for rest-asset-v1-email-id-content-rearrange.json.
      operations:
      - method: POST
        name: rearrangemodulesusingpost
        description: Marketo Rearrange Email Modules
        call: engage-rest-content.rearrangemodulesusingpost
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/email/{id}/content/htmlid-json
      name: rest-asset-v1-email-id-content-htmlid-json
      description: REST surface for rest-asset-v1-email-id-content-htmlId}.json.
      operations:
      - method: POST
        name: updateemailcomponentcontentusingpost
        description: Marketo Update Email Content Section
        call: engage-rest-content.updateemailcomponentcontentusingpost
        with:
          id: rest.id
          htmlId: rest.htmlId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/email/{id}/content/{moduleid}/add-json
      name: rest-asset-v1-email-id-content-moduleid-add-json
      description: REST surface for rest-asset-v1-email-id-content-moduleId-add.json.
      operations:
      - method: POST
        name: addmoduleusingpost
        description: Marketo Add Email Module
        call: engage-rest-content.addmoduleusingpost
        with:
          id: rest.id
          moduleId: rest.moduleId
          name: rest.name
          index: rest.index
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/email/{id}/content/{moduleid}/delete-json
      name: rest-asset-v1-email-id-content-moduleid-delete-json
      description: REST surface for rest-asset-v1-email-id-content-moduleId-delete.json.
      operations:
      - method: POST
        name: deletemoduleusingpost
        description: Marketo Delete Module
        call: engage-rest-content.deletemoduleusingpost
        with:
          id: rest.id
          moduleId: rest.moduleId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/email/{id}/content/{moduleid}/duplicate-json
      name: rest-asset-v1-email-id-content-moduleid-duplicate-json
      description: REST surface for rest-asset-v1-email-id-content-moduleId-duplicate.json.
      operations:
      - method: POST
        name: duplicatemoduleusingpost
        description: Marketo Duplicate Email Module
        call: engage-rest-content.duplicatemoduleusingpost
        with:
          id: rest.id
          moduleId: rest.moduleId
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/email/{id}/content/{moduleid}/rename-json
      name: rest-asset-v1-email-id-content-moduleid-rename-json
      description: REST surface for rest-asset-v1-email-id-content-moduleId-rename.json.
      operations:
      - method: POST
        name: renameusingpost
        description: Marketo Rename Email Module
        call: engage-rest-content.renameusingpost
        with:
          id: rest.id
          moduleId: rest.moduleId
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/email/{id}/dynamiccontent/contentid-json
      name: rest-asset-v1-email-id-dynamiccontent-contentid-json
      description: REST surface for rest-asset-v1-email-id-dynamicContent-contentId}.json.
      operations:
      - method: GET
        name: getemaildynamiccontentusingget
        description: Marketo Get Email Dynamic Content
        call: engage-rest-content.getemaildynamiccontentusingget
        with:
          id: rest.id
          contentId: rest.contentId
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updateemaildynamiccontentusingpost
        description: Marketo Update Email Dynamic Content Section
        call: engage-rest-content.updateemaildynamiccontentusingpost
        with:
          id: rest.id
          contentId: rest.contentId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/emailtemplate/{id}/content
      name: rest-asset-v1-emailtemplate-id-content
      description: REST surface for rest-asset-v1-emailTemplate-id-content.
      operations:
      - method: GET
        name: gettemplatecontentbyidusingget
        description: Marketo Get Email Template Content by Id
        call: engage-rest-content.gettemplatecontentbyidusingget
        with:
          id: rest.id
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/content/contentid-json
      name: rest-asset-v1-landingpage-id-content-contentid-json
      description: REST surface for rest-asset-v1-landingPage-id-content-contentId}.json.
      operations:
      - method: POST
        name: updatelandingpagecontentusingpost
        description: Marketo Update Landing Page Content Section
        call: engage-rest-content.updatelandingpagecontentusingpost
        with:
          id: rest.id
          contentId: rest.contentId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/content/{contentid}/delete-json
      name: rest-asset-v1-landingpage-id-content-contentid-delete-json
      description: REST surface for rest-asset-v1-landingPage-id-content-contentId-delete.json.
      operations:
      - method: POST
        name: removelandingpagecontentusingpost
        description: Marketo Delete Landing Page Content Section
        call: engage-rest-content.removelandingpagecontentusingpost
        with:
          id: rest.id
          contentId: rest.contentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/dynamiccontent/contentid-json
      name: rest-asset-v1-landingpage-id-dynamiccontent-contentid-json
      description: REST surface for rest-asset-v1-landingPage-id-dynamicContent-contentId}.json.
      operations:
      - method: GET
        name: getlandingpagedynamiccontentsusingget
        description: Marketo Get Landing Page Dynamic Content
        call: engage-rest-content.getlandingpagedynamiccontentsusingget
        with:
          id: rest.id
          contentId: rest.contentId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatelandingpagedynamiccontentusingpost
        description: Marketo Update Landing Page Dynamic Content Section
        call: engage-rest-content.updatelandingpagedynamiccontentusingpost
        with:
          id: rest.id
          contentId: rest.contentId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/snippet/{id}/dynamiccontent/segmentid-json
      name: rest-asset-v1-snippet-id-dynamiccontent-segmentid-json
      description: REST surface for rest-asset-v1-snippet-id-dynamicContent-segmentId}.json.
      operations:
      - method: POST
        name: updatedynamiccontentusingpost
        description: Marketo Update Snippet Dynamic Content
        call: engage-rest-content.updatedynamiccontentusingpost
        with:
          id: rest.id
          segmentId: rest.segmentId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: engage-rest-content-mcp
    port: 9090
    transport: http
    description: MCP adapter for Marketo Engage Rest API — Content. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: marketo-rearrange-email-modules
      description: Marketo Rearrange Email Modules
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.rearrangemodulesusingpost
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-email-content-section
      description: Marketo Update Email Content Section
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.updateemailcomponentcontentusingpost
      with:
        id: tools.id
        htmlId: tools.htmlId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-add-email-module
      description: Marketo Add Email Module
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.addmoduleusingpost
      with:
        id: tools.id
        moduleId: tools.moduleId
        name: tools.name
        index: tools.index
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-delete-module
      description: Marketo Delete Module
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.deletemoduleusingpost
      with:
        id: tools.id
        moduleId: tools.moduleId
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-duplicate-email-module
      description: Marketo Duplicate Email Module
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.duplicatemoduleusingpost
      with:
        id: tools.id
        moduleId: tools.moduleId
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-rename-email-module
      description: Marketo Rename Email Module
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.renameusingpost
      with:
        id: tools.id
        moduleId: tools.moduleId
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-email-dynamic-content
      description: Marketo Get Email Dynamic Content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-content.getemaildynamiccontentusingget
      with:
        id: tools.id
        contentId: tools.contentId
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-email-dynamic-content
      description: Marketo Update Email Dynamic Content Section
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.updateemaildynamiccontentusingpost
      with:
        id: tools.id
        contentId: tools.contentId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-email-template-content
      description: Marketo Get Email Template Content by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-content.gettemplatecontentbyidusingget
      with:
        id: tools.id
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-landing-page-content
      description: Marketo Update Landing Page Content Section
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.updatelandingpagecontentusingpost
      with:
        id: tools.id
        contentId: tools.contentId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-delete-landing-page-content
      description: Marketo Delete Landing Page Content Section
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.removelandingpagecontentusingpost
      with:
        id: tools.id
        contentId: tools.contentId
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-landing-page-dynamic
      description: Marketo Get Landing Page Dynamic Content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-content.getlandingpagedynamiccontentsusingget
      with:
        id: tools.id
        contentId: tools.contentId
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-landing-page-dynamic
      description: Marketo Update Landing Page Dynamic Content Section
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.updatelandingpagedynamiccontentusingpost
      with:
        id: tools.id
        contentId: tools.contentId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-snippet-dynamic-content
      description: Marketo Update Snippet Dynamic Content
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-content.updatedynamiccontentusingpost
      with:
        id: tools.id
        segmentId: tools.segmentId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.