Marketo · Capability

Marketo Engage Rest API — Forms

Marketo Engage Rest API — Forms. 14 operations. Lead operation: Marketo Get Form by Name. Self-contained Naftiko capability covering one Marketo business surface.

Run with Naftiko MarketoForms

What You Can Do

GET
Getlpformbynameusingget — Marketo Get Form by Name
/v1/asset/v1/form/byname-json
POST
Addformfieldvisibilityruleusingpost — Marketo Add Form Field Visibility Rules
/v1/asset/v1/form/{formid}/field/{fieldid}/visibility-json
GET
Getlpformbyidusingget — Marketo Get Form By Id
/v1/asset/v1/form/id-json
POST
Updateformsusingpost — Marketo Update Form Metadata
/v1/asset/v1/form/id-json
POST
Approvefromusingpost — Marketo Approve Form Draft
/v1/asset/v1/form/{id}/approvedraft-json
POST
Clonelpformsusingpost — Marketo Clone Form
/v1/asset/v1/form/{id}/clone-json
POST
Deleteformbyidusingpost — Marketo Delete Form
/v1/asset/v1/form/{id}/delete-json
POST
Discardformbyidusingpost — Marketo Discard Form Draft
/v1/asset/v1/form/{id}/discarddraft-json
POST
Updateformsubmitbuttonusingpost — Marketo Update Submit Button
/v1/asset/v1/form/{id}/submitbutton-json
GET
Getthankyoupagebyidusingget — Marketo Get Thank You Page by Form Id
/v1/asset/v1/form/{id}/thankyoupage-json
POST
Updatethankyoupagebyidusingpost — Marketo Update Thank You Page
/v1/asset/v1/form/{id}/thankyoupage-json
GET
Getformusedbyusingget — Marketo Get Form Used By
/v1/asset/v1/form/{id}/usedby-json
GET
Browseforms2usingget — Marketo Get Forms
/v1/asset/v1/forms-json
POST
Createlpformsusingpost — Marketo Create Form
/v1/asset/v1/forms-json

MCP Tools

marketo-get-form-name

Marketo Get Form by Name

read-only idempotent
marketo-add-form-field-visibility

Marketo Add Form Field Visibility Rules

marketo-get-form-id

Marketo Get Form By Id

read-only idempotent
marketo-update-form-metadata

Marketo Update Form Metadata

marketo-approve-form-draft

Marketo Approve Form Draft

marketo-clone-form

Marketo Clone Form

marketo-delete-form

Marketo Delete Form

marketo-discard-form-draft

Marketo Discard Form Draft

marketo-update-submit-button

Marketo Update Submit Button

marketo-get-thank-you-page

Marketo Get Thank You Page by Form Id

read-only idempotent
marketo-update-thank-you-page

Marketo Update Thank You Page

marketo-get-form-used

Marketo Get Form Used By

read-only idempotent
marketo-get-forms

Marketo Get Forms

read-only idempotent
marketo-create-form

Marketo Create Form

Capability Spec

engage-rest-forms.yaml Raw ↑
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: $.