APIs

get

List Service Accounts

Authorizations
Responses
200
ListServiceAccountsResponse contains a list of service accounts.
get
GET /api/rbac/service-accounts/list HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

put

Update Service Account

Authorizations
Body
emailstringOptional

The new email address for the service account (optional).

overridePoliciesbooleanOptional
policyUUIDsstring[]Optional

A list of policy UUIDs to set for the service account (optional, replaces existing). Provide empty list to remove all.

serviceAccountIdstringRequired

The UUID of the service account to update.

Responses
200
UpdateServiceAccountResponseWrapper defines the response structure for updating a service account.
put
PUT /api/rbac/service-account/update HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 89

{
  "email": "text",
  "overridePolicies": true,
  "policyUUIDs": [
    "text"
  ],
  "serviceAccountId": "text"
}

No content

post

Create Service Account

Authorizations
Body
emailstringRequired

The email address associated with the service account.

namestringRequired

The desired name for the service account.

policyUUIDsstring[]Required

A list of policy UUIDs to assign to the service account.

Responses
200Success
post
POST /api/rbac/service-account/create HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 53

{
  "email": "text",
  "name": "text",
  "policyUUIDs": [
    "text"
  ]
}

No content

delete

Delete Service Account

Authorizations
Path parameters
idanyRequired

ID of the service account to delete

Responses
202
NoContentResponse indicates success but that no response body is expected or included.
delete
DELETE /api/rbac/service-account/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

get

Get service account by ID

Authorizations
Path parameters
idanyRequired

ID of the service account to retrieve

Responses
200
ServiceAccountsWithPolicyResponse defines the response structure for getting a single service account.
get
GET /api/rbac/service-account/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

post

Create Policy

Authorizations
Body
claimRolestringOptional

Optional claim role for the policy.

descriptionstringOptional

Optional description for the policy.

namestringRequired

Name of the policy.

Responses
201
Add response wrapper definition --- Correct location for response wrapper
post
POST /api/rbac/policy/create HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 3090

{
  "claimRole": "text",
  "dataScope": {
    "advanced": {
      "events": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "logs": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "metrics": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "traces": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "workloads": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      }
    },
    "simple": {
      "conditions": [
        {
          "additionalFilter": "text",
          "autoComplete": true,
          "filterKeys": [
            "text"
          ],
          "filters": [
            {
              "op": "text",
              "value": null
            }
          ],
          "isNullable": true,
          "key": "text",
          "origin": "text",
          "type": "text"
        }
      ],
      "disabled": true,
      "groups": [
        {
          "conditions": [
            {
              "additionalFilter": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "filters": [
                {
                  "op": "text",
                  "value": null
                }
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "type": "text"
            }
          ],
          "disabled": true,
          "groups": "[Circular Reference]",
          "operator": "text"
        }
      ],
      "operator": "text"
    }
  },
  "description": "text",
  "name": "text",
  "role": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

No content

get

Get Policy Audit Trail

Authorizations
Path parameters
idanyRequired

UUID of the policy to get audit trail for

Responses
200
PolicyAuditTrailResponse contains the audit trail for a policy.
get
GET /api/rbac/policy/{id}/auditTrail HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

delete

Delete Policy

Authorizations
Path parameters
idanyRequired

UUID of the policy to delete

Responses
200
NoContentResponse indicates success but that no response body is expected or included.
delete
DELETE /api/rbac/policy/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

put

Update Policy

Authorizations
Path parameters
idanyRequired

UUID of the policy to update

Body
claimRolestringOptional

Optional new claim role for the policy.

currentRevisioninteger · int32Optional

The current revision number of the policy being updated (for optimistic locking).

descriptionstringOptional

Optional new description for the policy.

namestringRequired

New name for the policy.

Responses
202
Add response wrapper definition ---
put
PUT /api/rbac/policy/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 3110

{
  "claimRole": "text",
  "currentRevision": 1,
  "dataScope": {
    "advanced": {
      "events": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "logs": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "metrics": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "traces": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      },
      "workloads": {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "disabled": true,
        "groups": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "disabled": true,
            "groups": "[Circular Reference]",
            "operator": "text"
          }
        ],
        "operator": "text"
      }
    },
    "simple": {
      "conditions": [
        {
          "additionalFilter": "text",
          "autoComplete": true,
          "filterKeys": [
            "text"
          ],
          "filters": [
            {
              "op": "text",
              "value": null
            }
          ],
          "isNullable": true,
          "key": "text",
          "origin": "text",
          "type": "text"
        }
      ],
      "disabled": true,
      "groups": [
        {
          "conditions": [
            {
              "additionalFilter": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "filters": [
                {
                  "op": "text",
                  "value": null
                }
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "type": "text"
            }
          ],
          "disabled": true,
          "groups": "[Circular Reference]",
          "operator": "text"
        }
      ],
      "operator": "text"
    }
  },
  "description": "text",
  "name": "text",
  "role": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

