Venafi Plugins API
The Plugins API from Venafi — 4 operation(s) for plugins.
The Plugins API from Venafi — 4 operation(s) for plugins.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/venafi-plugins-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Certificate Manager - SaaS Plugins API
version: '1.0'
servers:
- description: US Region
url: https://api.venafi.cloud
- description: EU Region
url: https://api.eu.venafi.cloud
- description: AU Region
url: https://api.au.venafi.cloud
- description: UK Region
url: https://api.uk.venafi.cloud
- description: SG Region
url: https://api.sg.venafi.cloud
- description: CA Region
url: https://api.ca.venafi.cloud
tags:
- name: Plugins
paths:
/v1/plugins:
get:
description: Retrieve all the plugins for the tenant.
operationId: get-v1-plugins
parameters:
- description: Filter by provided plugin type.
in: query
name: pluginTypes
schema:
items:
$ref: '#/components/schemas/PluginType'
minItems: 1
type: array
uniqueItems: true
- description: Include disabled plugins if set to true.
in: query
name: includeDisabled
schema:
default: false
type: boolean
responses:
'200':
content:
application/json:
schema:
properties:
plugins:
items:
$ref: '#/components/schemas/Plugin'
type: array
required:
- plugins
type: object
description: Success. All plugins retrieved.
security:
- tppl-api-key: []
summary: Retrieve all plugins
tags:
- Plugins
x-rbac:
permissions:
access_type: read
description: Ability to get a plugin
name: ngts.plugin.get
roles:
- PKIAdmin
- PlatformAdmin
- ResourceOwner
- Guest
post:
description: Create a custom plugin for your tenant's exclusive use. The user must be a SYSTEM_ADMIN or a PKI_ADMIN.
operationId: post-v1-plugins
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicPluginCreationRequest'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/PluginResponse'
description: Success. Plugin created.
security:
- tppl-api-key: []
summary: Create a local plugin
tags:
- Plugins
x-rbac:
permissions:
access_type: write
description: Ability to create a plugin
name: ngts.plugin.create
roles:
- PKIAdmin
/v1/plugins/{id}:
parameters:
- description: Plugin ID
in: path
name: id
required: true
schema:
type: string
get:
description: Retrieve a plugin with the specified ID.
operationId: get-v1-plugins-id
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Plugin'
description: Success. Plugin retrieved.
security:
- tppl-api-key: []
summary: Retrieve plugin by ID
tags:
- Plugins
x-rbac:
permissions:
name: ngts.plugin.get
patch:
description: Update a plugin with specified ID. Plugin must be owned by the tenant and the user must be a SYSTEM_ADMIN or a PKI_ADMIN.
operationId: patch-v1-plugins-id
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublicPluginUpdateRequest'
responses:
'200':
description: Success. Plugin updated.
'401':
description: Unauthorized
'403':
description: Forbidden
security:
- tppl-api-key: []
summary: Update a local plugin
tags:
- Plugins
x-rbac:
permissions:
access_type: write
description: Ability to update a plugin
name: ngts.plugin.update
roles:
- PKIAdmin
delete:
description: Delete a plugin with the specified ID. Plugin must be owned by the tenant and the user must be a SYSTEM_ADMIN or a PKI_ADMIN.
operationId: delete-v1-plugins-id
responses:
'204':
description: No Content.
security:
- tppl-api-key: []
summary: Delete a local plugin
tags:
- Plugins
x-rbac:
permissions:
access_type: write
description: Ability to delete a plugin
name: ngts.plugin.delete
roles:
- PKIAdmin
/v1/plugins/{id}/disablements:
parameters:
- description: Plugin ID that is currently marked as disabled.
in: path
name: id
required: true
schema:
type: string
post:
description: Set a plugin to be disabled for your tenant.
operationId: post-v1-plugins-id-exclusions
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/PluginResponse'
description: Successfully disabled the plugin for the current tenant.
security:
- tppl-api-key: []
summary: Disable a plugin
tags:
- Plugins
x-rbac:
permissions:
access_type: write
description: Ability to set a plugin to be disabled for a tenant
name: ngts.plugin_disable.set
roles:
- PKIAdmin
delete:
description: Remove a plugin exclusion from your tenant.
operationId: delete-v1-plugins-id-exclusions
responses:
'204':
description: No Content. Successfully deleted the plugin disablement.
security:
- tppl-api-key: []
summary: Remove plugin disablement
tags:
- Plugins
x-rbac:
permissions:
access_type: write
description: Ability to unset disabled plugin for a tenant
name: ngts.plugin_disable.unset
roles:
- PKIAdmin
/v1/plugins/disablements:
get:
description: Retrieve all the disabled plugins for the current tenant.
operationId: get-v1-plugins-exclusions
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PluginResponse'
description: Successfully retrieved all the disabled plugins for the current tenant.
security:
- tppl-api-key: []
summary: Retrieve all disabled plugins
tags:
- Plugins
x-rbac:
permissions:
name: ngts.plugin.get
components:
schemas:
Manifest:
properties:
deployment:
$ref: '#/components/schemas/Deployment'
description:
description: Description text for the plugin.
type: string
domainSchema:
type: object
hooks:
properties:
mapping:
type: object
requestConverters:
items: {}
type:
- array
- 'null'
required:
- mapping
type: object
localizationResources:
$ref: '#/components/schemas/LocalizationResource'
name:
description: Name of the plugin.
type: string
pluginType:
$ref: '#/components/schemas/PluginType'
workTypes:
description: Defines the type of workflows supported for the plugin.
items:
$ref: '#/components/schemas/WorkType'
minItems: 1
type: array
uniqueItems: true
required:
- name
- workTypes
- deployment
- domainSchema
- hooks
title: Manifest
type: object
x-examples:
Example 1:
deployment:
executionTarget: vsat
image: public.ecr.aws/docker/library/nginx:mainline-alpine3.18-slim
description: Description text.
domainSchema:
binding:
properties:
parentProfile:
description: parentProfile.description
type: string
x-labelLocalizationKey: parentProfile.label
x-rank: 1
serverName:
description: serverName.description
format: hostname
type: string
x-labelLocalizationKey: serverName.label
x-rank: 3
x-rule:
condition:
type: '#/properties/sslProfileType'
effect: SHOW
sslProfile:
type: string
x-labelLocalizationKey: sslProfile.label
x-rank: 2
sslProfileType:
oneOf:
- const: client
x-labelLocalizationKey: sslProfileType.client
- const: server
x-labelLocalizationKey: sslProfileType.server
x-labelLocalizationKey: sslProfileType.label
x-rank: 0
required:
- sslProfile
- sslProfileType
type: object
x-labelLocalizationKey: binding.label
x-primaryKey:
- '#/sslProfileType'
- '#/sslProfile'
certificateBundle:
properties:
certificate:
contentEncoding: base64
type: string
certificateChain:
contentEncoding: base64
type: string
privateKey:
contentEncoding: base64
type: string
x-encrypted-base64: true
required:
- certificate
- privateKey
- certificateChain
type: object
connection:
properties:
hostnameOrAddress:
type: string
x-labelLocalizationKey: address.label
x-rank: 0
password:
type: string
x-controlOptions:
hidePasswordLabel: password.hidePassword
password: true
showPasswordLabel: password.showPassword
x-encrypted: true
x-labelLocalizationKey: password.label
x-rank: 3
port:
description: port.description
maximum: 65535
minimum: 1
type: integer
x-labelLocalizationKey: port.label
x-rank: 1
username:
type: string
x-encrypted: true
x-labelLocalizationKey: username.label
x-rank: 2
required:
- hostnameOrAddress
- username
- password
type: object
discovery:
properties:
discoveryType:
oneOf:
- const: all
x-labelLocalizationKey: discoveryType.all
- const: monitor
x-labelLocalizationKey: discoveryType.monitor
- const: virtualServer
x-labelLocalizationKey: discoveryType.virtualServer
x-labelLocalizationKey: discoveryType.label
x-rank: 0
excludeExpiredCertificates:
type: boolean
x-labelLocalizationKey: discovery.expiredCertificatesLabel
x-rank: 2
excludeInactiveProfiles:
type: boolean
x-labelLocalizationKey: discovery.inactiveProfilesLabel
x-rank: 3
partition:
default: Common
description: discovery.partitionDescription
maxLength: 64
type: string
x-labelLocalizationKey: discovery.partitionLabel
x-rank: 1
type: object
discoveryControl:
properties:
maxResults:
type: int
required:
- maxResults
type: object
discoveryPage:
properties:
discoveryType:
type: string
paginator:
type: string
type: object
keystore:
properties:
certificateName:
description: certificateName.description
type: string
x-labelLocalizationKey: certificateName.label
x-rank: 0
chainName:
type: string
x-labelLocalizationKey: chainName.label
x-rank: 1
partition:
description: partition.description
maxLength: 64
type: string
x-labelLocalizationKey: partition.label
x-rank: 2
x-targetConfigurationRef: /partitions
required:
- certificateName
- chainName
type: object
x-labelLocalizationKey: keystore.label
x-primaryKey:
- '#/certificateName'
- '#/partition'
hooks:
mapping:
configureInstallationEndpoint: /v1/configureinstallationendpoint
discoverCertificates: /v1/discovercertificates
installCertificateBundle: /v1/installcertificatebundle
testConnection: /v1/testconnection
requestConverters:
- arguments-decrypter
localizationResources:
en:
address:
label: Server Hostname
binding:
label: Server Store Details
certificateName:
description: How the certificate should appear on the server.
label: Certificate Name
chainName:
label: Chain Bundle Name
discovery:
expiredCertificatesLabel: Exclude expired certificates.
inactiveProfilesLabel: Exclude certificates that are not in use by either a virtual server or a monitor.
partitionDescription: A comma separated list of partition names.
partitionLabel: Partition(s)
discoveryType:
all: Both Monitors and Virtual Servers
label: Resource Types to Discover
monitor: Monitors
virtualServer: Virtual Servers
keystore:
label: Certificate Information
parentProfile:
description: No value is interpreted as "clientssl" or "serverssl" depending on the Profile Type selected.
label: Parent Profile
partition:
description: No value is interpreted as the "Common" partition.
label: Partition
password:
hidePassword: Hide Password
label: Password
showPassword: Show Password
port:
description: No value is interpreted as 443.
label: Port
serverName:
description: An alternative DNS name used for Server Name Indication.
label: SNI
sslProfile:
label: SSL Profile
sslProfileType:
client: Client SSL Profile
label: Profile Type
server: Server SSL Profile
username:
label: Username
name: Sample Manifest
PublicPluginUpdateRequest:
properties:
image:
type:
- string
- 'null'
maintainer:
type:
- string
- 'null'
manifest:
$ref: '#/components/schemas/Manifest'
title: PublicPluginUpdateRequest
type: object
x-stoplight:
id: 8ypau6to0udah
LocalizationResource:
description: Translation map for the UI being rendered. This map is used with the manifest schema. The keys represent the values provided for the "x-localizationKey" property in the domain entity definition, and each key's value is used to represent field labels, enum values, or error messages.
properties:
en:
type: object
title: LocalizationResources
type:
- object
- 'null'
x-examples:
Example 1:
en:
address:
label: Server Hostname
binding:
label: Server Store Details
certificateName:
description: How the certificate should appear on the server.
label: Certificate Name
chainName:
label: Chain Bundle Name
discovery:
expiredCertificatesLabel: Exclude expired certificates
inactiveProfilesLabel: Exclude certificates that are not in use by either a virtual server or a monitor.
partitionDescription: A comma separated list of partition names.
partitionLabel: Partition(s)
discoveryType:
all: Both Monitors and Virtual Servers
label: Resource Types to Discover
monitor: Monitors
virtualServer: Virtual Servers
keystore:
label: Certificate Information
parentProfile:
description: No value is interpreted as "clientssl" or "serverssl" depending on the Profile Type selected.
label: Parent Profile
partition:
description: No value is interpreted as the "Common" partition.
label: Partition
password:
hidePassword: Hide Password
label: Password
showPassword: Show Password
port:
description: No value is interpreted as 443.
label: Port
serverName:
description: An alternative DNS name used for Server Name Indication.
label: SNI
sslProfile:
label: SSL Profile
sslProfileType:
client: Client SSL Profile
label: Profile Type
server: Server SSL Profile
username:
label: Username
PluginType:
description: Used for differentiation between different types of plugins.
enum:
- MACHINE
- CA
- TPP
- CREDENTIAL_MANAGER
title: PluginType
type: string
WorkType:
description: Defines the type of supported workflow for the plugin.
enum:
- DISCOVERY
- CREDENTIAL
- PROVISIONING
- ISSUANCE
- CERTIFICATE_IMPORT
title: WorkType
type: string
PluginResponse:
properties:
plugins:
items:
$ref: '#/components/schemas/Plugin'
type: array
required:
- plugins
title: PluginResponse
type: object
Plugin:
properties:
creationTime:
description: Represents the date when the plugin was created.
format: date-time
type: string
disabled:
description: Indicates whether the tenant has disabled the plugin from its list of plugins.
type: boolean
id:
description: Represents the plugin ID.
type: string
lastModifiedOn:
description: Date the plugin was last modified.
format: date-time
type: string
maintainer:
description: Refers to the organization, individual, email, location, or website responsible for maintaining the plugin.
type:
- string
- 'null'
manifest:
$ref: '#/components/schemas/Manifest'
name:
description: Represents the name of the plugin. This must be unique.
type: string
pluginType:
$ref: '#/components/schemas/PluginType'
revision:
description: Represents the number of times the plugins has been updated.
type: integer
workTypes:
description: Represents the type of workflow the plugin supports.
items:
$ref: '#/components/schemas/WorkType'
minItems: 1
type: array
required:
- id
- name
- revision
- pluginType
- workTypes
- manifest
- lastModifiedOn
- creationTime
title: Plugin
type: object
PublicPluginCreationRequest:
properties:
maintainer:
description: Refers to the organization, individual, email, location, or website responsible for maintaining the plugin.
type:
- string
- 'null'
manifest:
$ref: '#/components/schemas/Manifest'
pluginType:
$ref: '#/components/schemas/PluginType'
required:
- manifest
- pluginType
title: PublicPluginCreationRequest
type: object
x-stoplight:
id: sto5fs3n5bxmf
Deployment:
properties:
executionTarget:
default: vsat
description: HELP
type: string
image:
description: URL for where the plugin image resides.
type: string
required:
- image
- executionTarget
title: Deployment
type: object
x-examples:
Example 1:
deployment:
executionTarget: vsat
image: public.ecr.aws/docker/library/nginx:mainline-alpine3.18-slim
securitySchemes:
service-account:
in: header
name: service-account
type: apiKey
tppl-api-key:
in: header
name: tppl-api-key
type: apiKey
x-readme:
samples-languages:
- curl
- go
- java
- javascript
- node
- python