naftiko: 1.0.0-alpha2 info: label: Marketo Engage Rest API — Snippets description: 'Marketo Engage Rest API — Snippets. 13 operations. Lead operation: Marketo Get Snippet by Id. Self-contained Naftiko capability covering one Marketo business surface.' tags: - Marketo - Snippets 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-snippets baseUri: https://localhost:8080 description: Marketo Engage Rest API — Snippets business capability. Self-contained, no shared references. resources: - name: rest-asset-v1-snippet-id}.json path: /rest/asset/v1/snippet/{id}.json operations: - name: getsnippetbyidusingget method: GET description: Marketo Get Snippet 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: updatesnippetusingpost method: POST description: Marketo Update Snippet 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-snippet-id-approveDraft.json path: /rest/asset/v1/snippet/{id}/approveDraft.json operations: - name: approvesnippetusingpost method: POST description: Marketo Approve Snippet Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-snippet-id-clone.json path: /rest/asset/v1/snippet/{id}/clone.json operations: - name: clonesnippetusingpost method: POST description: Marketo Clone Snippet 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-snippet-id-content.json path: /rest/asset/v1/snippet/{id}/content.json operations: - name: getsnippetcontentbyidusingget method: GET description: Marketo Get Snippet 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: updatecontentusingpost1 method: POST description: Marketo Update Snippet Content outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: content in: query type: string description: Content of the snippet required: true - name: type in: query type: string description: Type of snippet content required: true - name: rest-asset-v1-snippet-id-delete.json path: /rest/asset/v1/snippet/{id}/delete.json operations: - name: deletesnippetusingpost method: POST description: Marketo Delete Snippet outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-snippet-id-discardDraft.json path: /rest/asset/v1/snippet/{id}/discardDraft.json operations: - name: discardsnippetusingpost method: POST description: Marketo Discard Snippet Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-snippet-id-dynamicContent.json path: /rest/asset/v1/snippet/{id}/dynamicContent.json operations: - name: getdynamiccontentusingget method: GET description: Marketo Get Dynamic 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: 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 - name: rest-asset-v1-snippet-id-unapprove.json path: /rest/asset/v1/snippet/{id}/unapprove.json operations: - name: unapprovesnippetusingpost method: POST description: Marketo Unapprove Snippet outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-snippets.json path: /rest/asset/v1/snippets.json operations: - name: getsnippetusingget method: GET description: Marketo Get Snippets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: status in: query type: string description: Status filter for draft or approved versions - 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: createsnippetusingpost method: POST description: Marketo Create Snippet outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: engage-rest-snippets-rest port: 8080 description: REST adapter for Marketo Engage Rest API — Snippets. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/asset/v1/snippet/id-json name: rest-asset-v1-snippet-id-json description: REST surface for rest-asset-v1-snippet-id}.json. operations: - method: GET name: getsnippetbyidusingget description: Marketo Get Snippet by Id call: engage-rest-snippets.getsnippetbyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updatesnippetusingpost description: Marketo Update Snippet Metadata call: engage-rest-snippets.updatesnippetusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/approvedraft-json name: rest-asset-v1-snippet-id-approvedraft-json description: REST surface for rest-asset-v1-snippet-id-approveDraft.json. operations: - method: POST name: approvesnippetusingpost description: Marketo Approve Snippet Draft call: engage-rest-snippets.approvesnippetusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/clone-json name: rest-asset-v1-snippet-id-clone-json description: REST surface for rest-asset-v1-snippet-id-clone.json. operations: - method: POST name: clonesnippetusingpost description: Marketo Clone Snippet call: engage-rest-snippets.clonesnippetusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/content-json name: rest-asset-v1-snippet-id-content-json description: REST surface for rest-asset-v1-snippet-id-content.json. operations: - method: GET name: getsnippetcontentbyidusingget description: Marketo Get Snippet Content call: engage-rest-snippets.getsnippetcontentbyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updatecontentusingpost1 description: Marketo Update Snippet Content call: engage-rest-snippets.updatecontentusingpost1 with: id: rest.id content: rest.content type: rest.type outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/delete-json name: rest-asset-v1-snippet-id-delete-json description: REST surface for rest-asset-v1-snippet-id-delete.json. operations: - method: POST name: deletesnippetusingpost description: Marketo Delete Snippet call: engage-rest-snippets.deletesnippetusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/discarddraft-json name: rest-asset-v1-snippet-id-discarddraft-json description: REST surface for rest-asset-v1-snippet-id-discardDraft.json. operations: - method: POST name: discardsnippetusingpost description: Marketo Discard Snippet Draft call: engage-rest-snippets.discardsnippetusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/dynamiccontent-json name: rest-asset-v1-snippet-id-dynamiccontent-json description: REST surface for rest-asset-v1-snippet-id-dynamicContent.json. operations: - method: GET name: getdynamiccontentusingget description: Marketo Get Dynamic Content call: engage-rest-snippets.getdynamiccontentusingget with: id: rest.id status: rest.status 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-snippets.updatedynamiccontentusingpost with: id: rest.id segmentId: rest.segmentId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippet/{id}/unapprove-json name: rest-asset-v1-snippet-id-unapprove-json description: REST surface for rest-asset-v1-snippet-id-unapprove.json. operations: - method: POST name: unapprovesnippetusingpost description: Marketo Unapprove Snippet call: engage-rest-snippets.unapprovesnippetusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/snippets-json name: rest-asset-v1-snippets-json description: REST surface for rest-asset-v1-snippets.json. operations: - method: GET name: getsnippetusingget description: Marketo Get Snippets call: engage-rest-snippets.getsnippetusingget with: status: rest.status maxReturn: rest.maxReturn offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createsnippetusingpost description: Marketo Create Snippet call: engage-rest-snippets.createsnippetusingpost with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: engage-rest-snippets-mcp port: 9090 transport: http description: MCP adapter for Marketo Engage Rest API — Snippets. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: marketo-get-snippet-id description: Marketo Get Snippet by Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-snippets.getsnippetbyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-snippet-metadata description: Marketo Update Snippet Metadata hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.updatesnippetusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-approve-snippet-draft description: Marketo Approve Snippet Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.approvesnippetusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-clone-snippet description: Marketo Clone Snippet hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.clonesnippetusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-snippet-content description: Marketo Get Snippet Content hints: readOnly: true destructive: false idempotent: true call: engage-rest-snippets.getsnippetcontentbyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-snippet-content description: Marketo Update Snippet Content hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.updatecontentusingpost1 with: id: tools.id content: tools.content type: tools.type outputParameters: - type: object mapping: $. - name: marketo-delete-snippet description: Marketo Delete Snippet hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.deletesnippetusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-discard-snippet-draft description: Marketo Discard Snippet Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.discardsnippetusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-get-dynamic-content description: Marketo Get Dynamic Content hints: readOnly: true destructive: false idempotent: true call: engage-rest-snippets.getdynamiccontentusingget with: id: tools.id status: tools.status 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-snippets.updatedynamiccontentusingpost with: id: tools.id segmentId: tools.segmentId body: tools.body outputParameters: - type: object mapping: $. - name: marketo-unapprove-snippet description: Marketo Unapprove Snippet hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.unapprovesnippetusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-get-snippets description: Marketo Get Snippets hints: readOnly: true destructive: false idempotent: true call: engage-rest-snippets.getsnippetusingget with: status: tools.status maxReturn: tools.maxReturn offset: tools.offset outputParameters: - type: object mapping: $. - name: marketo-create-snippet description: Marketo Create Snippet hints: readOnly: false destructive: false idempotent: false call: engage-rest-snippets.createsnippetusingpost with: body: tools.body outputParameters: - type: object mapping: $.