Zylo · Capability
Zylo Enterprise API
The Zylo Enterprise API provides a modern, RESTful API to work with your SaaS subscription data. The API is built using resource-oriented URLs that are protected by HTTPS transport security and authenticated via secure tokens. It enables the export of SaaS usage and subscription data to reporting tools outside of Zylo, as well as the import of additional unintegrated usage data.
What You Can Do
GET
Listsubscriptions
— Zylo List subscriptions
/subscriptions
GET
Getsubscription
— Zylo Get a subscription
/subscriptions/{subscriptionId}
GET
Listapplications
— Zylo List applications
/applications
GET
Getapplication
— Zylo Get an application
/applications/{applicationId}
PUT
Updateapplication
— Zylo Update an application
/applications/{applicationId}
POST
Createexportjob
— Zylo Create an export job
/subscriptions/-/exportJobs
GET
Getexportjob
— Zylo Get an export job
/subscriptions/-/exportJobs/{exportJobId}
GET
Listimportjobs
— Zylo List import jobs
/subscriptions/{subscriptionId}/importJob
POST
Createimportjob
— Zylo Create an import job
/subscriptions/{subscriptionId}/importJob
GET
Getimportjob
— Zylo Get an import job
/subscriptions/{subscriptionId}/importJob/{importJobId}
MCP Tools
listsubscriptions
Zylo List subscriptions
read-only
idempotent
getsubscription
Zylo Get a subscription
read-only
idempotent
listapplications
Zylo List applications
read-only
idempotent
getapplication
Zylo Get an application
read-only
idempotent
updateapplication
Zylo Update an application
idempotent
createexportjob
Zylo Create an export job
getexportjob
Zylo Get an export job
read-only
idempotent
listimportjobs
Zylo List import jobs
read-only
idempotent
createimportjob
Zylo Create an import job
getimportjob
Zylo Get an import job
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Zylo Enterprise API
description: The Zylo Enterprise API provides a modern, RESTful API to work with your SaaS subscription data. The API is
built using resource-oriented URLs that are protected by HTTPS transport security and authenticated via secure tokens.
It enables the export of SaaS usage and subscription data to reporting tools outside of Zylo, as well as the import of
additional unintegrated usage data.
tags:
- Zylo
- API
created: '2026-05-06'
modified: '2026-05-06'
capability:
consumes:
- type: http
namespace: zylo
baseUri: https://api.zylo.com/v1
description: Zylo Enterprise API HTTP API.
authentication:
type: bearer
token: '{{ZYLO_TOKEN}}'
resources:
- name: subscriptions
path: /subscriptions
operations:
- name: listsubscriptions
method: GET
description: Zylo List subscriptions
inputParameters:
- name: pageSize
in: query
type: integer
description: The maximum number of results to return per page.
- name: pageToken
in: query
type: string
description: A token returned from a previous list request to retrieve the next page of results.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscriptions-subscriptionid
path: /subscriptions/{subscriptionId}
operations:
- name: getsubscription
method: GET
description: Zylo Get a subscription
inputParameters:
- name: subscriptionId
in: path
type: string
required: true
description: The unique identifier of the subscription.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: applications
path: /applications
operations:
- name: listapplications
method: GET
description: Zylo List applications
inputParameters:
- name: pageSize
in: query
type: integer
description: The maximum number of results to return per page.
- name: pageToken
in: query
type: string
description: A token returned from a previous list request to retrieve the next page of results.
- name: custom_fields
in: query
type: object
description: Filter applications by custom field values. Uses bracket notation such as custom_fields[boolean]=true.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: applications-applicationid
path: /applications/{applicationId}
operations:
- name: getapplication
method: GET
description: Zylo Get an application
inputParameters:
- name: applicationId
in: path
type: string
required: true
description: The unique identifier of the application.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: updateapplication
method: PUT
description: Zylo Update an application
inputParameters:
- name: applicationId
in: path
type: string
required: true
description: The unique identifier of the application.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscriptions-exportjobs
path: /subscriptions/-/exportJobs
operations:
- name: createexportjob
method: POST
description: Zylo Create an export job
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscriptions-exportjobs-exportjobid
path: /subscriptions/-/exportJobs/{exportJobId}
operations:
- name: getexportjob
method: GET
description: Zylo Get an export job
inputParameters:
- name: exportJobId
in: path
type: string
required: true
description: The unique identifier of the export job.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscriptions-subscriptionid-importjob
path: /subscriptions/{subscriptionId}/importJob
operations:
- name: listimportjobs
method: GET
description: Zylo List import jobs
inputParameters:
- name: subscriptionId
in: path
type: string
required: true
description: The unique identifier of the subscription.
- name: pageSize
in: query
type: integer
description: The maximum number of results to return per page.
- name: pageToken
in: query
type: string
description: A token returned from a previous list request to retrieve the next page of results.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: createimportjob
method: POST
description: Zylo Create an import job
inputParameters:
- name: subscriptionId
in: path
type: string
required: true
description: The unique identifier of the subscription.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscriptions-subscriptionid-importjob-importjob
path: /subscriptions/{subscriptionId}/importJob/{importJobId}
operations:
- name: getimportjob
method: GET
description: Zylo Get an import job
inputParameters:
- name: subscriptionId
in: path
type: string
required: true
description: The unique identifier of the subscription.
- name: importJobId
in: path
type: string
required: true
description: The unique identifier of the import job.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
port: 8080
namespace: zylo-rest
description: REST adapter for Zylo Enterprise API.
resources:
- path: /subscriptions
name: listsubscriptions
operations:
- method: GET
name: listsubscriptions
description: Zylo List subscriptions
call: zylo.listsubscriptions
outputParameters:
- type: object
mapping: $.
- path: /subscriptions/{subscriptionId}
name: getsubscription
operations:
- method: GET
name: getsubscription
description: Zylo Get a subscription
call: zylo.getsubscription
with:
subscriptionId: rest.subscriptionId
outputParameters:
- type: object
mapping: $.
- path: /applications
name: listapplications
operations:
- method: GET
name: listapplications
description: Zylo List applications
call: zylo.listapplications
outputParameters:
- type: object
mapping: $.
- path: /applications/{applicationId}
name: getapplication
operations:
- method: GET
name: getapplication
description: Zylo Get an application
call: zylo.getapplication
with:
applicationId: rest.applicationId
outputParameters:
- type: object
mapping: $.
- path: /applications/{applicationId}
name: updateapplication
operations:
- method: PUT
name: updateapplication
description: Zylo Update an application
call: zylo.updateapplication
with:
applicationId: rest.applicationId
outputParameters:
- type: object
mapping: $.
- path: /subscriptions/-/exportJobs
name: createexportjob
operations:
- method: POST
name: createexportjob
description: Zylo Create an export job
call: zylo.createexportjob
outputParameters:
- type: object
mapping: $.
- path: /subscriptions/-/exportJobs/{exportJobId}
name: getexportjob
operations:
- method: GET
name: getexportjob
description: Zylo Get an export job
call: zylo.getexportjob
with:
exportJobId: rest.exportJobId
outputParameters:
- type: object
mapping: $.
- path: /subscriptions/{subscriptionId}/importJob
name: listimportjobs
operations:
- method: GET
name: listimportjobs
description: Zylo List import jobs
call: zylo.listimportjobs
with:
subscriptionId: rest.subscriptionId
outputParameters:
- type: object
mapping: $.
- path: /subscriptions/{subscriptionId}/importJob
name: createimportjob
operations:
- method: POST
name: createimportjob
description: Zylo Create an import job
call: zylo.createimportjob
with:
subscriptionId: rest.subscriptionId
outputParameters:
- type: object
mapping: $.
- path: /subscriptions/{subscriptionId}/importJob/{importJobId}
name: getimportjob
operations:
- method: GET
name: getimportjob
description: Zylo Get an import job
call: zylo.getimportjob
with:
subscriptionId: rest.subscriptionId
importJobId: rest.importJobId
outputParameters:
- type: object
mapping: $.
- type: mcp
port: 9090
namespace: zylo-mcp
transport: http
description: MCP adapter for Zylo Enterprise API for AI agent use.
tools:
- name: listsubscriptions
description: Zylo List subscriptions
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.listsubscriptions
with:
pageSize: tools.pageSize
pageToken: tools.pageToken
inputParameters:
- name: pageSize
type: integer
description: The maximum number of results to return per page.
- name: pageToken
type: string
description: A token returned from a previous list request to retrieve the next page of results.
outputParameters:
- type: object
mapping: $.
- name: getsubscription
description: Zylo Get a subscription
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.getsubscription
with:
subscriptionId: tools.subscriptionId
inputParameters:
- name: subscriptionId
type: string
description: The unique identifier of the subscription.
required: true
outputParameters:
- type: object
mapping: $.
- name: listapplications
description: Zylo List applications
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.listapplications
with:
pageSize: tools.pageSize
pageToken: tools.pageToken
custom_fields: tools.custom_fields
inputParameters:
- name: pageSize
type: integer
description: The maximum number of results to return per page.
- name: pageToken
type: string
description: A token returned from a previous list request to retrieve the next page of results.
- name: custom_fields
type: object
description: Filter applications by custom field values. Uses bracket notation such as custom_fields[boolean]=true.
outputParameters:
- type: object
mapping: $.
- name: getapplication
description: Zylo Get an application
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.getapplication
with:
applicationId: tools.applicationId
inputParameters:
- name: applicationId
type: string
description: The unique identifier of the application.
required: true
outputParameters:
- type: object
mapping: $.
- name: updateapplication
description: Zylo Update an application
hints:
readOnly: false
destructive: false
idempotent: true
call: zylo.updateapplication
with:
applicationId: tools.applicationId
inputParameters:
- name: applicationId
type: string
description: The unique identifier of the application.
required: true
outputParameters:
- type: object
mapping: $.
- name: createexportjob
description: Zylo Create an export job
hints:
readOnly: false
destructive: false
idempotent: false
call: zylo.createexportjob
outputParameters:
- type: object
mapping: $.
- name: getexportjob
description: Zylo Get an export job
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.getexportjob
with:
exportJobId: tools.exportJobId
inputParameters:
- name: exportJobId
type: string
description: The unique identifier of the export job.
required: true
outputParameters:
- type: object
mapping: $.
- name: listimportjobs
description: Zylo List import jobs
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.listimportjobs
with:
subscriptionId: tools.subscriptionId
pageSize: tools.pageSize
pageToken: tools.pageToken
inputParameters:
- name: subscriptionId
type: string
description: The unique identifier of the subscription.
required: true
- name: pageSize
type: integer
description: The maximum number of results to return per page.
- name: pageToken
type: string
description: A token returned from a previous list request to retrieve the next page of results.
outputParameters:
- type: object
mapping: $.
- name: createimportjob
description: Zylo Create an import job
hints:
readOnly: false
destructive: false
idempotent: false
call: zylo.createimportjob
with:
subscriptionId: tools.subscriptionId
inputParameters:
- name: subscriptionId
type: string
description: The unique identifier of the subscription.
required: true
outputParameters:
- type: object
mapping: $.
- name: getimportjob
description: Zylo Get an import job
hints:
readOnly: true
destructive: false
idempotent: true
call: zylo.getimportjob
with:
subscriptionId: tools.subscriptionId
importJobId: tools.importJobId
inputParameters:
- name: subscriptionId
type: string
description: The unique identifier of the subscription.
required: true
- name: importJobId
type: string
description: The unique identifier of the import job.
required: true
outputParameters:
- type: object
mapping: $.
binds:
- namespace: env
keys:
ZYLO_TOKEN: ZYLO_TOKEN