Edge Delta API
REST API to manage Edge Delta configs, integrations, pipelines, dashboards, lookup tables, groups, access, and rehydrations, and to query logs, metrics, and events. Swagger 2.0; API-token authentication via the X-ED-API-Token header.
REST API to manage Edge Delta configs, integrations, pipelines, dashboards, lookup tables, groups, access, and rehydrations, and to query logs, metrics, and events. Swagger 2.0; API-token authentication via the X-ED-API-Token header.
{
"schemes": ["https"],
"swagger": "2.0",
"info": {
"description": "Edge Delta API provides endpoints to manage your configs/integrations/rehydrations and more. Generate an API token to get started: https://app.edgedelta.com/admin/organization#api-tokens",
"title": "Edge Delta API",
"contact": {
"name": "API Support",
"email": "support@edgedelta.com"
},
"version": "1.0"
},
"host": "api.edgedelta.com",
"basePath": "",
"paths": {
"/public/dashboards/{dashboard_hash}": {
"get": {
"description": "Get",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Public"
],
"parameters": [
{
"type": "string",
"description": "hash",
"name": "dashboard_hash",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dashboard.Dashboard"
}
}
}
}
},
"/v1/orgs/{org_id}/access": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Returns accesses for the given org.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Access"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "If set to true response includes external state information from auth0",
"name": "include_external",
"in": "query"
},
{
"type": "boolean",
"description": "If set to true response includes only items with pending status (to be used in Membership Requests)",
"name": "membership_requests",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/core.Access"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Creates access entry.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Access"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"description": "Accesses Payload",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/core.AccessesPayload"
}
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/core.Access"
}
}
}
}
}
},
"/v1/orgs/{org_id}/access/{access_id}": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Update access for caller and given id.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Access"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Access ID",
"name": "access_id",
"in": "path",
"required": true
},
{
"description": "Access Create Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/core.AccessCreateRequest"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Delete access for caller and given id.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Access"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Access ID",
"name": "access_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/v1/orgs/{org_id}/clustering/stats": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Returns top log patterns (signatures of log messages) and their stats; count, proportion, sentiment and delta.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Pattern Stats",
"AI",
"ServedByMCP"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Edge Delta Common Query Language expression",
"name": "query",
"in": "query"
},
{
"type": "boolean",
"description": "If summary true call returns up to 50 interesting clusters with 10 top anomaly, top/bottom delta, top/bottom count. Param size is ignored",
"name": "summary",
"in": "query"
},
{
"type": "string",
"description": "Max number of clusters in response. For AI search, limit should be 20.",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Lookback period in golang duration format. e.g. '1h'. Either provide from/to or provide lookback/to or just lookback",
"name": "lookback",
"in": "query"
},
{
"type": "string",
"description": "From datetime in ISO format 2006-01-02T15:04:05.000Z",
"name": "from",
"in": "query"
},
{
"type": "string",
"description": "To datetime in ISO format 2006-01-02T15:04:05.000Z",
"name": "to",
"in": "query"
},
{
"type": "string",
"description": "Comma separated fields to group by",
"name": "groupby",
"in": "query"
},
{
"type": "string",
"description": "Valatility can be new, existing, gone, all. Default is all",
"name": "volatility",
"in": "query"
},
{
"type": "string",
"description": "Comma separated offsets for delta stat calculation. Each offset is in golang duration format and order of offsets determines order of offset_ fields in cluster stat response. Default value is lookback duration. e.g. '24h'.",
"name": "offset",
"in": "query"
},
{
"type": "string",
"description": "Window for on demand anomaly calculation histogram series. e.g. '5m', '1h', '2d'. Combined values like '5m3s' are NOT supported.",
"name": "window",
"in": "query"
},
{
"type": "boolean",
"description": "Negative param is used to get negative sentiments.",
"name": "negative",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/core.ClusterStatResponse"
}
}
}
}
},
"/v1/orgs/{org_id}/confs": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Return org's agent configurations that user has read access to",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Agent Configs"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Should be set to 'true' if the contents won't be fetched",
"name": "empty_contents",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/core.Conf"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Creates a new config from the yml content passed in body",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Agent Configs"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"description": "Config Create Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/core.ConfCreateRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/core.Conf"
}
}
}
}
},
"/v1/orgs/{org_id}/confs/validate": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Validate agent configuration",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Agent Configs"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"description": "Config Validate Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/core.ConfValidateRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/core.ConfigValidationResult"
}
}
}
}
},
"/v1/orgs/{org_id}/confs/{conf_id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Returns the requested config",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Agent Configs"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Config ID",
"name": "conf_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Should be set to 'true' if the content won't be fetched",
"name": "empty_content",
"in": "query"
},
{
"type": "string",
"description": "Should be set to 'true' if the content would be fully resolved (i.e with children etc)",
"name": "resolve_content",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/core.Conf"
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Updates the config for given id",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Agent Configs"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Config ID",
"name": "conf_id",
"in": "path",
"required": true
},
{
"description": "Update config request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/core.UpdateConfRequest"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Deletes the config with given id",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Agent Configs"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Config ID",
"name": "conf_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/v1/orgs/{org_id}/dashboards": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Returns all dashboards of users in the org.",
"produces": [
"application/json"
],
"tags": [
"Get Dashboards",
"AI",
"ServedByMCP"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "Include definitions in the response",
"name": "include_definitions",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/dashboard.Dashboard"
}
}
}
}
}
},
"/v1/orgs/{org_id}/dashboards/{dashboard_id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Returns the dashboard for the given ID.",
"produces": [
"application/json"
],
"tags": [
"Get Dashboard",
"AI",
"ServedByMCP"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Dashboard ID",
"name": "dashboard_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/dashboard.Dashboard"
}
}
}
}
}
},
"/v1/orgs/{org_id}/events/search": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Search query using Edge Delta events search syntax, for anomaly search query should include event.type:pattern_anomaly",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Event Search",
"AI",
"ServedByMCP"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Lookback period in golang duration format. e.g. '1h'. Either provide from/to or provide lookback/to or just lookback",
"name": "lookback",
"in": "query"
},
{
"type": "string",
"description": "From datetime in ISO format 2006-01-02T15:04:05.000Z",
"name": "from",
"in": "query"
},
{
"type": "string",
"description": "To datetime in ISO format 2006-01-02T15:04:05.000Z",
"name": "to",
"in": "query"
},
{
"type": "string",
"description": "Edge Delta Common Query Language expression",
"name": "query",
"in": "query"
},
{
"type": "integer",
"description": "Limits the number of logs in the response. Default is 1000. It can be negative to move the cursor prev direction. Wraps to end if the cursor position is 0. For AI search, limit should be 20.",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Cursor provided from previous response, pass it to next request so that we can move the cursor with given limit.",
"name": "cursor",
"in": "query"
},
{
"type": "string",
"description": "Order of the logs in the response, either 'ASC', 'asc', 'DESC' or 'desc'",
"name": "order",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/core.EventResponse"
}
}
}
}
},
"/v1/orgs/{org_id}/group": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Return org's groups",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Groups"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Group ID",
"name": "group_id",
"in": "query"
},
{
"type": "string",
"description": "Group name",
"name": "name",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/core.Group"
}
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Creates a new group from the json content passed in body",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Groups"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"description": "Group Create Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/core.GroupRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/core.Group"
}
}
}
}
},
"/v1/orgs/{org_id}/group/{group_id}": {
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "Updates the group with given id",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Groups"
],
"parameters": [
{
"type": "string",
"description": "Org ID",
"name": "org_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Group ID",
"name": "group_id",
"in": "path",
"required": true
},
{
"description": "Group Update Request",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/core.GroupRequest"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
# --- truncated at 32 KB (386 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edge-delta/refs/heads/main/openapi/edge-delta-openapi-original.json