naftiko: 1.0.0-alpha2
info:
label: Marketo Engage Rest API — Programs
description: 'Marketo Engage Rest API — Programs. 11 operations. Lead operation: Marketo Get Program by Name. Self-contained
Naftiko capability covering one Marketo business surface.'
tags:
- Marketo
- Programs
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-programs
baseUri: https://localhost:8080
description: Marketo Engage Rest API — Programs business capability. Self-contained, no shared references.
resources:
- name: rest-asset-v1-program-byName.json
path: /rest/asset/v1/program/byName.json
operations:
- name: getprogrambynameusingget
method: GET
description: Marketo Get Program by Name
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: name
in: query
type: string
description: Name of the program
required: true
- name: includeTags
in: query
type: boolean
description: Set true to populate program tags
- name: includeCosts
in: query
type: boolean
description: Set true to populate program costs
- name: rest-asset-v1-program-byTag.json
path: /rest/asset/v1/program/byTag.json
operations:
- name: getprogramlistbytagusingget
method: GET
description: Marketo Get Programs by Tag
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: tagType
in: query
type: string
description: Type of program tag
required: true
- name: tagValue
in: query
type: string
description: Value of the tag
required: true
- 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-program-id}.json
path: /rest/asset/v1/program/{id}.json
operations:
- name: getprogrambyidusingget
method: GET
description: Marketo Get Program by Id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: integer
description: id
required: true
- name: updateprogramusingpost
method: POST
description: Marketo Update Program 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-program-id-approve.json
path: /rest/asset/v1/program/{id}/approve.json
operations:
- name: approveprogramusingpost
method: POST
description: Marketo Approve Program
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: integer
description: id
required: true
- name: rest-asset-v1-program-id-clone.json
path: /rest/asset/v1/program/{id}/clone.json
operations:
- name: cloneprogramusingpost
method: POST
description: Marketo Clone Program
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-program-id-delete.json
path: /rest/asset/v1/program/{id}/delete.json
operations:
- name: deleteprogramusingpost
method: POST
description: Marketo Delete Program
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: integer
description: id
required: true
- name: rest-asset-v1-program-id-unapprove.json
path: /rest/asset/v1/program/{id}/unapprove.json
operations:
- name: unapproveprogramusingpost
method: POST
description: Marketo Unapprove Program
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: integer
description: id
required: true
- name: rest-asset-v1-program-programId-smartList.json
path: /rest/asset/v1/program/{programId}/smartList.json
operations:
- name: getsmartlistbyprogramidusingget
method: GET
description: Marketo Get Smart List by Program Id
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: programId
in: path
type: integer
description: Id for the email program containing smart list to retrieve
required: true
- name: includeRules
in: query
type: boolean
description: Set true to populate smart list rules. Default false
- name: rest-asset-v1-programs.json
path: /rest/asset/v1/programs.json
operations:
- name: browseprogramsusingget
method: GET
description: Marketo Get Programs
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- 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: filterType
in: query
type: string
description: Optional filter. Requires filterValues
- name: earliestUpdatedAt
in: query
type: string
description: Exclude programs prior to this date. Must be valid ISO-8601 string. See Datet
- name: latestUpdatedAt
in: query
type: string
description: Exclude programs after this date. Must be valid ISO-8601 string. See Datetime
- name: createprogramusingpost
method: POST
description: Marketo Create Program
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-programs-rest
port: 8080
description: REST adapter for Marketo Engage Rest API — Programs. One Spectral-compliant resource per consumed operation,
prefixed with /v1.
resources:
- path: /v1/asset/v1/program/byname-json
name: rest-asset-v1-program-byname-json
description: REST surface for rest-asset-v1-program-byName.json.
operations:
- method: GET
name: getprogrambynameusingget
description: Marketo Get Program by Name
call: engage-rest-programs.getprogrambynameusingget
with:
name: rest.name
includeTags: rest.includeTags
includeCosts: rest.includeCosts
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/bytag-json
name: rest-asset-v1-program-bytag-json
description: REST surface for rest-asset-v1-program-byTag.json.
operations:
- method: GET
name: getprogramlistbytagusingget
description: Marketo Get Programs by Tag
call: engage-rest-programs.getprogramlistbytagusingget
with:
tagType: rest.tagType
tagValue: rest.tagValue
maxReturn: rest.maxReturn
offset: rest.offset
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/id-json
name: rest-asset-v1-program-id-json
description: REST surface for rest-asset-v1-program-id}.json.
operations:
- method: GET
name: getprogrambyidusingget
description: Marketo Get Program by Id
call: engage-rest-programs.getprogrambyidusingget
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- method: POST
name: updateprogramusingpost
description: Marketo Update Program Metadata
call: engage-rest-programs.updateprogramusingpost
with:
id: rest.id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/{id}/approve-json
name: rest-asset-v1-program-id-approve-json
description: REST surface for rest-asset-v1-program-id-approve.json.
operations:
- method: POST
name: approveprogramusingpost
description: Marketo Approve Program
call: engage-rest-programs.approveprogramusingpost
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/{id}/clone-json
name: rest-asset-v1-program-id-clone-json
description: REST surface for rest-asset-v1-program-id-clone.json.
operations:
- method: POST
name: cloneprogramusingpost
description: Marketo Clone Program
call: engage-rest-programs.cloneprogramusingpost
with:
id: rest.id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/{id}/delete-json
name: rest-asset-v1-program-id-delete-json
description: REST surface for rest-asset-v1-program-id-delete.json.
operations:
- method: POST
name: deleteprogramusingpost
description: Marketo Delete Program
call: engage-rest-programs.deleteprogramusingpost
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/{id}/unapprove-json
name: rest-asset-v1-program-id-unapprove-json
description: REST surface for rest-asset-v1-program-id-unapprove.json.
operations:
- method: POST
name: unapproveprogramusingpost
description: Marketo Unapprove Program
call: engage-rest-programs.unapproveprogramusingpost
with:
id: rest.id
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/program/{programid}/smartlist-json
name: rest-asset-v1-program-programid-smartlist-json
description: REST surface for rest-asset-v1-program-programId-smartList.json.
operations:
- method: GET
name: getsmartlistbyprogramidusingget
description: Marketo Get Smart List by Program Id
call: engage-rest-programs.getsmartlistbyprogramidusingget
with:
programId: rest.programId
includeRules: rest.includeRules
outputParameters:
- type: object
mapping: $.
- path: /v1/asset/v1/programs-json
name: rest-asset-v1-programs-json
description: REST surface for rest-asset-v1-programs.json.
operations:
- method: GET
name: browseprogramsusingget
description: Marketo Get Programs
call: engage-rest-programs.browseprogramsusingget
with:
maxReturn: rest.maxReturn
offset: rest.offset
filterType: rest.filterType
earliestUpdatedAt: rest.earliestUpdatedAt
latestUpdatedAt: rest.latestUpdatedAt
outputParameters:
- type: object
mapping: $.
- method: POST
name: createprogramusingpost
description: Marketo Create Program
call: engage-rest-programs.createprogramusingpost
with:
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: engage-rest-programs-mcp
port: 9090
transport: http
description: MCP adapter for Marketo Engage Rest API — Programs. One tool per consumed operation, routed inline through
this capability's consumes block.
tools:
- name: marketo-get-program-name
description: Marketo Get Program by Name
hints:
readOnly: true
destructive: false
idempotent: true
call: engage-rest-programs.getprogrambynameusingget
with:
name: tools.name
includeTags: tools.includeTags
includeCosts: tools.includeCosts
outputParameters:
- type: object
mapping: $.
- name: marketo-get-programs-tag
description: Marketo Get Programs by Tag
hints:
readOnly: true
destructive: false
idempotent: true
call: engage-rest-programs.getprogramlistbytagusingget
with:
tagType: tools.tagType
tagValue: tools.tagValue
maxReturn: tools.maxReturn
offset: tools.offset
outputParameters:
- type: object
mapping: $.
- name: marketo-get-program-id
description: Marketo Get Program by Id
hints:
readOnly: true
destructive: false
idempotent: true
call: engage-rest-programs.getprogrambyidusingget
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: marketo-update-program-metadata
description: Marketo Update Program Metadata
hints:
readOnly: false
destructive: false
idempotent: false
call: engage-rest-programs.updateprogramusingpost
with:
id: tools.id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: marketo-approve-program
description: Marketo Approve Program
hints:
readOnly: false
destructive: false
idempotent: false
call: engage-rest-programs.approveprogramusingpost
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: marketo-clone-program
description: Marketo Clone Program
hints:
readOnly: false
destructive: false
idempotent: false
call: engage-rest-programs.cloneprogramusingpost
with:
id: tools.id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: marketo-delete-program
description: Marketo Delete Program
hints:
readOnly: false
destructive: false
idempotent: false
call: engage-rest-programs.deleteprogramusingpost
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: marketo-unapprove-program
description: Marketo Unapprove Program
hints:
readOnly: false
destructive: false
idempotent: false
call: engage-rest-programs.unapproveprogramusingpost
with:
id: tools.id
outputParameters:
- type: object
mapping: $.
- name: marketo-get-smart-list-program
description: Marketo Get Smart List by Program Id
hints:
readOnly: true
destructive: false
idempotent: true
call: engage-rest-programs.getsmartlistbyprogramidusingget
with:
programId: tools.programId
includeRules: tools.includeRules
outputParameters:
- type: object
mapping: $.
- name: marketo-get-programs
description: Marketo Get Programs
hints:
readOnly: true
destructive: false
idempotent: true
call: engage-rest-programs.browseprogramsusingget
with:
maxReturn: tools.maxReturn
offset: tools.offset
filterType: tools.filterType
earliestUpdatedAt: tools.earliestUpdatedAt
latestUpdatedAt: tools.latestUpdatedAt
outputParameters:
- type: object
mapping: $.
- name: marketo-create-program
description: Marketo Create Program
hints:
readOnly: false
destructive: false
idempotent: false
call: engage-rest-programs.createprogramusingpost
with:
body: tools.body
outputParameters:
- type: object
mapping: $.