Lightup Dashboard API

The Lightup REST API provides CRUD access to the platform's core objects: workspaces, datasources, metrics, monitors, incidents (and incident comments), integrations, data catalogs, dashboard charts, metric datapoints, and users. Requests are authenticated with a JWT access token obtained by exchanging the refresh token from a downloaded Lightup API credential file. Most resources are scoped to a workspace and versioned through an api_version path segment.

OpenAPI Specification

lightup-dashboard-openapi.json Raw ↑
{
  "info": {
    "description": "Lightup Metrics API provides CRUD interface to Dashboard objects.",
    "title": "Lightup Dashboard API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v0/healthz/": {
      "get": {
        "description": "",
        "parameters": [],
        "summary": "HealthzView",
        "tags": [
          "Health check"
        ]
      }
    },
    "/api/v0/users/": {
      "get": {
        "description": "",
        "parameters": [
          {
            "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
            "explode": true,
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
              "title": "authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/paths/~1api~1v0~1users~1/post/requestBody/content/application~1json/schema"
                  },
                  "type": "array"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Get existing application users",
        "tags": [
          "Users"
        ]
      },
      "post": {
        "description": "",
        "parameters": [
          {
            "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
            "explode": true,
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
              "title": "authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "definitions": {
                  "AppRole": {
                    "description": "An enumeration.",
                    "enum": [
                      "app_admin",
                      "app_editor",
                      "app_viewer"
                    ],
                    "title": "AppRole",
                    "type": "string"
                  },
                  "WorkspaceMembershipSchema": {
                    "additionalProperties": false,
                    "properties": {
                      "name": {
                        "description": "Workspace name",
                        "title": "Name",
                        "type": "string"
                      },
                      "role": {
                        "description": "Workspace role. Sets user permissions within the workspace. See also app role.",
                        "enum": [
                          "admin",
                          "editor",
                          "viewer",
                          "observer"
                        ],
                        "title": "Role",
                        "type": "string"
                      },
                      "uuid": {
                        "description": "Unique ID, visible in the workspace URL.",
                        "title": "Uuid",
                        "type": "string"
                      }
                    },
                    "required": [
                      "uuid",
                      "name",
                      "role"
                    ],
                    "title": "WorkspaceMembershipSchema",
                    "type": "object"
                  }
                },
                "properties": {
                  "app_role": {
                    "allOf": [
                      {
                        "$ref": "#/paths/~1api~1v0~1users~1/post/requestBody/content/application~1json/schema/definitions/AppRole"
                      }
                    ],
                    "default": "app_editor",
                    "description": "Application-level role. Sets permissions for app-level actions. See also workspace role"
                  },
                  "created_at": {
                    "readOnly": true,
                    "title": "Created At",
                    "type": "integer"
                  },
                  "creation_source": {
                    "default": "none",
                    "readOnly": true,
                    "title": "Creation Source",
                    "type": "string"
                  },
                  "email": {
                    "title": "Email",
                    "type": "string"
                  },
                  "expiration_timestamp": {
                    "readOnly": true,
                    "title": "Expiration Timestamp",
                    "type": "number"
                  },
                  "external_id": {
                    "default": "",
                    "readOnly": true,
                    "title": "External Id",
                    "type": "string"
                  },
                  "first_name": {
                    "default": "",
                    "readOnly": true,
                    "title": "First Name",
                    "type": "string"
                  },
                  "id": {
                    "readOnly": true,
                    "title": "Id",
                    "type": "integer"
                  },
                  "last_login": {
                    "readOnly": true,
                    "title": "Last Login",
                    "type": "integer"
                  },
                  "last_name": {
                    "default": "",
                    "readOnly": true,
                    "title": "Last Name",
                    "type": "string"
                  },
                  "username": {
                    "description": "Email used for Lightup account",
                    "readOnly": true,
                    "title": "Username",
                    "type": "string"
                  },
                  "workspaces": {
                    "default": [],
                    "description": "Workspaces the user can access, including their workspace role in each.",
                    "items": {
                      "$ref": "#/paths/~1api~1v0~1users~1/post/requestBody/content/application~1json/schema/definitions/WorkspaceMembershipSchema"
                    },
                    "readOnly": true,
                    "title": "Workspaces",
                    "type": "array"
                  }
                },
                "required": [
                  "email"
                ],
                "title": "AppUserSchema",
                "type": "object"
              }
            }
          },
          "description": "",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/paths/~1api~1v0~1users~1/post/requestBody/content/application~1json/schema"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Invite user to the application",
        "tags": [
          "Users"
        ]
      }
    },
    "/api/v0/users/{user_id}": {
      "delete": {
        "description": "",
        "parameters": [
          {
            "description": "ID of the user",
            "explode": true,
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "ID of the user",
              "title": "user_id",
              "type": "integer"
            }
          },
          {
            "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
            "explode": true,
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
              "title": "authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "summary": "Delete user from the application",
        "tags": [
          "Users"
        ]
      },
      "get": {
        "description": "",
        "parameters": [
          {
            "description": "ID of the user",
            "explode": true,
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "ID of the user",
              "title": "user_id",
              "type": "integer"
            }
          },
          {
            "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
            "explode": true,
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
              "title": "authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/paths/~1api~1v0~1users~1/post/requestBody/content/application~1json/schema"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Get user data",
        "tags": [
          "Users"
        ]
      },
      "patch": {
        "description": "",
        "parameters": [
          {
            "description": "ID of the user",
            "explode": true,
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "description": "ID of the user",
              "title": "user_id",
              "type": "integer"
            }
          },
          {
            "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
            "explode": true,
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
              "title": "authorization",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "definitions": {
                  "AppRole": {
                    "description": "An enumeration.",
                    "enum": [
                      "app_admin",
                      "app_editor",
                      "app_viewer"
                    ],
                    "title": "AppRole",
                    "type": "string"
                  },
                  "CreationSource": {
                    "description": "An enumeration.",
                    "enum": [
                      "none",
                      "cloud_trial",
                      "invited",
                      "dpc"
                    ],
                    "title": "CreationSource",
                    "type": "string"
                  }
                },
                "properties": {
                  "creationSource": {
                    "allOf": [
                      {
                        "$ref": "#/paths/~1api~1v0~1users~1%7Buser_id%7D/patch/requestBody/content/application~1json/schema/definitions/CreationSource"
                      }
                    ],
                    "description": "The source indicates where the user is created from"
                  },
                  "expirationTimestamp": {
                    "description": "Timestamp to set when the user registration will expire or `null` to remove the expiration",
                    "title": "Expirationtimestamp",
                    "type": "number"
                  },
                  "role": {
                    "allOf": [
                      {
                        "$ref": "#/paths/~1api~1v0~1users~1%7Buser_id%7D/patch/requestBody/content/application~1json/schema/definitions/AppRole"
                      }
                    ],
                    "description": "App role to assign to user"
                  }
                },
                "title": "PatchAppUserRequest",
                "type": "object"
              }
            }
          },
          "description": "",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/paths/~1api~1v0~1users~1/post/requestBody/content/application~1json/schema"
                }
              }
            },
            "description": ""
          }
        },
        "summary": "Change user's application role and/or expiration time",
        "tags": [
          "Users"
        ]
      }
    },
    "/api/v0/ws/{workspace_id}/incidents/": {
      "get": {
        "description": "",
        "parameters": [
          {
            "description": "UUID of the workspace; visible in the workspace URL.",
            "explode": true,
            "in": "path",
            "name": "workspace_id",
            "required": true,
            "schema": {
              "description": "UUID of the workspace; visible in the workspace URL.",
              "title": "workspace_id",
              "type": "string"
            }
          },
          {
            "description": "Filter by the data range when the incident was active, this is the start of the range",
            "explode": false,
            "in": "query",
            "name": "start_ts",
            "required": false,
            "schema": {
              "description": "Filter by the data range when the incident was active, this is the start of the range",
              "title": "start_ts",
              "type": "number"
            }
          },
          {
            "description": "Filter by the data range when the incident was active, this is the end of the range",
            "explode": false,
            "in": "query",
            "name": "end_ts",
            "required": false,
            "schema": {
              "description": "Filter by the data range when the incident was active, this is the end of the range",
              "title": "end_ts",
              "type": "number"
            }
          },
          {
            "description": "Filter by the data range when the incident was last updated, this is the start of the range",
            "explode": false,
            "in": "query",
            "name": "start_updated_ts",
            "required": false,
            "schema": {
              "description": "Filter by the data range when the incident was last updated, this is the start of the range",
              "title": "start_updated_ts",
              "type": "number"
            }
          },
          {
            "description": "Filter by the data range when the incident was last updated, this is the end of the range",
            "explode": false,
            "in": "query",
            "name": "end_updated_ts",
            "required": false,
            "schema": {
              "description": "Filter by the data range when the incident was last updated, this is the end of the range",
              "title": "end_updated_ts",
              "type": "number"
            }
          },
          {
            "description": "Filter by status of incident. Available options: UNVIEWED:1 VIEWED:2 REJECTED:3 SUBMITTED:4 CLOSED:5  ",
            "explode": false,
            "in": "query",
            "name": "status_list",
            "required": false,
            "schema": {
              "description": "Filter by status of incident. Available options: UNVIEWED:1 VIEWED:2 REJECTED:3 SUBMITTED:4 CLOSED:5  ",
              "items": {
                "description": "An enumeration.",
                "enum": [
                  1,
                  2,
                  3,
                  4,
                  5
                ],
                "title": "IncidentStatus",
                "type": "integer"
              },
              "title": "status_list",
              "type": "array"
            }
          },
          {
            "description": "If set, response does not contain metadata.",
            "explode": false,
            "in": "query",
            "name": "data_only",
            "required": false,
            "schema": {
              "description": "If set, response does not contain metadata.",
              "title": "data_only",
              "type": "boolean"
            }
          },
          {
            "description": "If set, response contains monitor information or source/table/column information",
            "explode": false,
            "in": "query",
            "name": "with_ref",
            "required": false,
            "schema": {
              "description": "If set, response contains monitor information or source/table/column information",
              "title": "with_ref",
              "type": "boolean"
            }
          },
          {
            "description": "If set, incidents of monitor preview are also returned.",
            "explode": false,
            "in": "query",
            "name": "include_preview",
            "required": false,
            "schema": {
              "description": "If set, incidents of monitor preview are also returned.",
              "title": "include_preview",
              "type": "boolean"
            }
          },
          {
            "description": "Filter by Metric UUIDs",
            "explode": false,
            "in": "query",
            "name": "metric_uuids",
            "required": false,
            "schema": {
              "description": "Filter by Metric UUIDs",
              "items": {
                "type": "string"
              },
              "title": "metric_uuids",
              "type": "array"
            }
          },
          {
            "description": "Filter by Monitor UUIDs",
            "explode": false,
            "in": "query",
            "name": "monitor_uuids",
            "required": false,
            "schema": {
              "description": "Filter by Monitor UUIDs",
              "items": {
                "type": "string"
              },
              "title": "monitor_uuids",
              "type": "array"
            }
          },
          {
            "description": "Filter by Source UUIDs",
            "explode": false,
            "in": "query",
            "name": "source_uuids",
            "required": false,
            "schema": {
              "description": "Filter by Source UUIDs",
              "items": {
                "type": "string"
              },
              "title": "source_uuids",
              "type": "array"
            }
          },
          {
            "description": "Filter by Table UUIDs",
            "explode": false,
            "in": "query",
            "name": "table_uuids",
            "required": false,
            "schema": {
              "description": "Filter by Table UUIDs",
              "items": {
                "type": "string"
              },
              "title": "table_uuids",
              "type": "array"
            }
          },
          {
            "description": "Filter by Monitor names",
            "explode": false,
            "in": "query",
            "name": "names",
            "required": false,
            "schema": {
              "description": "Filter by Monitor names",
              "items": {
                "type": "string"
              },
              "title": "names",
              "type": "array"
            }
          },
          {
            "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
            "explode": true,
            "in": "header",
            "name": "authorization",
            "required": true,
            "schema": {
              "description": "Input 'Bearer _access-token_'. To obtain access token, see API, API Credentials: Get access token.",
              "title": "authorization",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "definitions": {
                    "IncidentDirection": {
                      "description": "An enumeration.",
                      "enum": [
                        0,
                        1,
                        2,
                        3
                      ],
                      "title": "IncidentDirection",
                      "type": "integer"
                    },
                    "IncidentListResponseMetadata": {
                      "additionalProperties": false,
                      "properties": {
                        "accepted": {
                          "description": "Number of viewed incidents",
                          "title": "Accepted",
                          "type": "integer"
                        },
                        "total": {
                          "description": "Number of incidents",
                          "title": "Total",
                          "type": "integer"
                        },
                        "unread": {
                          "description": "Number of unviewed incidents",
                          "title": "Unread",
                          "type": "integer"
                        }
                      },
                      "required": [
                        "total",
                        "unread",
                        "accepted"
                      ],
                      "title": "IncidentListResponseMetadata",
                      "type": "object"
                    },
                    "IncidentStatus": {
                      "description": "An enumeration.",
                      "enum": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ],
                      "title": "IncidentStatus",
                      "type": "integer"
                    },
                    "IncidentType": {
                      "description": "An enumeration.",
                      "enum": [
                        "anomalyIncident",
                        "eventIncident"
                      ],
                      "title": "IncidentType",
                      "type": "string"
                    },
                    "IncidentValidation": {
                      "properties": {
                        "errorCount": {
                          "default": 0,
                          "description": "Number of errors in the validation run.",
                          "title": "Errorcount",
                          "type": "integer"
                        },
                        "lastRunTs": {
                          "description": "Last timestamp (epoch) of the validation run.",
                          "title": "Lastrunts",
                          "type": "number"
                        },
                        "runStatusMessage": {
                          "default": "ok",
                          "description": "Status message of the validation run.",
                          "title": "Runstatusmessage",
                          "type": "string"
                        },
                        "status": {
                          "allOf": [
                            {
                              "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/IncidentValidationStatus"
                            }
                          ],
                          "default": "running"
                        }
                      },
                      "title": "IncidentValidation",
                      "type": "object"
                    },
                    "IncidentValidationStatus": {
                      "description": "An enumeration.",
                      "enum": [
                        "running",
                        "error",
                        "resolved",
                        "unresolved",
                        "canceling"
                      ],
                      "title": "IncidentValidationStatus",
                      "type": "string"
                    },
                    "LegacyIncident": {
                      "properties": {
                        "close_ts": {
                          "description": "Close timestamp (epoch) of incident",
                          "title": "Close Ts",
                          "type": "number"
                        },
                        "creation_ts": {
                          "description": "Timestamp (epoch) when incident was detected by the system",
                          "title": "Creation Ts",
                          "type": "number"
                        },
                        "direction": {
                          "allOf": [
                            {
                              "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/IncidentDirection"
                            }
                          ],
                          "description": "Which direction the metric deviated from expectations. Available options: NULL:0 UP:1 DOWN:2 BOTH:3 "
                        },
                        "end_ts": {
                          "description": "End timestamp (epoch) of incident",
                          "title": "End Ts",
                          "type": "number"
                        },
                        "filter_uuid": {
                          "description": "This is UUID of the monitor (incident_type = anomalyIncident) or appropriate table, source, column uuid (incident_type = eventIncident) associated with this incident.",
                          "title": "Filter Uuid",
                          "type": "string"
                        },
                        "id": {
                          "description": "User friendly ID of incident.",
                          "title": "Id",
                          "type": "integer"
                        },
                        "impact": {
                          "description": "A number of 1 to 10 indicating the incident severity.",
                          "title": "Impact",
                          "type": "number"
                        },
                        "incident_type": {
                          "allOf": [
                            {
                              "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/IncidentType"
                            }
                          ],
                          "description": "Indicates whether an anomaly or an event caused the incident."
                        },
                        "metadata": {
                          "anyOf": [
                            {
                              "items": {
                                "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/ProfilerEvent"
                              },
                              "type": "array"
                            },
                            {
                              "items": {
                                "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/ProfilerColumnEvent"
                              },
                              "type": "array"
                            }
                          ],
                          "description": "List containing metadata about the incident. OPTION 1 is for table event; OPTION 2 is for column event.",
                          "title": "Metadata"
                        },
                        "ongoing": {
                          "description": "True if incident is ongoing",
                          "title": "Ongoing",
                          "type": "boolean"
                        },
                        "reason": {
                          "description": "Internal string",
                          "title": "Reason",
                          "type": "string",
                          "writeOnly": true
                        },
                        "send_reminder": {
                          "default": false,
                          "description": "True if sending recurring notification needed",
                          "title": "Send Reminder",
                          "type": "boolean"
                        },
                        "slice": {
                          "description": "Slice associated with incident",
                          "title": "Slice",
                          "type": "object"
                        },
                        "start_ts": {
                          "description": "Start timestamp (epoch) of incident",
                          "title": "Start Ts",
                          "type": "number"
                        },
                        "status": {
                          "allOf": [
                            {
                              "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/IncidentStatus"
                            }
                          ],
                          "default": 1,
                          "description": "Status of incident. Available options: UNVIEWED:1 VIEWED:2 REJECTED:3 SUBMITTED:4 CLOSED:5 "
                        },
                        "updated_ts": {
                          "description": "Last timestamp (epoch) when incident was updated by the system",
                          "title": "Updated Ts",
                          "type": "number"
                        },
                        "uuid": {
                          "description": "UUID of the incident",
                          "title": "Uuid",
                          "type": "string"
                        },
                        "validation": {
                          "allOf": [
                            {
                              "$ref": "#/paths/~1api~1v0~1ws~1%7Bworkspace_id%7D~1incidents~1/get/responses/200/content/application~1json/schema/definitions/IncidentValidation"
                            }
                          ],
                          "description": "Status of incident validation.",
                          "title": "Validation"
                        }
                      },
                      "required": [
                        "uuid",
                        "incident_type",
                        "filter_uuid",
                        "slice",
                        "start_ts",
                        "end_ts",
                        "ongoing"
                      ],
                      "title": "LegacyIncident",
                      "type": "object"
                    },
                    "ProfilerColumnEvent": {
                      "properties": {
                        "columnUuid": {
                          "description": "UUID of the column.",
                          "title": "Columnuuid",
                          "type": "string"
                        },
                        "eventDetail": {
                          "description": "This is a dicti

# --- truncated at 32 KB (577 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightup/refs/heads/main/openapi/lightup-dashboard-openapi.json