Services (API)

validate a commissioning file

post
Authorizations
AuthorizationstringRequired
Body
commissioningFilestringRequired

The commissioning file of this service as base64 encoded content of a buffer

Responses
post
/validate/service
POST /api/validate/service HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 28

{
  "commissioningFile": "text"
}

No content

Create a new service

post
Authorizations
AuthorizationstringRequired
Body
idstring · min: 4Required
commissioningFilestringRequired

The commissioning file of this service as base64 encoded content of a buffer

targetStatestring · enumOptionalPossible values:
Responses
201

Created service

application/json
post
/services
POST /api/services HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 226

{
  "id": "text",
  "commissioningFile": "text",
  "parameters": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "marketplace": {
    "filename": "text",
    "directory": "text",
    "version": "text",
    "updatedAt": "2025-12-06T02:13:31.636Z"
  },
  "targetState": "disabled"
}
{
  "id": "text"
}

Read all services

get
Authorizations
AuthorizationstringRequired
Responses
get
/services
GET /api/services HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
301

Permanent Redirect

No content

Get the service schemas

post
Authorizations
AuthorizationstringRequired
Body
commissioningFilestringRequired

The commissioning file of this service as base64 encoded content of a buffer

Responses
201

Service schemas

application/json
Responseobject
post
/services/parametersSchema
POST /api/services/parametersSchema HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 28

{
  "commissioningFile": "text"
}
{}

Return the remaining time in milliseconds until the service can be installed

get
Authorizations
AuthorizationstringRequired
Path parameters
idstring · min: 4Required

Id of the service

Responses
get
/services/{id}/deletion-status
GET /api/services/{id}/deletion-status HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "serviceID": "text",
  "deletionIsComplete": true,
  "remainingTimeInMs": 1
}

Get a specific service

get
Authorizations
AuthorizationstringRequired
Responses
get
/services/{id}
GET /api/services/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
301

Permanent Redirect

No content

Update an existing service

put
Authorizations
AuthorizationstringRequired
Responses
put
/services/{id}
PUT /api/services/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
308

Permanent Redirect

No content

Delete an existing service

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstring · min: 4Required

Id of service

Responses
delete
/services/{id}
DELETE /api/services/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "id": "text"
}

Get the service dependencies

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of service

Responses
get
/services/{id}/dependencies
GET /api/services/{id}/dependencies HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "dependent": [
    "text"
  ],
  "dependsOn": [
    "text"
  ]
}

Get all ingress routes

get
Authorizations
AuthorizationstringRequired
Responses
get
/services/ingress-routes
GET /api/services/ingress-routes HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
[
  {
    "id": "text",
    "containerHost": "text",
    "containerPort": 1,
    "containerPrefixRewrite": "text",
    "ingressPort": 1,
    "ingressUrlPrefix": "text",
    "type": "text",
    "headers": [
      "text"
    ]
  }
]
get
Authorizations
AuthorizationstringRequired
Responses
get
/services/links
GET /api/services/links HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
[
  {
    "id": "text",
    "ingressRoute": "text",
    "name": "text",
    "href": "text"
  }
]
get
Authorizations
AuthorizationstringRequired
Query parameters
onlyFromEnabledServicesbooleanOptional

Only list on the response resources from enabled services

Responses
get
/services/all-links
GET /api/services/all-links HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

Links

[
  {
    "id": "text",
    "name": "text",
    "links": []
  }
]

Perform an operation on a service

put
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of service

Body
operationstring · enumRequired

Disable and enable

Possible values:
Responses
put
/services/{id}/operation
PUT /api/services/{id}/operation HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "operation": "disable"
}
{
  "serviceId": "myService",
  "name": "My Service",
  "version": "v1.2.3",
  "targetState": "enabled",
  "currentState": "disabled",
  "createdAt": "2025-03-06T22:13:43.065Z",
  "updatedAt": "2025-03-06T22:13:43.065Z"
}

Delete specific resource runner

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of resource runner