No content

get

Get Policy by ID

Authorizations
Path parameters
idanyRequired

UUID of the policy to retrieve

Responses
200
Add response wrapper definition ---
get
GET /api/rbac/policy/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

get

List Policies

Authorizations
Responses
200
ListPoliciesResponse contains a list of policies with entity counts.
get
GET /api/rbac/policies/list HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

get

List API Keys

Authorizations
Query parameters
withRevokedanyOptional

Include revoked API keys in the response.

withExpiredanyOptional

Include expired API keys in the response.

Responses
200Success
get
GET /api/rbac/apikeys/list HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

post

Create API Key

Authorizations
Body
descriptionstringOptional

Optional description for the API key.

expirationDatestring · date-timeOptional

Optional expiration date for the API key. Format: date-time

namestringRequired

User-defined name for the API key.

serviceAccountIdstringRequired

The UUID of the service account this key belongs to.

Responses
200
CreateApiKeyResponseWrapper defines the response structure for creating an API key.
post
POST /api/rbac/apikey/create HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 106

{
  "description": "text",
  "expirationDate": "2025-06-26T18:23:53.884Z",
  "name": "text",
  "serviceAccountId": "text"
}

No content

delete

Delete API Key

Authorizations
Path parameters
idanyRequired

ID of the API key to delete (revoke)

Responses
202
NoContentResponse indicates success but that no response body is expected or included.
delete
DELETE /api/rbac/apikey/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

delete

Delete Monitor

Authorizations
Path parameters
idanyRequired

UUID of the monitor to delete

Responses
200
NoContentResponse indicates success but that no response body is expected or included.
delete
DELETE /api/monitors/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

put

Update Monitor

Authorizations
Path parameters
idanyRequired

UUID of the monitor to update

Body
all ofOptional
Responses
202
NoContentResponse indicates success but that no response body is expected or included.
put
PUT /api/monitors/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 2442

