naftiko: 1.0.0-alpha2
info:
label: Klaviyo API — Forms
description: 'Klaviyo API — Forms. 9 operations. Lead operation: Get Form Version. Self-contained Naftiko capability covering
one Klaviyo business surface.'
tags:
- Klaviyo
- Forms
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
KLAVIYO_API_KEY: KLAVIYO_API_KEY
capability:
consumes:
- type: http
namespace: klaviyo-forms
baseUri: https://a.klaviyo.com
description: Klaviyo API — Forms business capability. Self-contained, no shared references.
resources:
- name: api-form-versions-id
path: /api/form-versions/{id}
operations:
- name: getformversion
method: GET
description: Get Form Version
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form version
required: true
- name: fields[form-version]
in: query
type: array
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: api-form-versions-id-form
path: /api/form-versions/{id}/form
operations:
- name: getformforformversion
method: GET
description: Get Form for Form Version
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form version
required: true
- name: fields[form]
in: query
type: array
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: api-form-versions-id-relationships-form
path: /api/form-versions/{id}/relationships/form
operations:
- name: getformidforformversion
method: GET
description: Get Form ID for Form Version
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form version
required: true
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: api-forms
path: /api/forms
operations:
- name: getforms
method: GET
description: Get Forms
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: fields[form]
in: query
type: array
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
- name: filter
in: query
type: string
description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed
field(s)/operator(s):
`id`: `any`'
- name: page[cursor]
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
- name: page[size]
in: query
type: integer
description: 'Default: 20. Min: 1. Max: 100.'
- name: sort
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: createform
method: POST
description: Create Form
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: api-forms-id
path: /api/forms/{id}
operations:
- name: getform
method: GET
description: Get Form
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form
required: true
- name: fields[form]
in: query
type: array
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: deleteform
method: DELETE
description: Delete Form
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form
required: true
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: api-forms-id-form-versions
path: /api/forms/{id}/form-versions
operations:
- name: getversionsforform
method: GET
description: Get Versions for Form
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form
required: true
- name: fields[form-version]
in: query
type: array
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
- name: filter
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed
field(s)/operator(s):
`form_type`
- name: page[cursor]
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
- name: page[size]
in: query
type: integer
description: 'Default: 20. Min: 1. Max: 100.'
- name: sort
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
- name: api-forms-id-relationships-form-versions
path: /api/forms/{id}/relationships/form-versions
operations:
- name: getversionidsforform
method: GET
description: Get Version IDs for Form
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: id
in: path
type: string
description: The ID of the form
required: true
- name: filter
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed
field(s)/operator(s):
`form_type`
- name: page[cursor]
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
- name: page[size]
in: query
type: integer
description: 'Default: 20. Min: 1. Max: 100.'
- name: sort
in: query
type: string
description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
- name: revision
in: header
type: string
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
authentication:
type: apikey
key: Authorization
value: '{{env.KLAVIYO_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: klaviyo-forms-rest
port: 8080
description: REST adapter for Klaviyo API — Forms. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/api/form-versions/{id}
name: api-form-versions-id
description: REST surface for api-form-versions-id.
operations:
- method: GET
name: getformversion
description: Get Form Version
call: klaviyo-forms.getformversion
with:
id: rest.id
fields[form-version]: rest.fields[form-version]
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- path: /v1/api/form-versions/{id}/form
name: api-form-versions-id-form
description: REST surface for api-form-versions-id-form.
operations:
- method: GET
name: getformforformversion
description: Get Form for Form Version
call: klaviyo-forms.getformforformversion
with:
id: rest.id
fields[form]: rest.fields[form]
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- path: /v1/api/form-versions/{id}/relationships/form
name: api-form-versions-id-relationships-form
description: REST surface for api-form-versions-id-relationships-form.
operations:
- method: GET
name: getformidforformversion
description: Get Form ID for Form Version
call: klaviyo-forms.getformidforformversion
with:
id: rest.id
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- path: /v1/api/forms
name: api-forms
description: REST surface for api-forms.
operations:
- method: GET
name: getforms
description: Get Forms
call: klaviyo-forms.getforms
with:
fields[form]: rest.fields[form]
filter: rest.filter
page[cursor]: rest.page[cursor]
page[size]: rest.page[size]
sort: rest.sort
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- method: POST
name: createform
description: Create Form
call: klaviyo-forms.createform
with:
revision: rest.revision
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/api/forms/{id}
name: api-forms-id
description: REST surface for api-forms-id.
operations:
- method: GET
name: getform
description: Get Form
call: klaviyo-forms.getform
with:
id: rest.id
fields[form]: rest.fields[form]
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteform
description: Delete Form
call: klaviyo-forms.deleteform
with:
id: rest.id
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- path: /v1/api/forms/{id}/form-versions
name: api-forms-id-form-versions
description: REST surface for api-forms-id-form-versions.
operations:
- method: GET
name: getversionsforform
description: Get Versions for Form
call: klaviyo-forms.getversionsforform
with:
id: rest.id
fields[form-version]: rest.fields[form-version]
filter: rest.filter
page[cursor]: rest.page[cursor]
page[size]: rest.page[size]
sort: rest.sort
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- path: /v1/api/forms/{id}/relationships/form-versions
name: api-forms-id-relationships-form-versions
description: REST surface for api-forms-id-relationships-form-versions.
operations:
- method: GET
name: getversionidsforform
description: Get Version IDs for Form
call: klaviyo-forms.getversionidsforform
with:
id: rest.id
filter: rest.filter
page[cursor]: rest.page[cursor]
page[size]: rest.page[size]
sort: rest.sort
revision: rest.revision
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: klaviyo-forms-mcp
port: 9090
transport: http
description: MCP adapter for Klaviyo API — Forms. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: get-form-version
description: Get Form Version
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getformversion
with:
id: tools.id
fields[form-version]: tools.fields[form-version]
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: get-form-form-version
description: Get Form for Form Version
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getformforformversion
with:
id: tools.id
fields[form]: tools.fields[form]
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: get-form-id-form-version
description: Get Form ID for Form Version
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getformidforformversion
with:
id: tools.id
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: get-forms
description: Get Forms
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getforms
with:
fields[form]: tools.fields[form]
filter: tools.filter
page[cursor]: tools.page[cursor]
page[size]: tools.page[size]
sort: tools.sort
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: create-form
description: Create Form
hints:
readOnly: false
destructive: false
idempotent: false
call: klaviyo-forms.createform
with:
revision: tools.revision
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-form
description: Get Form
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getform
with:
id: tools.id
fields[form]: tools.fields[form]
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: delete-form
description: Delete Form
hints:
readOnly: false
destructive: true
idempotent: true
call: klaviyo-forms.deleteform
with:
id: tools.id
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: get-versions-form
description: Get Versions for Form
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getversionsforform
with:
id: tools.id
fields[form-version]: tools.fields[form-version]
filter: tools.filter
page[cursor]: tools.page[cursor]
page[size]: tools.page[size]
sort: tools.sort
revision: tools.revision
outputParameters:
- type: object
mapping: $.
- name: get-version-ids-form
description: Get Version IDs for Form
hints:
readOnly: true
destructive: false
idempotent: true
call: klaviyo-forms.getversionidsforform
with:
id: tools.id
filter: tools.filter
page[cursor]: tools.page[cursor]
page[size]: tools.page[size]
sort: tools.sort
revision: tools.revision
outputParameters:
- type: object
mapping: $.