Responses
delete
/resources/runners/{id}
DELETE /api/resources/runners/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "id": "text"
}

Get all of the resource schemas

get
Authorizations
AuthorizationstringRequired
Responses
get
/resources/schemas
GET /api/resources/schemas HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": {}
}

Store resources schemas

post
Authorizations
AuthorizationstringRequired
Body
schemasobject[] · min: 1Required

List of resources schemas

Responses
201

Resource schemas stored

No content

post
/resources/schemas
POST /api/resources/schemas HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "schemas": [
    {}
  ]
}

No content

Read all services

get
Authorizations
AuthorizationstringRequired
Query parameters
searchTextstring · min: 3Optional

The value used to retrieve services by matching service ID or name

pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

orderBystring · enumOptional

Order response by field

Possible values:
orderstring · enumOptional

Ascending or descending order

Possible values:
Responses
get
/v2/services
GET /api/v2/services HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": [
    {
      "serviceId": "myService",
      "name": "My Service",
      "version": "v1.2.3",
      "targetState": "enabled",
      "currentState": "disabled",
      "createdAt": "2025-03-06T22:13:43.065Z",
      "updatedAt": "2025-03-06T22:13:43.065Z"
    }
  ],
  "meta": {
    "pagination": {
      "totalPages": 1,
      "totalRows": 1,
      "pageNumber": 1,
      "totalRowsInPage": 1,
      "nextPage": 1,
      "rowsPerPage": 50
    }
  }
}

Get the number of installed Services

get
Authorizations
AuthorizationstringRequired
Responses
get
/v2/services/stats/count
GET /api/v2/services/stats/count HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": {
    "servicesCount": 1000
  },
  "meta": {}
}

Get paginated list of service IDs for all Services order lexicographically Ascending

get
Authorizations
AuthorizationstringRequired
Query parameters
pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

Responses
get
/v2/services/ids
GET /api/v2/services/ids HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": [
    "myService"
  ],
  "meta": {
    "pagination": {
      "totalPages": 1,
      "totalRows": 1,
      "pageNumber": 1,
      "totalRowsInPage": 1,
      "nextPage": 1,
      "rowsPerPage": 50
    }
  }
}

Get a specific service

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of service

Responses
get
/v2/services/{id}
GET /api/v2/services/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": {
    "connectwareServiceUuid": "81a6c550-fad5-11ef-a38c-0242ac120006",
    "serviceId": "myService",
    "name": "My Service",
    "description": "My Service has some resources",
    "version": "v1.2.3",
    "provider": "Cybus",
    "homepage": "cybus.io",
    "icon": "TGFyYTwz",
    "targetState": "enabled",
    "currentState": "disabled",
    "totalResources": 105,
    "roleCount": 1,
    "userCount": 2,
    "volumeCount": 3,
    "fileCount": 4,
    "containerCount": 5,
    "ingressRouteCount": 6,
    "linkCount": 7,
    "nodeCount": 8,
    "serverCount": 9,
    "connectionCount": 10,
    "endpointCount": 11,
    "mappingCount": 12,
    "createdAt": "2025-03-06T22:13:43.065Z",
    "updatedAt": "2025-03-06T22:13:43.065Z",
    "parameters": {
      "host": "cybus.io",
      "port": 443
    },
    "marketPlace": {
      "directory": "text",
      "filename": "text",
      "updatedAt": "text",
      "version": "text"
    }
  },
  "meta": {}
}

Update an existing service

put
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of service

Body
commissioningFilestringOptional
Responses
put
/v2/services/{id}
PUT /api/v2/services/{id} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 189

{
  "parameters": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  },
  "commissioningFile": "text",
  "marketplace": {
    "filename": "text",
    "directory": "text",
    "version": "text",
    "updatedAt": "2025-12-06T02:13:31.636Z"
  }
}
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "meta": {}
}

Get ServiceCommissioningFile for specific service

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of service

