Services (API)

validate a commissioning file

post
Authorizations
Body
commissioningFilestringRequired

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

Responses
200

Validation Successful

No content

post
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
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
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-09-28T03:52:44.642Z"
  },
  "targetState": "disabled"
}
{
  "id": "text"
}

Read all services

get
Authorizations
Responses
301

Permanent Redirect

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

Permanent Redirect

No content

Get the service schemas

post
Authorizations
Body
commissioningFilestringRequired

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

Responses
201

Service schemas

application/json
Responseobject
post
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
Path parameters
idstring · min: 4Required

Id of the service

Responses
200

OK

application/json
get
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
Responses
301

Permanent Redirect

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

Permanent Redirect

No content

Update an existing service

put
Authorizations
Responses
308

Permanent Redirect

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

Permanent Redirect

No content

Delete an existing service

delete
Authorizations
Path parameters
idstring · min: 4Required

Id of service

Responses
200

OK

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

Get the service dependencies

get
Authorizations
Path parameters
idstringRequired

Id of service

Responses
200

Service dependencies

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

Get all ingress routes

get
Authorizations
Responses
200

Ingress routes

application/json
get
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
Responses
200

Links

application/json
get
GET /api/services/links HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
[
  {
    "id": "text",
    "ingressRoute": "text",
    "name": "text",
    "href": "text"
  }
]
get
Authorizations
Query parameters
onlyFromEnabledServicesbooleanOptional

Only list on the response resources from enabled services

Responses
200

Links

application/json
get
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
Path parameters
idstringRequired

Id of service

Body
operationstring · enumRequired

Disable and enable

Possible values:
Responses
200

Service

application/json
put
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
Path parameters
idstringRequired

Id of resource runner

Responses
200

OK

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

Get all of the resource schemas

get
Authorizations
Responses
200

Resource schemas in a JSON string

application/json
get
GET /api/resources/schemas HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": {}
}

Store resources schemas

post
Authorizations
Body
schemasobject[] · min: 1Required

List of resources schemas

Responses
201

Resource schemas stored

No content

post
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
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
200

Array of services

application/json
get
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
Responses
200

Number of installed Services

application/json
get
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
Query parameters
pageinteger · min: 1Optional

Page to return

itemsPerPageinteger · min: 1 · max: 100Optional

Number of items per page

Responses
200

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

application/json
get
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
Path parameters
idstringRequired

Id of service

Responses
200

Service

application/json
get
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
Path parameters
idstringRequired

Id of service

Body
commissioningFilestringOptional
Responses
202

Accepted

application/json
put
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-09-28T03:52:44.642Z"
  }
}
{
  "jsonapi": {
    "version": "1.1.1"
  },
  "meta": {}
}

Get ServiceCommissioningFile for specific service

get
Authorizations
Path parameters
idstringRequired

Id of service

Responses
200

SCF

application/json
get
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
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
200

Array of services

application/json
get
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
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
200

Array of resources

application/json
get
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
Path parameters
resourceIdstringRequired

Id of resource

Responses
200

Resource

application/json
get
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
Path parameters
resourceIdstringRequired

Id of resource

Body
operationstring · enumRequired

Disable and enable

Possible values:
Responses
200

Success

No content

put
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
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
200

Paginated list of topics

application/json
get
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
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
200

Paginated list of topics

application/json
get
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
Responses
200

List of service relationships

application/json
get
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
Responses
200

List of root nodes

application/json
get
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
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
200

List of dependencies

application/json
get
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
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
200

Number of dependencies

No content

get
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
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
200

List of dependencies

application/json
get
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
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
200

Number of dependents

No content

get
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
Path parameters
categorystring · enumRequired

Resource Category

Possible values:
Responses
200

Resource

application/json
get
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?