Marketo · Capability

Marketo Engage Rest API — Landing Pages

Marketo Engage Rest API — Landing Pages. 13 operations. Lead operation: Marketo Get Landing Page by Name. Self-contained Naftiko capability covering one Marketo business surface.

Run with Naftiko MarketoLanding Pages

What You Can Do

GET
Getlandingpagebynameusingget — Marketo Get Landing Page by Name
/v1/asset/v1/landingpage/byname-json
GET
Getlandingpagebyidusingget — Marketo Get Landing Page by Id
/v1/asset/v1/landingpage/id-json
POST
Updatelandingpageusingpost — Marketo Update Landing Page Metadata
/v1/asset/v1/landingpage/id-json
POST
Approvelandingpageusingpost — Marketo Approve Landing Page Draft
/v1/asset/v1/landingpage/{id}/approvedraft-json
POST
Clonelandingpageusingpost — Marketo Clone Landing Page
/v1/asset/v1/landingpage/{id}/clone-json
POST
Deletelandingpagebyidusingpost — Marketo Delete Landing Page
/v1/asset/v1/landingpage/{id}/delete-json
POST
Discardlandingpagebyidusingpost — Marketo Discard Landing Page Draft
/v1/asset/v1/landingpage/{id}/discarddraft-json
GET
Getlandingpagefullcontentusingget — Marketo Get Landing Page Full Content
/v1/asset/v1/landingpage/{id}/fullcontent-json
POST
Unapprovelandingpagebyidusingpost — Marketo Unapprove Landing Page
/v1/asset/v1/landingpage/{id}/unapprove-json
POST
Updatelandingpagevariableusingpost — Marketo Update Landing Page Variable
/v1/asset/v1/landingpage/{id}/variable/variableid-json
GET
Getvariablesusingget — Marketo Get Landing Page Variables
/v1/asset/v1/landingpage/{id}/variables-json
GET
Browselandingpagesusingget — Marketo Get Landing Pages
/v1/asset/v1/landingpages-json
POST
Createlandingpageusingpost — Marketo Create Landing Page
/v1/asset/v1/landingpages-json

MCP Tools

marketo-get-landing-page-name

Marketo Get Landing Page by Name

read-only idempotent
marketo-get-landing-page-id

Marketo Get Landing Page by Id

read-only idempotent
marketo-update-landing-page-metadata

Marketo Update Landing Page Metadata

marketo-approve-landing-page-draft

Marketo Approve Landing Page Draft

marketo-clone-landing-page

Marketo Clone Landing Page

marketo-delete-landing-page

Marketo Delete Landing Page

marketo-discard-landing-page-draft

Marketo Discard Landing Page Draft

marketo-get-landing-page-full

Marketo Get Landing Page Full Content

read-only idempotent
marketo-unapprove-landing-page

Marketo Unapprove Landing Page

marketo-update-landing-page-variable

Marketo Update Landing Page Variable

marketo-get-landing-page-variables

Marketo Get Landing Page Variables

read-only idempotent
marketo-get-landing-pages

Marketo Get Landing Pages

read-only idempotent
marketo-create-landing-page

Marketo Create Landing Page

Capability Spec