Responses
get
/v2/services/{id}/serviceCommissioningFile
GET /api/v2/services/{id}/serviceCommissioningFile HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": {
    "parameters_schema": {
      "ANY_ADDITIONAL_PROPERTY": "anything"
    },
    "scf": "text"
  },
  "meta": {}
}

Read resources by for service

get
Authorizations
AuthorizationstringRequired
Path parameters
serviceIdstringRequired

Id of service

Query parameters
runnerNamestring · min: 3Optional

filter by runner name

parentResourceIdstring · min: 3Optional

filter by parentResourceId

searchTextstring · min: 3Optional

The value used to retrieve service resources by matching resource name

pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

orderBystring · enumOptional

Order response by field

Possible values:
orderstring · enumOptional

Ascending or descending order

Possible values:
onlyFromEnabledServicesbooleanOptional

Only list on the response resources from enabled services

Responses
get
/v2/services/{serviceId}/resources
GET /api/v2/services/{serviceId}/resources HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1"
  },
  "data": [
    {
      "protocol": "text",
      "category": "Node",
      "parentResourceId": "text",
      "resourceConfig": {
        "args": {
          "operation": "serverProvides",
          "topic": "text"
        }
      }
    }
  ],
  "meta": {
    "pagination": {
      "totalPages": 1,
      "totalRows": 1,
      "pageNumber": 1,
      "totalRowsInPage": 1,
      "nextPage": 1,
      "rowsPerPage": 50
    }
  }
}

Read all resources

get
Authorizations
AuthorizationstringRequired
Query parameters
runnerNamestring · min: 3Optional

Resource runner name

parentResourceIdstring · min: 3Optional

Filter by parent of requested resources

searchTextstring · min: 3Optional

The value used to retrieve services resources by matching resource name

pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

orderBystring · enumOptional

Order response by field

Possible values:
orderstring · enumOptional

Ascending or descending order

Possible values:
onlyFromEnabledServicesbooleanOptional

Only list on the response resources from enabled services

Responses
get
/v2/resources
GET /api/v2/resources HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1"
  },
  "data": [
    {
      "protocol": "text",
      "category": "Node",
      "parentResourceId": "text",
      "resourceConfig": {
        "args": {
          "operation": "serverProvides",
          "topic": "text"
        }
      }
    }
  ],
  "meta": {
    "pagination": {
      "totalPages": 1,
      "totalRows": 1,
      "pageNumber": 1,
      "totalRowsInPage": 1,
      "nextPage": 1,
      "rowsPerPage": 50
    }
  }
}

Read a specific resource

get
Authorizations
AuthorizationstringRequired
Path parameters
resourceIdstringRequired

Id of resource

Responses
get
/v2/resources/{resourceId}
GET /api/v2/resources/{resourceId} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": {
    "resourceId": "myResource",
    "serviceId": "myService",
    "category": "Node",
    "resourceConfig": {
      "args": {
        "operation": "serverProvides",
        "topic": "text"
      }
    },
    "runnerName": "protocol-mapper",
    "protocol": "text",
    "parentResourceId": "text"
  },
  "meta": {}
}

Update an existing resources

put
Authorizations
AuthorizationstringRequired
Path parameters
resourceIdstringRequired

Id of resource

Body
operationstring · enumRequired

Disable and enable

Possible values:
Responses
put
/v2/resources/{resourceId}/operation
PUT /api/v2/resources/{resourceId}/operation HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "operation": "disable"
}

No content

Get available topics for service ID

get
Authorizations
AuthorizationstringRequired
Path parameters
serviceIdstringRequired

Id of service to list topics for

Query parameters
pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

orderBystring · enumOptional

Order response by field

Possible values:
orderstring · enumOptional

Ascending or descending order

Possible values:
searchTextstringOptional

The value used to retrieve topics by matching resource name or resource ID

onlyFromEnabledServicesbooleanOptional

Only list on the response topics from enabled service

