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: $.