naftiko: 1.0.0-alpha2 info: label: Marketo Engage Rest API — Forms description: 'Marketo Engage Rest API — Forms. 14 operations. Lead operation: Marketo Get Form by Name. Self-contained Naftiko capability covering one Marketo business surface.' tags: - Marketo - Forms 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-forms baseUri: https://localhost:8080 description: Marketo Engage Rest API — Forms business capability. Self-contained, no shared references. resources: - name: rest-asset-v1-form-byName.json path: /rest/asset/v1/form/byName.json operations: - name: getlpformbynameusingget method: GET description: Marketo Get Form by Name outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: name in: query type: string description: Name of the form required: true - name: status in: query type: string description: Status filter for draft or approved versions - name: folder in: query type: string description: JSON representation of parent folder, with members 'id', and 'type' which may be 'Folder' or 'Program' - name: rest-asset-v1-form-formId-field-fieldId-visibility.json path: /rest/asset/v1/form/{formId}/field/{fieldId}/visibility.json operations: - name: addformfieldvisibilityruleusingpost method: POST description: Marketo Add Form Field Visibility Rules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: formId in: path type: integer description: formId required: true - name: fieldId in: path type: string description: fieldId required: true - name: body in: body type: object description: Request body (JSON). required: true - name: rest-asset-v1-form-id}.json path: /rest/asset/v1/form/{id}.json operations: - name: getlpformbyidusingget method: GET description: Marketo Get Form 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: updateformsusingpost method: POST description: Marketo Update Form 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-form-id-approveDraft.json path: /rest/asset/v1/form/{id}/approveDraft.json operations: - name: approvefromusingpost method: POST description: Marketo Approve Form Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-form-id-clone.json path: /rest/asset/v1/form/{id}/clone.json operations: - name: clonelpformsusingpost method: POST description: Marketo Clone Form 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-form-id-delete.json path: /rest/asset/v1/form/{id}/delete.json operations: - name: deleteformbyidusingpost method: POST description: Marketo Delete Form outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-form-id-discardDraft.json path: /rest/asset/v1/form/{id}/discardDraft.json operations: - name: discardformbyidusingpost method: POST description: Marketo Discard Form Draft outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: id required: true - name: rest-asset-v1-form-id-submitButton.json path: /rest/asset/v1/form/{id}/submitButton.json operations: - name: updateformsubmitbuttonusingpost method: POST description: Marketo Update Submit Button 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-form-id-thankYouPage.json path: /rest/asset/v1/form/{id}/thankYouPage.json operations: - name: getthankyoupagebyidusingget method: GET description: Marketo Get Thank You Page by Form 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: updatethankyoupagebyidusingpost method: POST description: Marketo Update Thank You Page 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-form-id-usedBy.json path: /rest/asset/v1/form/{id}/usedBy.json operations: - name: getformusedbyusingget method: GET description: Marketo Get Form Used By outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: Id of the form required: true - name: offset in: query type: integer description: Integer offset for paging - name: maxReturn in: query type: integer description: Maximum number of assets to return. Max 200, default 20 - name: rest-asset-v1-forms.json path: /rest/asset/v1/forms.json operations: - name: browseforms2usingget method: GET description: Marketo Get Forms outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: status in: query type: string description: Status filter for draft or approved versions - name: folder in: query type: string description: JSON representation of parent folder, with members 'id', and 'type' which may be 'Folder' or 'Program' required: true - name: maxReturn in: query type: string description: Maximum number of channels to return. Max 200, default 20 - name: offset in: query type: string description: Integer offset for paging - name: createlpformsusingpost method: POST description: Marketo Create Form 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-forms-rest port: 8080 description: REST adapter for Marketo Engage Rest API — Forms. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/asset/v1/form/byname-json name: rest-asset-v1-form-byname-json description: REST surface for rest-asset-v1-form-byName.json. operations: - method: GET name: getlpformbynameusingget description: Marketo Get Form by Name call: engage-rest-forms.getlpformbynameusingget with: name: rest.name status: rest.status folder: rest.folder outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{formid}/field/{fieldid}/visibility-json name: rest-asset-v1-form-formid-field-fieldid-visibility-json description: REST surface for rest-asset-v1-form-formId-field-fieldId-visibility.json. operations: - method: POST name: addformfieldvisibilityruleusingpost description: Marketo Add Form Field Visibility Rules call: engage-rest-forms.addformfieldvisibilityruleusingpost with: formId: rest.formId fieldId: rest.fieldId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/id-json name: rest-asset-v1-form-id-json description: REST surface for rest-asset-v1-form-id}.json. operations: - method: GET name: getlpformbyidusingget description: Marketo Get Form By Id call: engage-rest-forms.getlpformbyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updateformsusingpost description: Marketo Update Form Metadata call: engage-rest-forms.updateformsusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/approvedraft-json name: rest-asset-v1-form-id-approvedraft-json description: REST surface for rest-asset-v1-form-id-approveDraft.json. operations: - method: POST name: approvefromusingpost description: Marketo Approve Form Draft call: engage-rest-forms.approvefromusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/clone-json name: rest-asset-v1-form-id-clone-json description: REST surface for rest-asset-v1-form-id-clone.json. operations: - method: POST name: clonelpformsusingpost description: Marketo Clone Form call: engage-rest-forms.clonelpformsusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/delete-json name: rest-asset-v1-form-id-delete-json description: REST surface for rest-asset-v1-form-id-delete.json. operations: - method: POST name: deleteformbyidusingpost description: Marketo Delete Form call: engage-rest-forms.deleteformbyidusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/discarddraft-json name: rest-asset-v1-form-id-discarddraft-json description: REST surface for rest-asset-v1-form-id-discardDraft.json. operations: - method: POST name: discardformbyidusingpost description: Marketo Discard Form Draft call: engage-rest-forms.discardformbyidusingpost with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/submitbutton-json name: rest-asset-v1-form-id-submitbutton-json description: REST surface for rest-asset-v1-form-id-submitButton.json. operations: - method: POST name: updateformsubmitbuttonusingpost description: Marketo Update Submit Button call: engage-rest-forms.updateformsubmitbuttonusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/thankyoupage-json name: rest-asset-v1-form-id-thankyoupage-json description: REST surface for rest-asset-v1-form-id-thankYouPage.json. operations: - method: GET name: getthankyoupagebyidusingget description: Marketo Get Thank You Page by Form Id call: engage-rest-forms.getthankyoupagebyidusingget with: id: rest.id status: rest.status outputParameters: - type: object mapping: $. - method: POST name: updatethankyoupagebyidusingpost description: Marketo Update Thank You Page call: engage-rest-forms.updatethankyoupagebyidusingpost with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/asset/v1/form/{id}/usedby-json name: rest-asset-v1-form-id-usedby-json description: REST surface for rest-asset-v1-form-id-usedBy.json. operations: - method: GET name: getformusedbyusingget description: Marketo Get Form Used By call: engage-rest-forms.getformusedbyusingget with: id: rest.id offset: rest.offset maxReturn: rest.maxReturn outputParameters: - type: object mapping: $. - path: /v1/asset/v1/forms-json name: rest-asset-v1-forms-json description: REST surface for rest-asset-v1-forms.json. operations: - method: GET name: browseforms2usingget description: Marketo Get Forms call: engage-rest-forms.browseforms2usingget with: status: rest.status folder: rest.folder maxReturn: rest.maxReturn offset: rest.offset outputParameters: - type: object mapping: $. - method: POST name: createlpformsusingpost description: Marketo Create Form call: engage-rest-forms.createlpformsusingpost with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: engage-rest-forms-mcp port: 9090 transport: http description: MCP adapter for Marketo Engage Rest API — Forms. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: marketo-get-form-name description: Marketo Get Form by Name hints: readOnly: true destructive: false idempotent: true call: engage-rest-forms.getlpformbynameusingget with: name: tools.name status: tools.status folder: tools.folder outputParameters: - type: object mapping: $. - name: marketo-add-form-field-visibility description: Marketo Add Form Field Visibility Rules hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.addformfieldvisibilityruleusingpost with: formId: tools.formId fieldId: tools.fieldId body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-form-id description: Marketo Get Form By Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-forms.getlpformbyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-form-metadata description: Marketo Update Form Metadata hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.updateformsusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-approve-form-draft description: Marketo Approve Form Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.approvefromusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-clone-form description: Marketo Clone Form hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.clonelpformsusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-delete-form description: Marketo Delete Form hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.deleteformbyidusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-discard-form-draft description: Marketo Discard Form Draft hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.discardformbyidusingpost with: id: tools.id outputParameters: - type: object mapping: $. - name: marketo-update-submit-button description: Marketo Update Submit Button hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.updateformsubmitbuttonusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-thank-you-page description: Marketo Get Thank You Page by Form Id hints: readOnly: true destructive: false idempotent: true call: engage-rest-forms.getthankyoupagebyidusingget with: id: tools.id status: tools.status outputParameters: - type: object mapping: $. - name: marketo-update-thank-you-page description: Marketo Update Thank You Page hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.updatethankyoupagebyidusingpost with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: marketo-get-form-used description: Marketo Get Form Used By hints: readOnly: true destructive: false idempotent: true call: engage-rest-forms.getformusedbyusingget with: id: tools.id offset: tools.offset maxReturn: tools.maxReturn outputParameters: - type: object mapping: $. - name: marketo-get-forms description: Marketo Get Forms hints: readOnly: true destructive: false idempotent: true call: engage-rest-forms.browseforms2usingget with: status: tools.status folder: tools.folder maxReturn: tools.maxReturn offset: tools.offset outputParameters: - type: object mapping: $. - name: marketo-create-form description: Marketo Create Form hints: readOnly: false destructive: false idempotent: false call: engage-rest-forms.createlpformsusingpost with: body: tools.body outputParameters: - type: object mapping: $.