{
  "annotations": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "autoResolve": true,
  "catalog": {
    "category": "text",
    "id": "text",
    "tags": [
      "text"
    ],
    "version": 1
  },
  "category": "text",
  "display": {
    "contextHeaderLabels": [
      "text"
    ],
    "description": "text",
    "header": "text",
    "resourceHeaderLabels": [
      "text"
    ]
  },
  "evaluationInterval": {
    "interval": "text",
    "pendingFor": "text"
  },
  "executionErrorState": "OK",
  "isPaused": true,
  "labels": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "measurementType": "state",
  "model": {
    "queries": [
      {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "dataType": "text",
        "datasourceID": "text",
        "datasourceType": "text",
        "expression": "text",
        "filters": "text",
        "instantRollup": "text",
        "name": "text",
        "pipeline": {
          "conditions": [
            {
              "additionalFilter": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "filters": [
                {
                  "op": "text",
                  "value": null
                }
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "type": "text"
            }
          ],
          "function": "[Circular Reference]",
          "metric": "text",
          "template": "text"
        },
        "queryType": "text",
        "relativeTimerange": {
          "from": "text",
          "to": "text"
        },
        "sqlPipeline": {
          "except": [
            {
              "additionalFilter": "text",
              "alias": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "processors": [
                {
                  "args": [
                    "text"
                  ],
                  "op": "text"
                }
              ],
              "type": "text"
            }
          ],
          "filters": "[Circular Reference]",
          "from": "[Circular Reference]",
          "groupBy": [
            {
              "additionalFilter": "text",
              "alias": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "processors": [
                {
                  "args": [
                    "text"
                  ],
                  "op": "text"
                }
              ],
              "type": "text"
            }
          ],
          "having": "[Circular Reference]",
          "limit": 1,
          "offset": 1,
          "orderBy": [
            {
              "direction": "text",
              "selector": {
                "additionalFilter": "text",
                "alias": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "processors": [
                  {
                    "args": [
                      "text"
                    ],
                    "op": "text"
                  }
                ],
                "type": "text"
              }
            }
          ],
          "selectors": [
            {
              "additionalFilter": "text",
              "alias": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "processors": [
                {
                  "args": [
                    "text"
                  ],
                  "op": "text"
                }
              ],
              "type": "text"
            }
          ]
        }
      }
    ],
    "reducers": [
      {
        "expression": "text",
        "inputName": "text",
        "name": "text",
        "relativeTimerange": {
          "from": "text",
          "to": "text"
        },
        "type": "text"
      }
    ],
    "thresholds": [
      {
        "inputName": "text",
        "name": "text",
        "operator": "gt",
        "relativeTimerange": {
          "from": "text",
          "to": "text"
        },
        "values": [
          1
        ]
      }
    ]
  },
  "noDataState": "OK",
  "routing": [
    "text"
  ],
  "severity": "text",
  "team": "text",
  "title": "text"
}

No content

get

Get Monitor Definition (YAML)

Authorizations
Path parameters
idanyRequired

UUID of the monitor to retrieve

Responses
200
MonitorYamlResponse defines the response structure for getting a monitor's YAML.
get
GET /api/monitors/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

post

Create Monitor

Authorizations
Body
all ofOptional
Responses
200
CreateMonitorResponseWrapper defines the response structure for creating a monitor.
post
POST /api/monitors HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 2442

{
  "annotations": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "autoResolve": true,
  "catalog": {
    "category": "text",
    "id": "text",
    "tags": [
      "text"
    ],
    "version": 1
  },
  "category": "text",
  "display": {
    "contextHeaderLabels": [
      "text"
    ],
    "description": "text",
    "header": "text",
    "resourceHeaderLabels": [
      "text"
    ]
  },
  "evaluationInterval": {
    "interval": "text",
    "pendingFor": "text"
  },
  "executionErrorState": "OK",
  "isPaused": true,
  "labels": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  },
  "measurementType": "state",
  "model": {
    "queries": [
      {
        "conditions": [
          {
            "additionalFilter": "text",
            "autoComplete": true,
            "filterKeys": [
              "text"
            ],
            "filters": [
              {
                "op": "text",
                "value": null
              }
            ],
            "isNullable": true,
            "key": "text",
            "origin": "text",
            "type": "text"
          }
        ],
        "dataType": "text",
        "datasourceID": "text",
        "datasourceType": "text",
        "expression": "text",
        "filters": "text",
        "instantRollup": "text",
        "name": "text",
        "pipeline": {
          "conditions": [
            {
              "additionalFilter": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "filters": [
                {
                  "op": "text",
                  "value": null
                }
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "type": "text"
            }
          ],
          "function": "[Circular Reference]",
          "metric": "text",
          "template": "text"
        },
        "queryType": "text",
        "relativeTimerange": {
          "from": "text",
          "to": "text"
        },
        "sqlPipeline": {
          "except": [
            {
              "additionalFilter": "text",
              "alias": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "processors": [
                {
                  "args": [
                    "text"
                  ],
                  "op": "text"
                }
              ],
              "type": "text"
            }
          ],
          "filters": "[Circular Reference]",
          "from": "[Circular Reference]",
          "groupBy": [
            {
              "additionalFilter": "text",
              "alias": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "processors": [
                {
                  "args": [
                    "text"
                  ],
                  "op": "text"
                }
              ],
              "type": "text"
            }
          ],
          "having": "[Circular Reference]",
          "limit": 1,
          "offset": 1,
          "orderBy": [
            {
              "direction": "text",
              "selector": {
                "additionalFilter": "text",
                "alias": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "processors": [
                  {
                    "args": [
                      "text"
                    ],
                    "op": "text"
                  }
                ],
                "type": "text"
              }
            }
          ],
          "selectors": [
            {
              "additionalFilter": "text",
              "alias": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "processors": [
                {
                  "args": [
                    "text"
                  ],
                  "op": "text"
                }
              ],
              "type": "text"
            }
          ]
        }
      }
    ],
    "reducers": [
      {
        "expression": "text",
        "inputName": "text",
        "name": "text",
        "relativeTimerange": {
          "from": "text",
          "to": "text"
        },
        "type": "text"
      }
    ],
    "thresholds": [
      {
        "inputName": "text",
        "name": "text",
        "operator": "gt",
        "relativeTimerange": {
          "from": "text",
          "to": "text"
        },
        "values": [
          1
        ]
      }
    ]
  },
  "noDataState": "OK",
  "routing": [
    "text"
  ],
  "severity": "text",
  "team": "text",
  "title": "text"
}

No content

Execute Prometheus query.

post

Executes a Prometheus query (instant or range) against the metrics server. Accepts either a direct 'promql' string or components ('pipeline', 'filters', 'conditions', 'subPipelines') to build the query.

Authorizations
Body
Endstring · date-timeOptional
FiltersstringOptional
PromqlstringOptional
QueryTypestring · enumOptionalPossible values:
Startstring · date-timeOptional
StepstringOptional
Responses
200Success
post
POST /api/metrics/query HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 1529

{
  "Conditions": [
    {
      "additionalFilter": "text",
      "autoComplete": true,
      "filterKeys": [
        "text"
      ],
      "filters": [
        {
          "op": "text",
          "value": null
        }
      ],
      "isNullable": true,
      "key": "text",
      "origin": "text",
      "type": "text"
    }
  ],
  "End": "2025-06-26T18:23:53.884Z",
  "Filters": "text",
  "Pipeline": {
    "conditions": [
      {
        "additionalFilter": "text",
        "autoComplete": true,
        "filterKeys": [
          "text"
        ],
        "filters": [
          {
            "op": "text",
            "value": null
          }
        ],
        "isNullable": true,
        "key": "text",
        "origin": "text",
        "type": "text"
      }
    ],
    "function": {
      "args": [
        "text"
      ],
      "name": "text",
      "pipelines": [
        {
          "conditions": [
            {
              "additionalFilter": "text",
              "autoComplete": true,
              "filterKeys": [
                "text"
              ],
              "filters": [
                {
                  "op": "text",
                  "value": null
                }
              ],
              "isNullable": true,
              "key": "text",
              "origin": "text",
              "type": "text"
            }
          ],
          "function": {
            "args": [
              "text"
            ],
            "name": "text",
            "pipelines": "[Circular Reference]"
          },
          "metric": "text",
          "template": "text"
        }
      ]
    },
    "metric": "text",
    "template": "text"
  },
  "Promql": "text",
  "QueryType": "range",
  "Start": "2025-06-26T18:23:53.884Z",
  "Step": "text",
  "SubPipelines": {
    "ANY_ADDITIONAL_PROPERTY": {
      "conditions": [
        {
          "additionalFilter": "text",
          "autoComplete": true,
          "filterKeys": [
            "text"
          ],
          "filters": [
            {
              "op": "text",
              "value": null
            }
          ],
          "isNullable": true,
          "key": "text",
          "origin": "text",
          "type": "text"
        }
      ],
      "function": {
        "args": [
          "text"
        ],
        "name": "text",
        "pipelines": [
          {
            "conditions": [
              {
                "additionalFilter": "text",
                "autoComplete": true,
                "filterKeys": [
                  "text"
                ],
                "filters": [
                  {
                    "op": "text",
                    "value": null
                  }
                ],
                "isNullable": true,
                "key": "text",
                "origin": "text",
                "type": "text"
              }
            ],
            "function": {
              "args": [
                "text"
              ],
              "name": "text",
              "pipelines": "[Circular Reference]"
            },
            "metric": "text",
            "template": "text"
          }
        ]
      },
      "metric": "text",
      "template": "text"
    }
  }
}

No content

Get workloads list.

post

Retrieves a list of Kubernetes workloads based on provided source filters, conditions, sorting, and pagination.

Authorizations
Body
Limitinteger · uint32Optional
OrderstringOptional
Skipinteger · uint32Optional
SortBystringOptional
Responses
200Success
post
POST /api/k8s/v3/workloads/list HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 418

{
  "Conditions": [
    {
      "additionalFilter": "text",
      "autoComplete": true,
      "filterKeys": [
        "text"
      ],
      "filters": [
        {
          "op": "text",
          "value": null
        }
      ],
      "isNullable": true,
      "key": "text",
      "origin": "text",
      "type": "text"
    }
  ],
  "Limit": 1,
  "Order": "text",
  "Skip": 1,
  "SortBy": "text",
  "Sources": [
    {
      "additionalFilter": "text",
      "autoComplete": true,
      "filterKeys": [
        "text"
      ],
      "filters": [
        {
          "op": "text",
          "value": null
        }
      ],
      "isNullable": true,
      "key": "text",
      "origin": "text",
      "type": "text"
    }
  ]
}

No content

Get clusters list.

post

Retrieves a list of Kubernetes clusters based on provided source filters.

Authorizations
Body
Responses
200
Add response wrapper definition ---
post
POST /api/k8s/v3/clusters/list HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 183

{
  "Sources": [
    {
      "additionalFilter": "text",
      "autoComplete": true,
      "filterKeys": [
        "text"
      ],
      "filters": [
        {
          "op": "text",
          "value": null
        }
      ],
      "isNullable": true,
      "key": "text",
      "origin": "text",
      "type": "text"
    }
  ]
}

No content

Get Kubernetes events over a specified time range.

post

Retrieves and filters Kubernetes events, allowing for sorting and pagination.

Authorizations
Body
Endstring · date-timeRequired

End timestamp for the query range.

Limitinteger · uint32Optional

Maximum number of events to return.

Skipinteger · uint32Optional

Number of events to skip (for pagination).

SortBystring · enumRequired

Field to sort events by.

Possible values:
SortOrderstring · enumRequired

Sort order.

Possible values:
Startstring · date-timeRequired

Start timestamp for the query range.

WithRawEventsbooleanOptional

Include raw event data in the response.

Responses
200Success
post
POST /api/k8s/v2/events-over-time HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 515

{
  "Conditions": [
    {
      "additionalFilter": "text",
      "autoComplete": true,
      "filterKeys": [
        "text"
      ],
      "filters": [
        {
          "op": "text",
          "value": null
        }
      ],
      "isNullable": true,
      "key": "text",
      "origin": "text",
      "type": "text"
    }
  ],
  "End": "2025-06-26T18:23:53.884Z",
  "Limit": 1,
  "Skip": 1,
  "SortBy": "timestamp",
  "SortOrder": "asc",
  "Sources": [
    {
      "additionalFilter": "text",
      "autoComplete": true,
      "filterKeys": [
        "text"
      ],
      "filters": [
        {
          "op": "text",
          "value": null
        }
      ],
      "isNullable": true,
      "key": "text",
      "origin": "text",
      "type": "text"
    }
  ],
  "Start": "2025-06-26T18:23:53.884Z",
  "WithRawEvents": true
}

No content

Get Silence by ID

get

Retrieves a specific silence by its UUID.

Authorizations
Path parameters
idanyRequired

UUID of the silence to retrieve

Responses
200Success
get
GET /api/monitors/silences/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

Create Silence

post

Creates a new silence for monitoring alerts.

Authorizations
Body
BackendIDstringOptional
ClientIDstringOptional
commentstringOptional

Optional comment for the silence

endsAtstring · date-timeRequired

End time for the silence (must be after StartsAt)

startsAtstring · date-timeRequired

Start time for the silence

Responses
200Success
post
POST /api/monitors/silences HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 182

{
  "BackendID": "text",
  "ClientID": "text",
  "comment": "text",
  "endsAt": "2025-06-26T18:23:53.884Z",
  "matchers": [
    {
      "Name": "text",
      "Type": 1,
      "Value": "text"
    }
  ],
  "startsAt": "2025-06-26T18:23:53.884Z"
}

No content

Update Silence

put

Updates an existing silence by its UUID.

Authorizations
Path parameters
idanyRequired

UUID of the silence to update

Body
BackendIDstringOptional
ClientIDstringOptional
commentstringOptional

Optional comment for the silence

endsAtstring · date-timeOptional

End time for the silence (must be after StartsAt)

startsAtstring · date-timeOptional

Start time for the silence

Responses
200Success
put
PUT /api/monitors/silences/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 182

{
  "BackendID": "text",
  "ClientID": "text",
  "comment": "text",
  "endsAt": "2025-06-26T18:23:53.884Z",
  "matchers": [
    {
      "Name": "text",
      "Type": 1,
      "Value": "text"
    }
  ],
  "startsAt": "2025-06-26T18:23:53.884Z"
}

No content

Get All Silences

get

Retrieves all silences with optional filtering.

Authorizations
Query parameters
activeanyOptional

Filter to show only active silences

limitanyOptional

Maximum number of silences to return

skipanyOptional

Number of silences to skip

Responses
200Success
get
GET /api/monitors/silences HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

Delete Silence

delete

Deletes a silence by its UUID.

Authorizations
Path parameters
idanyRequired

UUID of the silence to delete

Responses
200
NoContentResponse indicates success but that no response body is expected or included.
delete
DELETE /api/monitors/silences/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

List Workflows

post

Retrieves all workflows for the authenticated user.

Authorizations
Responses
200Success
post
POST /api/workflows/list HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

Delete Workflow

delete

Deletes a workflow by its unique identifier.

Authorizations
Path parameters
idanyRequired

Unique identifier of the workflow to delete

Responses
200Success
delete
DELETE /api/workflows/{id} HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

Create Workflow

post

Creates a new workflow from the provided definition.

Authorizations
Body
stringOptional
Responses
202Success
post
POST /api/workflows/create HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 6

"text"

No content

get
Authorizations
Responses
200
logsPipelineConfigResponse contains a logs pipeline configuration entry
get
GET /api/pipelines/logs/config HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

post
Authorizations
Body

CreateOrUpdateLogsPipelineConfigRequest defines the request structure for creating or updating a logs pipeline configuration

valuestringOptional
Responses
201
logsPipelineConfigResponse contains a logs pipeline configuration entry
post
POST /api/pipelines/logs/config HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "value": "text"
}

No content

put
Authorizations
Body

CreateOrUpdateLogsPipelineConfigRequest defines the request structure for creating or updating a logs pipeline configuration

valuestringOptional
Responses
200
logsPipelineConfigResponse contains a logs pipeline configuration entry
put
PUT /api/pipelines/logs/config HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "value": "text"
}

No content

delete
Authorizations
Responses
200
emptyLogsPipelineConfigResponse is used for empty responses
delete
DELETE /api/pipelines/logs/config HTTP/1.1
Host: api.groundcover.com
Authorization: YOUR_API_KEY
Accept: */*

No content

Last updated