Responses
get
/v2/services/{serviceId}/topics
GET /api/v2/services/{serviceId}/topics HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1"
  },
  "data": [
    {
      "topic": "services/servicea/A/000",
      "serviceId": "servicea",
      "resourceId": "servicea-A_000",
      "category": "Endpoint"
    }
  ],
  "meta": {
    "pagination": {
      "totalPages": 1,
      "totalRows": 1,
      "pageNumber": 1,
      "totalRowsInPage": 1,
      "nextPage": 1,
      "rowsPerPage": 50
    }
  }
}

Get available topics for resources

get
Authorizations
AuthorizationstringRequired
Query parameters
idsstring[]Optional

The resource IDs to filter by (multiple allowed)

pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

orderBystring · enumOptional

Order response by field

Possible values:
orderstring · enumOptional

Ascending or descending order

Possible values:
searchTextstringOptional

The value used to retrieve topics by matching resource name or resource ID or service ID

onlyFromEnabledServicesbooleanOptional

Only list on the response topics from enabled services

Responses
get
/v2/topics/resources
GET /api/v2/topics/resources HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1"
  },
  "data": [
    {
      "topic": "services/servicea/A/000",
      "serviceId": "servicea",
      "resourceId": "servicea-A_000",
      "category": "Endpoint"
    }
  ],
  "meta": {
    "pagination": {
      "totalPages": 1,
      "totalRows": 1,
      "pageNumber": 1,
      "totalRowsInPage": 1,
      "nextPage": 1,
      "rowsPerPage": 50
    }
  }
}

Get adjacency matrix of services

get
Authorizations
AuthorizationstringRequired
Responses
get
/v2/service-graph/adjacency-matrix
GET /api/v2/service-graph/adjacency-matrix HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "dependencies": [
    {
      "fromNode": "text",
      "toNode": "text"
    }
  ]
}

Get all root nodes, i.e. all nodes which have no dependencies

get
Authorizations
AuthorizationstringRequired
Responses
get
/v2/service-graph/root-nodes
GET /api/v2/service-graph/root-nodes HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "nodes": [
    "text"
  ]
}

Get all dependencies of a list of services

get
Authorizations
AuthorizationstringRequired
Query parameters
serviceIdsstringRequired

List of service to get dependencies for

distanceintegerOptional

Configures how many hops to return, e.g. 1 for direct dependencies only, 2 to return until dependencies of dependencies, etc.

Responses
get
/v2/service-graph/dependencies
GET /api/v2/service-graph/dependencies?serviceIds=text HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "nodes": [
    "text"
  ]
}

Get number of dependencies of a service

get
Authorizations
AuthorizationstringRequired
Query parameters
serviceIdstringRequired

Id of service to get dependencies for

distanceintegerOptional

Configures how many hops to return, e.g. 1 for direct dependencies only, 2 to return until dependencies of dependencies, etc.

Responses
get
/v2/service-graph/dependencies/count
GET /api/v2/service-graph/dependencies/count?serviceId=text HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*

No content

Get all dependents of a list services

get
Authorizations
AuthorizationstringRequired
Query parameters
serviceIdsstringRequired

List of services to get dependents for

distanceintegerOptional

Configures how many hops to return, e.g. 1 for direct dependents only, 2 to return until dependents of dependents, etc.

Responses
get
/v2/service-graph/dependents
GET /api/v2/service-graph/dependents?serviceIds=text HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "nodes": [
    "text"
  ]
}

Get number of dependents of a service

get
Authorizations
AuthorizationstringRequired
Query parameters
serviceIdstringRequired

Id of service to get dependents for

distanceintegerOptional

Configures how many hops to return, e.g. 1 for direct dependents only, 2 to return until dependents of dependents, etc.

Responses
get
/v2/service-graph/dependents/count
GET /api/v2/service-graph/dependents/count?serviceId=text HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*

No content

Get count of resources by category

get
Authorizations
AuthorizationstringRequired
Path parameters
categorystring · enumRequired

Resource Category

Possible values:
Responses
get
/v2/resources/count/{category}
GET /api/v2/resources/count/{category} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "data": {
    "resourceCount": 1000
  },
  "meta": {}
}

Last updated

Was this helpful?