---
updatedAt: 2025-09-17T00:08:12.000Z
agentTools:
  projectIndex: https://docs.api.everactive.com/llms.txt
---

# get webhooks

Retrieve the configuration of multiple webhook subscriptions.

# OpenAPI definition

````json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Everactive Data Service API",
    "version": "v1",
    "description": "This API provides access to administrative operations for configuring, monitoring, and maintaining\n\nthe gateways and sensors that make up an Everactive installation, \n\nand for managing the software that detects and responds to events reported by sensors.",
    "contact": {
      "url": "https://everactive.com",
      "email": "success@everactive.com",
      "name": "Everactive"
    },
    "x-logo": {
      "url": "https://everactive.com/content/themes/storyware/assets/svg/logo.svg",
      "backgroundColor": "#0d0d3d",
      "altText": "Everactive"
    }
  },
  "servers": [
    {
      "url": "https://api.data.everactive.com/ds/v1",
      "description": "Everactive Data Service v1 API."
    }
  ],
  "components": {
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "description": "The Everactive internal API uses OAuth2 to authenticate and generate a Bearer token to authorize API endpoints. \nExternal clients must use the client_credentials flow to authenticate. The expectation is the client_secret \nvalue is protected at all times. It must not be used in a mobile application or web application\nas it is not possible to protect the secret in these types of applications.\n\nExample client_credentials grant_type request body:\n```json\n{\n  \"client_id\": \"the_client_id\",\n  \"client_secret\": \"the_client_secret\",\n  \"grant_type\": \"client_credentials\"\n}\n```",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://api.data.everactive.com/auth/token",
            "scopes": {
              "super-admin": "full access to all API endpoints",
              "integration-partner": "access to all public API endpoints",
              "customer-admin": "full access to API endpoints related to the customer the client belongs to",
              "user": "limited access to endpoints related to the customer the client belongs to"
            },
            "x-everactive-public": true
          }
        }
      }
    },
    "parameters": {
      "PageParam": {
        "name": "page",
        "in": "query",
        "description": "A one-based index for the first page number to return from a paginated call.",
        "required": true,
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "default": 1,
          "example": 1
        }
      },
      "PageSizeParam": {
        "name": "page-size",
        "in": "query",
        "description": "The maximum number of items to return per page.",
        "required": false,
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 1,
          "default": 50,
          "example": 25
        }
      },
      "SortDirParam": {
        "name": "sort-dir",
        "in": "query",
        "description": "The direction to sort the list of results, ascending or descending.",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ],
          "example": "asc"
        }
      }
    },
    "responses": {
      "400Error": {
        "description": "The request is invalid.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "$ref": "#/components/schemas/ClientError"
            }
          }
        }
      },
      "401Unauthorized": {
        "description": "The request did not include the correct authorization or the included authorization has expired."
      },
      "403Forbidden": {
        "description": "The requested resource is not accessible to the currently authenticated client."
      },
      "WebhookSubscriptionListResponse": {
        "description": "Retrieve the configuration of multiple webhook subscriptions.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookSubscription"
                  }
                },
                "paginationInfo": {
                  "$ref": "#/components/schemas/PaginationInfo"
                }
              },
              "type": "object"
            }
          }
        }
      }
    },
    "schemas": {
      "ClientError": {
        "title": "ClientError",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "A code that uniquely identifies the error type, e.g. `error_validation`.",
            "example": "error_validation"
          },
          "message": {
            "type": "string",
            "description": "A description of the error code.",
            "example": "Validation error."
          },
          "errors": {
            "type": "array",
            "description": "A collection of sub-errors that are encompassed by the top-level error. Validation errors will often have one or more specific fields that did not pass validation, this collection will describe the specific errors.",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "description": "A code that uniquely identifies the error type, e.g. `error_no_value`.",
                  "example": "error_invalid_mac_address"
                },
                "field": {
                  "type": "string",
                  "description": "Errors for a specific field passed in the body will indicate which field caused the error.",
                  "example": "sensor.macAddress"
                },
                "message": {
                  "type": "string",
                  "description": "A description of the error.",
                  "example": "no:ta:re:al:ma:c0 is an invalid MAC address"
                }
              },
              "required": [
                "code",
                "message"
              ]
            }
          }
        },
        "required": [
          "code",
          "message"
        ],
        "description": "An error specific to an action the client is attempting."
      },
      "CustomerMinimal": {
        "readOnly": true,
        "title": "CustomerMinimal",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique id of the customer.",
            "example": "54c32003-0d20-4c41-a8a5-3d24e4997975"
          },
          "enabledProducts": {
            "title": "CustomerProducts",
            "type": "object",
            "properties": {
              "dataServices": {
                "type": "boolean",
                "example": true
              },
              "flareSystemMonitor": {
                "type": "boolean",
                "example": false
              },
              "machineHealthMonitor": {
                "type": "boolean",
                "example": true
              },
              "steamTrapMonitor": {
                "type": "boolean",
                "example": true
              }
            },
            "required": [
              "dataServices",
              "flareSystemMonitor",
              "machineHealthMonitor",
              "steamTrapMonitor"
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the customer.",
            "example": "Example Inc."
          },
          "status": {
            "type": "string",
            "enum": [
              "Decommissioned",
              "Demo",
              "Production",
              "To Be Installed"
            ],
            "description": "The status of the customer",
            "example": "Production"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "PaginationInfo": {
        "title": "PaginationInfo",
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "description": "The current page of data.",
            "example": 1
          },
          "pageSize": {
            "type": "integer",
            "description": "The maximum number of items that will be included on a page.",
            "example": 50
          },
          "totalItems": {
            "type": "integer",
            "description": "The total number of items.",
            "example": 153
          },
          "totalPages": {
            "type": "integer",
            "description": "The total number of pages given the `pageSize` and  `totalItems` when the request was  returned.",
            "example": 4
          }
        },
        "required": [
          "page",
          "pageSize",
          "totalItems",
          "totalPages"
        ],
        "description": "Details about a paginated result set."
      },
      "WebhookSubscription": {
        "title": "Webhook Subscription",
        "type": "object",
        "description": "Metadata defining an HTTP webhook subscription, containing connection information\nthat Evercloud can use to send data to an external webhook endpoint.",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique id of the webhook subscription.",
            "example": "b3f089e4-1be5-4638-997f-cc4df8e22f34",
            "readOnly": true
          },
          "callbackUrl": {
            "type": "string",
            "description": "The callback URL that Evercloud will post sensor readings to. Must be HTTPS.",
            "example": "https://your.callback.url/"
          },
          "eventType": {
            "type": "string",
            "enum": [
              "sensor_reading",
              "gateway_status"
            ],
            "description": "The type of events that the webhook will receive.",
            "example": "sensor_reading",
            "default": "sensor_reading"
          },
          "enabled": {
            "type": "boolean",
            "description": "Specifies whether the webhook is enabled.",
            "example": true,
            "default": false
          },
          "customer": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CustomerMinimal"
              }
            ]
          },
          "headers": {
            "type": "array",
            "description": "Additional headers to forward with every HTTP request.\nHeaders are case-insensitive and no duplicate headers are allowed.",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "description": "The HTTP header name."
                },
                "value": {
                  "type": "string",
                  "description": "The HTTP header value."
                }
              },
              "required": [
                "key",
                "value"
              ]
            }
          }
        },
        "required": [
          "callbackUrl",
          "eventType"
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Webhooks",
      "description": "Endpoints related to managing and viewing HTTP Webhook subscriptions.",
      "x-everactive-public": true
    }
  ],
  "paths": {
    "/webhooks": {
      "get": {
        "x-everactive-public": true,
        "summary": "get webhooks",
        "description": "Retrieve the configuration of multiple webhook subscriptions.",
        "operationId": "get-webhooks",
        "security": [
          {
            "OAuth2": [
              "super-admin",
              "developer"
            ]
          }
        ],
        "tags": [
          "Webhooks"
        ],
        "parameters": [
          {
            "name": "event-type",
            "x-everactive-public": true,
            "schema": {
              "type": "string",
              "enum": [
                "sensor_reading",
                "gateway_status"
              ],
              "example": "sensor_reading"
            },
            "in": "query",
            "description": "Filter the webhook subscriptions by their event type.\nA case-insensitive database match string.\nReturns all gateways whose event-type value matches this string."
          },
          {
            "$ref": "#/components/parameters/PageParam"
          },
          {
            "$ref": "#/components/parameters/PageSizeParam"
          },
          {
            "name": "sort-by",
            "in": "query",
            "description": "The field to use for the sort order in the returned list of webhook subscriptions.",
            "schema": {
              "type": "string",
              "enum": [
                "customer-name",
                "callback-url",
                "enabled"
              ]
            }
          },
          {
            "$ref": "#/components/parameters/SortDirParam"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/WebhookSubscriptionListResponse"
          },
          "400": {
            "$ref": "#/components/responses/400Error"
          },
          "401": {
            "$ref": "#/components/responses/401Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/403Forbidden"
          }
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "API Calls",
      "tags": [
        "Eversensors",
        "Evergateways",
        "Health",
        "Webhooks",
        "Mqtt"
      ]
    }
  ],
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
````