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