naftiko: 1.0.0-alpha2 info: label: Marketo Engage Rest API — Template description: 'Marketo Engage Rest API — Template. 20 operations. Lead operation: Marketo Get Email Template by Name. Self-contained Naftiko capability covering one Marketo business surface.' tags: - Marketo - Template 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-template baseUri: https://localhost:8080 description: Marketo Engage Rest API — Template business capability. Self-contained, no shared references. resources: - name: rest-asset-v1-emailTemplate-byName.json path: /rest/asset/v1/emailTemplate/byName.json operations: - name: gettemplatebynameusingget method: GET description: Marketo Get Email Template by Name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: name required: true - name: status in: query type: string description: Status filter for draft or approved versions - name: rest-asset-v1-emailTemplate-id}.json path: /rest/asset/v1/emailTemplate/{id}.json operations: - name: gettemplatebyidusingget method: GET description: Marketo Get Email Template 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: updateemailtemplateusingpost method: POST description: Marketo Update Email Template 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-emailTemplate-id-approveDraft.json path: /rest/asset/v1/emailTemplate/{id}/approveDraft.json operations: - name: approvedraftusingpost1 method: POST description: Marketo Approve Email Template Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-emailTemplate-id-clone.json path: /rest/asset/v1/emailTemplate/{id}/clone.json operations: - name: clonetemplateusingpost method: POST description: Marketo Clone Email Template 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-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-emailTemplate-id-content.json path: /rest/asset/v1/emailTemplate/{id}/content.json operations: - name: updateemailtemplatecontentusingpost method: POST description: Marketo Update Email Template Content 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-emailTemplate-id-delete.json path: /rest/asset/v1/emailTemplate/{id}/delete.json operations: - name: deletetemplateusingpost method: POST description: Marketo Delete Email Template outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-emailTemplate-id-discardDraft.json path: /rest/asset/v1/emailTemplate/{id}/discardDraft.json operations: - name: discarddraftusingpost1 method: POST description: Marketo Discard Email Template Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-emailTemplate-id-unapprove.json path: /rest/asset/v1/emailTemplate/{id}/unapprove.json operations: - name: unapprovedraftusingpost1 method: POST description: Marketo Unapprove Email Template Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-landingPageTemplate-byName.json path: /rest/asset/v1/landingPageTemplate/byName.json operations: - name: getlandingpagetemplatebynameusingget method: GET description: Marketo Get Landing Page Template by Name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Name of the landing page template required: true - name: rest-asset-v1-landingPageTemplate-id}.json path: /rest/asset/v1/landingPageTemplate/{id}.json operations: - name: getlandingpagetemplatebyidusingget method: GET description: Marketo Get Landing Page Template 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: updatelptemplateusingpost method: POST description: Marketo Update Landing Page Template 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-landingPageTemplate-id-approveDraft.json path: /rest/asset/v1/landingPageTemplate/{id}/approveDraft.json operations: - name: approvelandingpagetemplateusingpost method: POST description: Marketo Approve Landing Page Template Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-landingPageTemplate-id-clone.json path: /rest/asset/v1/landingPageTemplate/{id}/clone.json operations: - name: clonelptemplateusingpost method: POST description: Marketo Clone Landing Page Template 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-landingPageTemplate-id-content.json path: /rest/asset/v1/landingPageTemplate/{id}/content.json operations: - name: getlandingpagetemplatecontentusingget method: GET description: Marketo Get Landing Page Template Content 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: updatelandingpagetemplatecontentusingpost method: POST description: Marketo Update Landing Page Template Content 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-landingPageTemplate-id-delete.json path: /rest/asset/v1/landingPageTemplate/{id}/delete.json operations: - name: deletelptemplateusingpost method: POST description: Marketo Delete Landing Page Template outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-landingPageTemplate-id-discardDraft.json path: /rest/asset/v1/landingPageTemplate/{id}/discardDraft.json operations: - name: discarddraftusingpost2 method: POST description: Marketo Discard Landing Page Template Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-landingPageTemplate-id-unapprove.json path: /rest/asset/v1/landingPageTemplate/{id}/unapprove.json operations: - name: unapprovelandingpagetemplateusingpost method: POST description: Marketo Unapprove Landing Page Template outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true exposes: - type: rest namespace: engage-rest-template-rest port: 8080 description: REST adapter for Marketo Engage Rest API — Template. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/asset/v1/emailtemplate/byname-json name: rest-asset-v1-emailtemplate-byname-json description: REST surface for rest-asset-v1-emailTemplate-byName.json. operations: - method: GET name: gettemplatebynameusingget description: Marketo Get Email Template by Name call: engage-rest-template.gettemplatebynameusingget with: name: rest.name status: rest.status outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/id-json name: rest-asset-v1-emailtemplate-id-json description: REST surface for rest-asset-v1-emailTemplate-id}.json. operations: - method: GET name: gettemplatebyidusingget description: Marketo Get Email Template by Id call: engage-rest-template.gettemplatebyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updateemailtemplateusingpost description: Marketo Update Email Template Metadata call: engage-rest-template.updateemailtemplateusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/{id}/approvedraft-json name: rest-asset-v1-emailtemplate-id-approvedraft-json description: REST surface for rest-asset-v1-emailTemplate-id-approveDraft.json. operations: - method: POST name: approvedraftusingpost1 description: Marketo Approve Email Template Draft call: engage-rest-template.approvedraftusingpost1 with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/{id}/clone-json name: rest-asset-v1-emailtemplate-id-clone-json description: REST surface for rest-asset-v1-emailTemplate-id-clone.json. operations: - method: POST name: clonetemplateusingpost description: Marketo Clone Email Template call: engage-rest-template.clonetemplateusingpost with: id: rest.id 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-template.gettemplatecontentbyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/{id}/content-json name: rest-asset-v1-emailtemplate-id-content-json description: REST surface for rest-asset-v1-emailTemplate-id-content.json. operations: - method: POST name: updateemailtemplatecontentusingpost description: Marketo Update Email Template Content call: engage-rest-template.updateemailtemplatecontentusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/{id}/delete-json name: rest-asset-v1-emailtemplate-id-delete-json description: REST surface for rest-asset-v1-emailTemplate-id-delete.json. operations: - method: POST name: deletetemplateusingpost description: Marketo Delete Email Template call: engage-rest-template.deletetemplateusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/{id}/discarddraft-json name: rest-asset-v1-emailtemplate-id-discarddraft-json description: REST surface for rest-asset-v1-emailTemplate-id-discardDraft.json. operations: - method: POST name: discarddraftusingpost1 description: Marketo Discard Email Template Draft call: engage-rest-template.discarddraftusingpost1 with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/emailtemplate/{id}/unapprove-json name: rest-asset-v1-emailtemplate-id-unapprove-json description: REST surface for rest-asset-v1-emailTemplate-id-unapprove.json. operations: - method: POST name: unapprovedraftusingpost1 description: Marketo Unapprove Email Template Draft call: engage-rest-template.unapprovedraftusingpost1 with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/byname-json name: rest-asset-v1-landingpagetemplate-byname-json description: REST surface for rest-asset-v1-landingPageTemplate-byName.json. operations: - method: GET name: getlandingpagetemplatebynameusingget description: Marketo Get Landing Page Template by Name call: engage-rest-template.getlandingpagetemplatebynameusingget with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/id-json name: rest-asset-v1-landingpagetemplate-id-json description: REST surface for rest-asset-v1-landingPageTemplate-id}.json. operations: - method: GET name: getlandingpagetemplatebyidusingget description: Marketo Get Landing Page Template by Id call: engage-rest-template.getlandingpagetemplatebyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updatelptemplateusingpost description: Marketo Update Landing Page Template Metadata call: engage-rest-template.updatelptemplateusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/{id}/approvedraft-json name: rest-asset-v1-landingpagetemplate-id-approvedraft-json description: REST surface for rest-asset-v1-landingPageTemplate-id-approveDraft.json. operations: - method: POST name: approvelandingpagetemplateusingpost description: Marketo Approve Landing Page Template Draft call: engage-rest-template.approvelandingpagetemplateusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/{id}/clone-json name: rest-asset-v1-landingpagetemplate-id-clone-json description: REST surface for rest-asset-v1-landingPageTemplate-id-clone.json. operations: - method: POST name: clonelptemplateusingpost description: Marketo Clone Landing Page Template call: engage-rest-template.clonelptemplateusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/{id}/content-json name: rest-asset-v1-landingpagetemplate-id-content-json description: REST surface for rest-asset-v1-landingPageTemplate-id-content.json. operations: - method: GET name: getlandingpagetemplatecontentusingget description: Marketo Get Landing Page Template Content call: engage-rest-template.getlandingpagetemplatecontentusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updatelandingpagetemplatecontentusingpost description: Marketo Update Landing Page Template Content call: engage-rest-template.updatelandingpagetemplatecontentusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/{id}/delete-json name: rest-asset-v1-landingpagetemplate-id-delete-json description: REST surface for rest-asset-v1-landingPageTemplate-id-delete.json. operations: - method: POST name: deletelptemplateusingpost description: Marketo Delete Landing Page Template call: engage-rest-template.deletelptemplateusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/{id}/discarddraft-json name: rest-asset-v1-landingpagetemplate-id-discarddraft-json description: REST surface for rest-asset-v1-landingPageTemplate-id-discardDraft.json. operations: - method: POST name: discarddraftusingpost2 description: Marketo Discard Landing Page Template Draft call: engage-rest-template.discarddraftusingpost2 with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/landingpagetemplate/{id}/unapprove-json name: rest-asset-v1-landingpagetemplate-id-unapprove-json description: REST surface for rest-asset-v1-landingPageTemplate-id-unapprove.json. operations: - method: POST name: unapprovelandingpagetemplateusingpost description: Marketo Unapprove Landing Page Template call: engage-rest-template.unapprovelandingpagetemplateusingpost with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: engage-rest-template-mcp port: 9090 transport: http description: MCP adapter for Marketo Engage Rest API — Template. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: marketo-get-email-template-name description: Marketo Get Email Template by Name hints: readOnly: true destructive: false idempotent: true call: engage-rest-template.gettemplatebynameusingget with: name: tools.name status: tools.status outputParameters: - type: object mapping: $. - name: marketo-get-email-template-id description: Marketo Get Email Template by Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-template.gettemplatebyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-email-template-metadata description: Marketo Update Email Template Metadata hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.updateemailtemplateusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-approve-email-template-draft description: Marketo Approve Email Template Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.approvedraftusingpost1 with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-clone-email-template description: Marketo Clone Email Template hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.clonetemplateusingpost with: id: tools.id 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-template.gettemplatecontentbyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-email-template-content description: Marketo Update Email Template Content hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.updateemailtemplatecontentusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-delete-email-template description: Marketo Delete Email Template hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.deletetemplateusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-discard-email-template-draft description: Marketo Discard Email Template Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.discarddraftusingpost1 with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-unapprove-email-template-draft description: Marketo Unapprove Email Template Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.unapprovedraftusingpost1 with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-get-landing-page-template description: Marketo Get Landing Page Template by Name hints: readOnly: true destructive: false idempotent: true call: engage-rest-template.getlandingpagetemplatebynameusingget with: name: tools.name outputParameters: - type: object mapping: $. - name: marketo-get-landing-page-template-2 description: Marketo Get Landing Page Template by Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-template.getlandingpagetemplatebyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-landing-page-template description: Marketo Update Landing Page Template Metadata hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.updatelptemplateusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-approve-landing-page-template description: Marketo Approve Landing Page Template Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.approvelandingpagetemplateusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-clone-landing-page-template description: Marketo Clone Landing Page Template hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.clonelptemplateusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-landing-page-template-3 description: Marketo Get Landing Page Template Content hints: readOnly: true destructive: false idempotent: true call: engage-rest-template.getlandingpagetemplatecontentusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-landing-page-template-2 description: Marketo Update Landing Page Template Content hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.updatelandingpagetemplatecontentusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-delete-landing-page-template description: Marketo Delete Landing Page Template hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.deletelptemplateusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-discard-landing-page-template description: Marketo Discard Landing Page Template Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.discarddraftusingpost2 with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-unapprove-landing-page-template description: Marketo Unapprove Landing Page Template hints: readOnly: false destructive: false idempotent: false call: engage-rest-template.unapprovelandingpagetemplateusingpost with: id: tools.id outputParameters: - type: object mapping: $.