Integrations
The integration catalogue and installed integrations.
15 endpoints · Plakar Control Plane v0.18 · Base URL, authentication and errors
Get an integration by name and version
/api/v1/integration/{name}/{version}
Path parameters
-
namestring required -
versionstring required
Query parameters
-
typestringConnector type to resolve the protocols for.Allowed: store, source, destination, secret_provider, inventory
Response 200 OK application/json
-
idstring<uuid> -
namestring -
protocolsarray[object]-
bundle_fieldsmap[object] nullable-
providerobject nullable-
idstring<uuid>
-
-
valuestring
-
-
fieldsarray[object]-
defaultstring -
descriptionstring -
display_namestring -
enumarray[string] -
inventory_valuestring nullable -
namestring -
patternstring -
requiredboolean -
sensitiveboolean -
typestring
-
-
schemestring -
validator
-
-
versionstring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integration/{name}/{version}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"name": "string",
"protocols": [
{
"bundle_fields": {
"key": {
"provider": {
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
},
"value": "string"
}
},
"fields": [
{
"default": "string",
"description": "string",
"display_name": "string",
"enum": [
"string"
],
"inventory_value": "string",
"name": "string",
"pattern": "string",
"required": true,
"sensitive": true,
"type": "string"
}
],
"scheme": "string",
"validator": {}
}
],
"version": "string"
}List the integrations of a connector type
/api/v1/integrations
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100 -
namestringOnly integrations with this name. -
typestring requiredConnector type.Allowed: store, source, destination, secret_provider, inventory -
urn_idstring<uuid>Only integrations compatible with this resource.
Response 200 OK application/json
-
itemsarray[object]-
idstring<uuid> -
namestring -
versionstring
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations' \
-H 'Authorization: Bearer <badge>'Response 200
{
"items": [
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"name": "string",
"version": "string"
}
],
"total": 0
}List the available integrations
/api/v1/integrations/available
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100 -
supportstringOnly integrations supporting this connector kind. -
searchstringFree-text search on name and display name. -
installation_statusstringOnly integrations in this state.Allowed: installed, not-installed, upgradable -
typearray[string]Only integrations of these types.
Response 200 OK application/json
-
itemsarray[object]-
apistring -
availablearray[object]-
namestring -
released_atstring<date-time> -
versionstring
-
-
connectorsarray[object]-
classstring -
protocolsarray[object]-
schemestring -
validator
-
-
subclassstring -
typestring -
validator
-
-
contactstring -
descriptionstring -
display_namestring -
documentationstring -
editionstring -
featuredstring -
homepagestring -
iconstring -
idstring -
installationobject-
availableboolean -
statusstring -
versionstring nullable
-
-
installedarray[object]-
idstring<uuid> -
installed_atstring<date-time> -
is_currentboolean -
namestring -
versionstring
-
-
latest_versionstring -
licensestring -
namestring -
repositorystring -
stagestring -
supportsarray[string] -
tagsarray[string] -
tierstring -
typesobject-
destinationboolean -
providerboolean -
sourceboolean -
storageboolean
-
-
versionstring
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/available' \
-H 'Authorization: Bearer <badge>'Response 200
{
"items": [
{
"api": "string",
"available": [
{
"name": "string",
"released_at": "2026-01-01T00:00:00Z",
"version": "string"
}
],
"connectors": [
{
"class": "string",
"protocols": [
{
"scheme": "string",
"validator": {}
}
],
"subclass": "string",
"type": "string",
"validator": {}
}
],
"contact": "string",
"description": "string",
"display_name": "string",
"documentation": "string",
"edition": "string",
"featured": "string",
"homepage": "string",
"icon": "string",
"id": "string",
"installation": {
"available": true,
"status": "string",
"version": "string"
},
"installed": [
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"installed_at": "2026-01-01T00:00:00Z",
"is_current": true,
"name": "string",
"version": "string"
}
],
"latest_version": "string",
"license": "string",
"name": "string",
"repository": "string",
"stage": "string",
"supports": [
"string"
],
"tags": [
"string"
],
"tier": "string",
"types": {
"destination": true,
"provider": true,
"source": true,
"storage": true
},
"version": "string"
}
],
"total": 0
}Get an available integration
/api/v1/integrations/available/{name}
Path parameters
-
namestring required
Response 200 OK application/json
-
apistring -
availablearray[object]-
namestring -
released_atstring<date-time> -
versionstring
-
-
connectorsarray[object]-
classstring -
protocolsarray[object]-
schemestring -
validator
-
-
subclassstring -
typestring -
validator
-
-
contactstring -
descriptionstring -
display_namestring -
documentationstring -
editionstring -
featuredstring -
homepagestring -
iconstring -
idstring -
installationobject-
availableboolean -
statusstring -
versionstring nullable
-
-
installedarray[object]-
idstring<uuid> -
installed_atstring<date-time> -
is_currentboolean -
namestring -
versionstring
-
-
latest_versionstring -
licensestring -
namestring -
repositorystring -
stagestring -
supportsarray[string] -
tagsarray[string] -
tierstring -
typesobject-
destinationboolean -
providerboolean -
sourceboolean -
storageboolean
-
-
versionstring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/available/{name}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"api": "string",
"available": [
{
"name": "string",
"released_at": "2026-01-01T00:00:00Z",
"version": "string"
}
],
"connectors": [
{
"class": "string",
"protocols": [
{
"scheme": "string",
"validator": {}
}
],
"subclass": "string",
"type": "string",
"validator": {}
}
],
"contact": "string",
"description": "string",
"display_name": "string",
"documentation": "string",
"edition": "string",
"featured": "string",
"homepage": "string",
"icon": "string",
"id": "string",
"installation": {
"available": true,
"status": "string",
"version": "string"
},
"installed": [
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"installed_at": "2026-01-01T00:00:00Z",
"is_current": true,
"name": "string",
"version": "string"
}
],
"latest_version": "string",
"license": "string",
"name": "string",
"repository": "string",
"stage": "string",
"supports": [
"string"
],
"tags": [
"string"
],
"tier": "string",
"types": {
"destination": true,
"provider": true,
"source": true,
"storage": true
},
"version": "string"
}List the integration catalog
/api/v1/integrations/catalog
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100
Response 200 OK application/json
-
itemsarray[object]-
namestring -
released_atstring<date-time> -
versionstring
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/catalog' \
-H 'Authorization: Bearer <badge>'Response 200
{
"items": [
{
"name": "string",
"released_at": "2026-01-01T00:00:00Z",
"version": "string"
}
],
"total": 0
}List the versions of an integration
/api/v1/integrations/catalog/{name}/versions
Path parameters
-
namestring required
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100
Response 200 OK application/json
-
itemsarray[object]-
namestring -
released_atstring<date-time> -
versionstring
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/catalog/{name}/versions' \
-H 'Authorization: Bearer <badge>'Response 200
{
"items": [
{
"name": "string",
"released_at": "2026-01-01T00:00:00Z",
"version": "string"
}
],
"total": 0
}List the installed integrations
/api/v1/integrations/installed
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100 -
namestringOnly integrations of exactly this name. -
currentbooleanOnly the current version of each integration, or only the others.
Response 200 OK application/json
-
itemsarray[object]-
idstring<uuid> -
installed_atstring<date-time> -
is_currentboolean -
namestring -
versionstring
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/installed' \
-H 'Authorization: Bearer <badge>'Response 200
{
"items": [
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"installed_at": "2026-01-01T00:00:00Z",
"is_current": true,
"name": "string",
"version": "string"
}
],
"total": 0
}Install an integration
/api/v1/integrations/installed
Request body application/json required
-
namestring -
versionstring
Response 200 OK application/json
-
idstring<uuid>
Response 201 Installed application/json
-
idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/integrations/installed' \
-H 'Authorization: Bearer <badge>' \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"version": "string"
}'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Response 201
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Install an integration and make it current
/api/v1/integrations/installed/current
Request body application/json required
-
namestring -
versionstring
Response 200 OK application/json
-
idstring<uuid>
Response 201 Installed application/json
-
idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/integrations/installed/current' \
-H 'Authorization: Bearer <badge>' \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"version": "string"
}'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Response 201
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Get an installed integration
/api/v1/integrations/installed/{id}
Path parameters
-
idstring required
Response 200 OK application/json
-
idstring<uuid> -
installed_atstring<date-time> -
is_currentboolean -
namestring -
versionstring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/installed/{id}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"installed_at": "2026-01-01T00:00:00Z",
"is_current": true,
"name": "string",
"version": "string"
}Uninstall an integration
/api/v1/integrations/installed/{id}
Path parameters
-
idstring required
Response 200 OK
No response body.
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X DELETE 'https://pcp.example.com/api/v1/integrations/installed/{id}' \
-H 'Authorization: Bearer <badge>'Make an installed version current
/api/v1/integrations/installed/{id}/current
Path parameters
-
idstring required
Response 200 OK
No response body.
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X PUT 'https://pcp.example.com/api/v1/integrations/installed/{id}/current' \
-H 'Authorization: Bearer <badge>'Summarise an installed integration
/api/v1/integrations/installed/{id}/summary
Path parameters
-
idstring required
Response 200 OK application/json
-
idstring<uuid> -
installed_atstring<date-time> -
is_currentboolean -
namestring -
supportsarray[string] -
versionstring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/installed/{id}/summary' \
-H 'Authorization: Bearer <badge>'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"installed_at": "2026-01-01T00:00:00Z",
"is_current": true,
"name": "string",
"supports": [
"string"
],
"version": "string"
}Get the form schemas of an integration
/api/v1/integrations/schema/{id}
Path parameters
-
idstring required
Query parameters
-
typestring requiredConnector type.Allowed: store, source, destination, secret_provider, inventory -
urn_idstring<uuid>Resource to resolve the protocols, inventory values and bundles against. -
environmentstringEnvironment to resolve the protocols against. -
draftbooleanAnswer the draft form a bundle uses: nothing required, nothing suggested.Default: false
Response 200 OK application/json
-
idstring<uuid> -
namestring -
protocolsarray[object]-
bundle_fieldsmap[object] nullable-
providerobject nullable-
idstring<uuid>
-
-
valuestring
-
-
initialmap[any] -
schemamap[any] -
schemestring
-
-
versionstring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/schema/{id}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"name": "string",
"protocols": [
{
"bundle_fields": {
"key": {
"provider": {
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
},
"value": "string"
}
},
"initial": {
"key": {}
},
"schema": {
"key": {}
},
"scheme": "string"
}
],
"version": "string"
}Get an integration
/api/v1/integrations/{id}
Path parameters
-
idstring required
Query parameters
-
typestring requiredConnector type.Allowed: store, source, destination, secret_provider, inventory -
urn_idstring<uuid>Resource to resolve the protocols against. -
environmentstringEnvironment to resolve the protocols against.
Response 200 OK application/json
-
idstring<uuid> -
namestring -
protocolsarray[object]-
bundle_fieldsmap[object] nullable-
providerobject nullable-
idstring<uuid>
-
-
valuestring
-
-
fieldsarray[object]-
defaultstring -
descriptionstring -
display_namestring -
enumarray[string] -
inventory_valuestring nullable -
namestring -
patternstring -
requiredboolean -
sensitiveboolean -
typestring
-
-
schemestring -
validator
-
-
versionstring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/integrations/{id}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"name": "string",
"protocols": [
{
"bundle_fields": {
"key": {
"provider": {
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
},
"value": "string"
}
},
"fields": [
{
"default": "string",
"description": "string",
"display_name": "string",
"enum": [
"string"
],
"inventory_value": "string",
"name": "string",
"pattern": "string",
"required": true,
"sensitive": true,
"type": "string"
}
],
"scheme": "string",
"validator": {}
}
],
"version": "string"
}