engage-rest-landing-pages.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Marketo Engage Rest API — Landing  Pages
  description: 'Marketo Engage Rest API — Landing  Pages. 13 operations. Lead operation: Marketo Get Landing Page by Name.
    Self-contained Naftiko capability covering one Marketo business surface.'
  tags:
  - Marketo
  - Landing  Pages
  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-landing-pages
    baseUri: https://localhost:8080
    description: Marketo Engage Rest API — Landing  Pages business capability. Self-contained, no shared references.
    resources:
    - name: rest-asset-v1-landingPage-byName.json
      path: /rest/asset/v1/landingPage/byName.json
      operations:
      - name: getlandingpagebynameusingget
        method: GET
        description: Marketo Get Landing Page by Name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: query
          type: string
          description: Name of the landing page
          required: true
        - 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: rest-asset-v1-landingPage-id}.json
      path: /rest/asset/v1/landingPage/{id}.json
      operations:
      - name: getlandingpagebyidusingget
        method: GET
        description: Marketo Get Landing Page 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: updatelandingpageusingpost
        method: POST
        description: Marketo Update Landing Page 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-landingPage-id-approveDraft.json
      path: /rest/asset/v1/landingPage/{id}/approveDraft.json
      operations:
      - name: approvelandingpageusingpost
        method: POST
        description: Marketo Approve Landing Page Draft
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-landingPage-id-clone.json
      path: /rest/asset/v1/landingPage/{id}/clone.json
      operations:
      - name: clonelandingpageusingpost
        method: POST
        description: Marketo Clone Landing 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-landingPage-id-delete.json
      path: /rest/asset/v1/landingPage/{id}/delete.json
      operations:
      - name: deletelandingpagebyidusingpost
        method: POST
        description: Marketo Delete Landing Page
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-landingPage-id-discardDraft.json
      path: /rest/asset/v1/landingPage/{id}/discardDraft.json
      operations:
      - name: discardlandingpagebyidusingpost
        method: POST
        description: Marketo Discard Landing Page Draft
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-landingPage-id-fullContent.json
      path: /rest/asset/v1/landingPage/{id}/fullContent.json
      operations:
      - name: getlandingpagefullcontentusingget
        method: GET
        description: Marketo Get Landing Page Full Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of the landing page.
          required: true
        - name: leadId
          in: query
          type: integer
          description: The lead id to impersonate. Landing page is rendered as though it was viewed by this lead.
        - name: segmentation
          in: query
          type: string
          description: 'JSON array of of segmentations. Each segmentation must be a JSON object with members ''segmentationId'',
            and ''segmentId''.<br>Example: [{"segmentationId":1030,"seg'
    - name: rest-asset-v1-landingPage-id-unapprove.json
      path: /rest/asset/v1/landingPage/{id}/unapprove.json
      operations:
      - name: unapprovelandingpagebyidusingpost
        method: POST
        description: Marketo Unapprove Landing Page
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
    - name: rest-asset-v1-landingPage-id-variable-variableId}.json
      path: /rest/asset/v1/landingPage/{id}/variable/{variableId}.json
      operations:
      - name: updatelandingpagevariableusingpost
        method: POST
        description: Marketo Update Landing Page Variable
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: id
          required: true
        - name: variableId
          in: path
          type: string
          description: variableId
          required: true
        - name: value
          in: query
          type: integer
          description: New value of the variable
          required: true
    - name: rest-asset-v1-landingPage-id-variables.json
      path: /rest/asset/v1/landingPage/{id}/variables.json
      operations:
      - name: getvariablesusingget
        method: GET
        description: Marketo Get Landing Page Variables
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: Id of the landing page
          required: true
        - name: status
          in: query
          type: string
          description: Status filter for draft or approved versions
    - name: rest-asset-v1-landingPages.json
      path: /rest/asset/v1/landingPages.json
      operations:
      - name: browselandingpagesusingget
        method: GET
        description: Marketo Get Landing Pages
        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 landing pages to return. Max 200, default 20
        - name: offset
          in: query
          type: integer
          description: Integer offset for paging
        - name: folder
          in: query
          type: string
          description: JSON representation of parent folder, with members 'id', and 'type' which may be 'Folder' or 'Program'
      - name: createlandingpageusingpost
        method: POST
        description: Marketo Create Landing Page
        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-landing-pages-rest
    port: 8080
    description: REST adapter for Marketo Engage Rest API — Landing  Pages. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/asset/v1/landingpage/byname-json
      name: rest-asset-v1-landingpage-byname-json
      description: REST surface for rest-asset-v1-landingPage-byName.json.
      operations:
      - method: GET
        name: getlandingpagebynameusingget
        description: Marketo Get Landing Page by Name
        call: engage-rest-landing-pages.getlandingpagebynameusingget
        with:
          name: rest.name
          status: rest.status
          maxReturn: rest.maxReturn
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/id-json
      name: rest-asset-v1-landingpage-id-json
      description: REST surface for rest-asset-v1-landingPage-id}.json.
      operations:
      - method: GET
        name: getlandingpagebyidusingget
        description: Marketo Get Landing Page by Id
        call: engage-rest-landing-pages.getlandingpagebyidusingget
        with:
          id: rest.id
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatelandingpageusingpost
        description: Marketo Update Landing Page Metadata
        call: engage-rest-landing-pages.updatelandingpageusingpost
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/approvedraft-json
      name: rest-asset-v1-landingpage-id-approvedraft-json
      description: REST surface for rest-asset-v1-landingPage-id-approveDraft.json.
      operations:
      - method: POST
        name: approvelandingpageusingpost
        description: Marketo Approve Landing Page Draft
        call: engage-rest-landing-pages.approvelandingpageusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/clone-json
      name: rest-asset-v1-landingpage-id-clone-json
      description: REST surface for rest-asset-v1-landingPage-id-clone.json.
      operations:
      - method: POST
        name: clonelandingpageusingpost
        description: Marketo Clone Landing Page
        call: engage-rest-landing-pages.clonelandingpageusingpost
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/delete-json
      name: rest-asset-v1-landingpage-id-delete-json
      description: REST surface for rest-asset-v1-landingPage-id-delete.json.
      operations:
      - method: POST
        name: deletelandingpagebyidusingpost
        description: Marketo Delete Landing Page
        call: engage-rest-landing-pages.deletelandingpagebyidusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/discarddraft-json
      name: rest-asset-v1-landingpage-id-discarddraft-json
      description: REST surface for rest-asset-v1-landingPage-id-discardDraft.json.
      operations:
      - method: POST
        name: discardlandingpagebyidusingpost
        description: Marketo Discard Landing Page Draft
        call: engage-rest-landing-pages.discardlandingpagebyidusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/fullcontent-json
      name: rest-asset-v1-landingpage-id-fullcontent-json
      description: REST surface for rest-asset-v1-landingPage-id-fullContent.json.
      operations:
      - method: GET
        name: getlandingpagefullcontentusingget
        description: Marketo Get Landing Page Full Content
        call: engage-rest-landing-pages.getlandingpagefullcontentusingget
        with:
          id: rest.id
          leadId: rest.leadId
          segmentation: rest.segmentation
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/unapprove-json
      name: rest-asset-v1-landingpage-id-unapprove-json
      description: REST surface for rest-asset-v1-landingPage-id-unapprove.json.
      operations:
      - method: POST
        name: unapprovelandingpagebyidusingpost
        description: Marketo Unapprove Landing Page
        call: engage-rest-landing-pages.unapprovelandingpagebyidusingpost
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/variable/variableid-json
      name: rest-asset-v1-landingpage-id-variable-variableid-json
      description: REST surface for rest-asset-v1-landingPage-id-variable-variableId}.json.
      operations:
      - method: POST
        name: updatelandingpagevariableusingpost
        description: Marketo Update Landing Page Variable
        call: engage-rest-landing-pages.updatelandingpagevariableusingpost
        with:
          id: rest.id
          variableId: rest.variableId
          value: rest.value
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpage/{id}/variables-json
      name: rest-asset-v1-landingpage-id-variables-json
      description: REST surface for rest-asset-v1-landingPage-id-variables.json.
      operations:
      - method: GET
        name: getvariablesusingget
        description: Marketo Get Landing Page Variables
        call: engage-rest-landing-pages.getvariablesusingget
        with:
          id: rest.id
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/asset/v1/landingpages-json
      name: rest-asset-v1-landingpages-json
      description: REST surface for rest-asset-v1-landingPages.json.
      operations:
      - method: GET
        name: browselandingpagesusingget
        description: Marketo Get Landing Pages
        call: engage-rest-landing-pages.browselandingpagesusingget
        with:
          status: rest.status
          maxReturn: rest.maxReturn
          offset: rest.offset
          folder: rest.folder
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createlandingpageusingpost
        description: Marketo Create Landing Page
        call: engage-rest-landing-pages.createlandingpageusingpost
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: engage-rest-landing-pages-mcp
    port: 9090
    transport: http
    description: MCP adapter for Marketo Engage Rest API — Landing  Pages. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: marketo-get-landing-page-name
      description: Marketo Get Landing Page by Name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-landing-pages.getlandingpagebynameusingget
      with:
        name: tools.name
        status: tools.status
        maxReturn: tools.maxReturn
        offset: tools.offset
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-landing-page-id
      description: Marketo Get Landing Page by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-landing-pages.getlandingpagebyidusingget
      with:
        id: tools.id
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-landing-page-metadata
      description: Marketo Update Landing Page Metadata
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.updatelandingpageusingpost
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-approve-landing-page-draft
      description: Marketo Approve Landing Page Draft
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.approvelandingpageusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-clone-landing-page
      description: Marketo Clone Landing Page
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.clonelandingpageusingpost
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-delete-landing-page
      description: Marketo Delete Landing Page
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.deletelandingpagebyidusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-discard-landing-page-draft
      description: Marketo Discard Landing Page Draft
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.discardlandingpagebyidusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-landing-page-full
      description: Marketo Get Landing Page Full Content
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-landing-pages.getlandingpagefullcontentusingget
      with:
        id: tools.id
        leadId: tools.leadId
        segmentation: tools.segmentation
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-unapprove-landing-page
      description: Marketo Unapprove Landing Page
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.unapprovelandingpagebyidusingpost
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-update-landing-page-variable
      description: Marketo Update Landing Page Variable
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.updatelandingpagevariableusingpost
      with:
        id: tools.id
        variableId: tools.variableId
        value: tools.value
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-landing-page-variables
      description: Marketo Get Landing Page Variables
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-landing-pages.getvariablesusingget
      with:
        id: tools.id
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-get-landing-pages
      description: Marketo Get Landing Pages
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: engage-rest-landing-pages.browselandingpagesusingget
      with:
        status: tools.status
        maxReturn: tools.maxReturn
        offset: tools.offset
        folder: tools.folder
      outputParameters:
      - type: object
        mapping: $.
    - name: marketo-create-landing-page
      description: Marketo Create Landing Page
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: engage-rest-landing-pages.createlandingpageusingpost
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.