# Ensighten Manage API — OpenAPI 3.1
# DERIVED by the API Evangelist enrichment pipeline from the API Blueprint that
# Ensighten publishes at https://manageexternalapi.docs.apiary.io/
# (AST: https://jsapi.apiary.io/apis/manageexternalapi/blueprint, owner "Ensighten",
# urls.production https://manage-api.ensighten.com/). Mechanical conversion only —
# every path, parameter and example below is verbatim from that blueprint.
openapi: 3.1.0
info:
title: Ensighten Manage API
version: 1.0.0
description: "This is the REST Manage API that can be used by Ensighten Manage customers.\n\n\nThere\
\ are currently two ways to authenticate through the Manage API: API Key and Username / Password.\n\
\n\nAll API requests must be made over HTTPS. Calls made over plain HTTP will fail. You must authenticate\
\ for all requests.\n\n\nSupported Entities\n\n- \nSpaces\n\n\n\n\n- \nPublish Paths\n\n\n\n\n- \n\
Deployments\n\n\n\n\n- \nConditions\n\n\n\n\n- \nData Definitions\n\n\n\n\n- \nEvent Definitions\n\
\n\n\n\n- \nUsers\n\n\n\n\n- \nRoles\n\n\n\n\n- \nSCIM 2.0\n\n\n\n\n- \nGit\n\n\n\n\n- \nTDN"
contact:
name: Ensighten Support
url: https://help.ensighten.com/hc/en-us
x-derived-from: API Blueprint published by Ensighten at https://manageexternalapi.docs.apiary.io/
x-blueprint-last-updated: '2026-07-14T18:41:23.848Z'
servers:
- url: https://manage-api.ensighten.com
description: Production (from the Apiary blueprint urls.production)
- url: https://private-anon-6a32b48ac3-manageexternalapi.apiary-mock.com
description: Apiary anonymous mock server (example payloads only)
tags:
- name: Authentication
description: 'Requests using a username and password for authentication follow the Resource Owner Password
Flow of the OAuth 2.0
specification.
API Request
Once a token has been retrieved using the /auth/token process below, include it in all API calls
using the Authorization header.
Example
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA'
- name: Spaces
description: 'CRUD operations with Spaces.
Space specific fields
Field
Required
Description
Valid Values
name
Y
The name of the space
A name up to 255 characters
publishPaths
Y
A list of either existing paths (provide id) or new ones (provide name)
An array of paths (e.g. [{"id": 1665}, {"publishPath": "stage"}])
mandatedConditionIds
N
A list of valid condition ids to associate with the space
An array of ids (e.g. [67275, 67228])
mandatedConditions
N
A list of conditions associated with this deployment
An array of objects containing condition id and name (e.g. [{"id": 51234, "name": "demoAllPages"}])
mandatedDeployments
N
A list of deployments mandated by the space
An array of objects containing deployment id, deployment name, space id and space name (e.g. [{"id":
51234, "name": "demoAllPages", "spaceId": 1234, "spaceName": "example"}])
JSON Schema
Conforms to JSON schema draft v4 '
- name: Publish Paths
description: 'CRUD operations with Publish Paths.
For further details or guidance on configuring Publish Path settings, please consult our Help Center
article available here.
Publish Path specific fields
Field
Required
Description
Valid Values
name
Y
The name of the publish path
A name up to 30 characters
codeGen
N
Code generation settings for the publish path
An object containing codegen configuration (see below)
Codegen specific fields
These fields are nested within the codeGen object. If the codeGen object is omitted on create, the
defaults indicated below will be applied. On update, only the fields provided will be modified.
Field
Required
Description
Valid Values
namespace
N
Parent object reference for the publish path
A name up to 30 characters
Defaults to "Bootstrapper" if none provided
versionId
N
The id of the Bootstrap version name. Versions V1 through V8 are depr'
- name: Deployments
description: "CRUD operations with Deployments.\n\n\nImportant Deployment specific fields\n\n\n\nField\n\
Description\nValid Values\n\n\n\n\nid\nThe deployment id\n\n\n\nname\nThe name of the deployment\n\
A name up to 255 characters\n\n\nspaceId\nThe id of the space this deployment is available in\n\n\n\
\nspaceName\nThe name of the space this deployment is available in\n\n\n\nstatus\nRefers to state\
\ the deployment is in.\nThis is sent back as a field in response to GET deployment.\ndisabled_uncommitted\
\ \n disabled_committed \n disabled_published \n enabled_uncommitted \n enabled_committed \n enabled_published\
\ \n deleted_uncommitted \n deleted_committed \n deleted_published \n archived_uncommitted \n archived_committed\
\ \n archived_published\n\n\npreviousStatus\nRefers to the state the deployment was in before the\
\ last action was performed\n\n\n\nlastPublishedStatus\nRefers to the state the deployment was in\
\ when it was published last\n\n\n\nlastAction\nRefers to the"
- name: Conditions
description: "CRUD operations with Conditions.\n\n\nImportant Condition specific fields\n\n\n\nField\n\
Description\nValid Values\n\n\n\n\nid\nThe condition id\n\n\n\nname\nThe name of the condition\nA\
\ name up to 255 characters\n\n\nconditionValues\nCriteria used to define and configure the condition\n\
(More information below)\n\n\nmandatedInSpaces\nSpaces where this condition is mandated\n\n\n\ndeployments\n\
Deployments that are associated with this condition\n\n\n\nlabels\nInformation regarding the labels\
\ associated with the condition\nAn array of labels (e.g. [{\"key\": \"Lifecycle\", \"value\": \"\
prod\"}])\n\n\n\nCondition-value specific fields\nA condition can have one or more condition-values,\
\ each of which is defined as an object with the following (required) properties \n\n\n\n\n\n\nField\n\
Description\nValid Values\n\n\n\n\ntypeId\nIndicates the type of the condition parameter\n2 (Host)\n\
\ 4 (Path)\n 7 (Protocol)\n 10 (Query Pair)\n 11 (Hash Fragment)\n 16 (Platform)\n 18 "
- name: Data Definitions
description: "CRUD operations with Data Definitions.\n\n\nData Definitions specific fields\n\n\n\nField\n\
Required\nDescription\nValid Values\n\n\n\n\nname\nY\nThe name of the definition\nA name up to 255\
\ characters\n\n\ncollection\nY\nThe name for a collection of definitions\nA name up to 255 characters\n\
\n\nsource\nY\nThe source of the definition\nAccepted values are: \n Manage \n Mobile \n Pulse \n\
\ One \n Attribution \n Inform \n Privacy\n\n\nextractor\nY\nJavascript code for extraction\nMust\
\ be a valid Javascript function. e.g. function(){try{return Bootstrapper.data.extract('ec','cookie')}catch(e){return\
\ 'error'}}\n\n\ndescription\nN\nA description\n\n\n\nenabled\nN\nIs the definition enabled\nA boolean\
\ value\n\n\npersistence\nN\nIndicates the persistence type\nDefaults to \"page\" if none provided\
\ \n Accepted values are: \n instance \n page \n session \n visitor\n\n\nmetaDesc\nN\nIndicates the\
\ comparator to use for mapping the type to value\n\n\n\ntransformation\nN\nJavascr"
- name: Event Definitions
description: "CRUD operations with Event Definitions.\n\n\nEvent Definition specific fields\n\n\n\n\
Field\nDescription\nValid Values\n\n\n\n\nname\nThe name of the definition\nA name up to 255 characters\n\
\n\ntype\nIndicates the type of the event definition\npage_action \n data \n named\n\n\nconditionIds\n\
A list of valid condition ids to associate with the event\nAn array of ids (e.g. [100, 101])\n\n\n\
elementType\nIndicates the element type\ncss_selector \n element_id \n element_class \n javascript\n\
\n\ntrigger\nIndicates what action should trigger the event\nclick \n mousedown \n mouseup \n mouseover\
\ \n mouseout \n mousemove \n contextmenu \n dblclick\n\n\ndata\nData to associate with a page action\
\ event\ne.g. \"a.add-to-cart\"\n\n\ndataDefinitionId\nThe id for a valid data definition\n\n\n\n\
labels\nInformation regarding the labels associated with the event\nAn array of labels (e.g. [{\"\
key\": \"Lifecycle\", \"value\": \"prod\"}])\n\n\n\nEvent Definition types and allowed fiel"
- name: Labels
description: "CRUD operations with Labels.\n\n\nLabel specific fields\n\n\n\nField\nDescription\nValid\
\ Values\n\n\n\n\nkey\nThe key of the label\nA string up to 128 characters. Should only contain alphanumerics\
\ (a-z, A-Z, 0-9), periods, +, =, :, @, _, or -\n\n\nvalue\nThe value of the label\nA string up to\
\ 255 characters. Should only contain alphanumerics (a-z, A-Z, 0-9), periods, +, =, :, @, _, or -\n\
\n\nresources\nAn array of unique identifiers for the resources.\nEach resource is referenced by an\
\ Ensighten Resource Name (ERN in the format: ern:ens:manage::{resource-type}:{resource-id}\n\n\n\n\
Ensighten Resource Names (ERNs)\nEnsighten Resource Names (ERNs) provide a standardized way to uniquely\
\ identify resources across the Ensighten platform. Every ERN follows a consistent structure that\
\ encodes the namespace, service, resource type, and unique identifier.\n\n\nFormat\n\n\nern:ens:manage::{resource-type}:{resource-id}\n\
\n\n- \n{resource-t"
- name: Users
description: "CRUD operations with Users.\n\n\nUser specific fields\n\n\n\nField\nDescription\nValid\
\ Values\n\n\n\n\nusername\nUnique identifier for the user\nUp to 255 characters; cannot include <,\
\ >, :, ~, +, or spaces\n\n\nfirstName\nUser's first name\nUp to 255 characters; only alphanumeric\
\ characters, spaces, and hyphens allowed\n\n\nlastName\nUser's last name\nUp to 255 characters; only\
\ alphanumeric characters, spaces, and hyphens allowed\n\n\nemail\nUser's email address\nA valid email\
\ format is required\n\n\nsendNotification\nIndicates whether to send a welcome email\nBoolean value,\
\ default is false if not specified\n\n\nmultiFactorAuth\nIs MFA enabled\nA string, defaults to \"\
disable\" if not specified \n Accepted values are: \n \"enable\" \n \"disable\"\n\n\nroleIds\nA list\
\ of valid role ids assigned to the user\nAn array of integer IDs (e.g., [100, 101])\n\n\nisActive\n\
Indicates whether the user account is active\nBoolean value, default is true if no"
- name: Roles
description: 'CRUD operations with Roles.
Role specific fields
Field
Description
Valid Values
name
Unique identifier for the role
Up to 255 characters; Role name should only contain alphanumerics (a-z, A-Z, 0-9), periods, commas,
+, =, @, _, or -"
creationDate
Date the role was created
modifiedDate
Date the role was updated'
- name: SCIM 2.0
description: 'SCIM2 (System for Cross-domain Identity Management) is a specification that automates
user and group identity provisioning across cloud-based applications and services using SSO and Identity
Providers. These SCIM2 API''s enable user and group management through dedicated resources. SCIM follows
RESTful principles, using HTTP methods with schema-defined payloads that include attributes and values.
While using the SCIM APIs, set the value of the Accept header as application/scim+json.
It is suggested to authenticate with the APIs using Authorization: Bearer ens_01.... However, the
use of X-API-KEY: ens_01... is also supported.
SCIM 2.0 User specific fields
Field
Description
Valid Values
userName
Unique identifier for the user
Up to 255 characters; cannot include <, >, :, ~, +, or spaces
name
User''s name object containing givenName and familyName
Object with givenName and '
- name: GIT
description: 'Operations specific to Git enabled spaces.
Git specific fields
Field
Description
Valid Values
commitId
Commit ID
A SHA-1 hash, 40 characters long'
- name: TDN
description: "Retrieve TDN job information\n\n\nJSON Schema\nConforms to JSON schema draft v4 specifications\n\
\n\n{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"description\": \"Get job\
\ response\",\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"\
type\": \"string\"\n },\n \"version\": {\n \"type\": \"integer\"\n \
\ },\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \
\ \"id\": {\n \"type\": \"integer\"\n },\n \
\ \"name\": {\n \"type\": \"string\"\n }\n },\n\
\ \"required\": [\n \"id\",\n \"name\"\n ]\n \
\ },\n \"space\": {\n \"type\": \"object\",\n \"properties\": {\n\
\ \"id\": {\n \"type\": \"integer\"\n },\n \
\ \"name\": {\n "
paths:
/auth/token:
post:
operationId: postAuthToken
summary: Username/Password/MultiFactor Authentication / Refreshing Access Tokens
tags:
- Authentication
security: []
description: 'In order to gain an access token for use with the API a call must be made using a
valid account name, user name, and password. If the account is MFA configured, MFA verification
code is also needed.
The Authorization header contains the Base64 encoded concatenation of the account name, user name,
and password.
For example, the value mycompany:joe:mypassword would be encoded and used in the header value.
The MultiFactorAuthentication header is needed if the account is MFA configured which is a 6 digits
number that is created from Google Authentication App on the phone.
The grant_type of password must be included in the body.'
responses:
'200':
description: OK
content:
application/json:
example:
access_token: 2YotnFZFEjr1zCsicMWpAA
token_type: bearer
expires_in: 3600
refresh_token: tGzv3JOkF0XG5Qx2TlKWIA
requestBody:
required: true
content:
application/json:
examples: {}
/manage/spaces:
get:
operationId: getManageSpaces
summary: Search spaces
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
description: A search with no matching records returns 404 Not Found instead of an empty array.
Treat this 404 as an empty result set.
parameters:
- name: name
in: query
required: false
description: Get spaces with the name.
schema:
type: string
example: myspace
- name: publishPath
in: query
required: false
description: get spaces that are associated with a specific publish path.
schema:
type: string
example: mypath
- name: page
in: query
required: false
description: Get a specific page
schema:
type: number
example: '1'
- name: per_page
in: query
required: false
description: Limit the per page results and defaults to 10 with a maximum of 50.
schema:
type: number
example: '10'
responses:
'200':
description: OK
content:
application/json:
example:
- id: 606
name: stage
mandatedConditionIds:
- 67275
- 67228
mandatedConditions:
- id: 67275
name: tr_aug5_condition
- id: 67228
name: tr_sep5_condition
publishPaths:
- id: 1665
publishPath: stage
lastPublished: '2015-05-17T04:00:26.000Z'
mandatedDeployments: []
- id: 607
name: prod
mandatedConditionIds:
- 67275
- 67228
mandatedConditions:
- id: 67275
name: tr_aug5_condition
- id: 67228
name: tr_sep5_condition
publishPaths:
- id: 1666
publishPath: prod
lastPublished: '2015-07-15T04:12:26.000Z'
mandatedDeployments:
- id: 12345
name: d1
spaceId: 54321
spaceName: s1
'404':
description: Not Found
content:
application/json:
example:
code: 404
message: Not Found
description: No spaces could be found given the passed criteria.
post:
operationId: postManageSpaces
summary: Create a space
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
requestBody:
required: true
content:
application/json:
example:
name: stage
publishPaths:
- publishPath: stage
mandatedConditionIds:
- 67275
- 67228
isGitEnabled: true
mandatedDeployments:
- deploymentId: 1
spaceId: 2
responses:
'201':
description: Created
content:
application/json:
example:
id: 899
/manage/spaces/{id}:
get:
operationId: getManageSpacesId
summary: Get a space by id
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
responses:
'200':
description: OK
content:
application/json:
example:
id: 606
name: stage
mandatedConditionIds:
- 67275
- 67228
mandatedConditions:
- id: 67275
name: tr_aug5_condition
- id: 67228
name: tr_sep5_condition
publishPaths:
- id: 1665
publishPath: stage
lastPublished: '2015-05-17T04:00:26.000Z'
mandatedDeployments: []
'400':
description: Bad Request
content:
application/json:
example:
code: 400
message: Bad Request
description: The space id is invalid
'404':
description: Not Found
content:
application/json:
example:
code: 404
message: Not Found
description: No spaces could be found given the passed criteria.
put:
operationId: putManageSpacesId
summary: Update a space
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
description: 'When making a request to update an existing space, the publishPath field may only
contain existing paths
that are identified by their id.'
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
requestBody:
required: true
content:
application/json:
example:
name: stage
publishPaths:
- id: 1665
mandatedConditionIds:
- 67275
- 67228
mandatedDeployments:
- deploymentId: 1
spaceId: 2
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
example:
code: 400
message: Bad Request
description: The space id is invalid
delete:
operationId: deleteManageSpacesId
summary: Delete a space
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
example:
code: 400
message: Bad Request
description: The space id is invalid
/manage/spaces/{id}/publish:
put:
operationId: putManageSpacesIdPublish
summary: Publish a space
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
description: 'When publishing a space, the process will start and return an identifier. That identifier
can be used to call the API in order to check the status of the publish.'
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
responses:
'200':
description: OK
content:
application/json:
example:
spaceId: 899
publishId: '123'
requestedDate: '2014-12-19T17:59:08.465Z'
'412':
description: Precondition Failed
content:
application/json:
example:
code: 412
message: Precondition Failed
description: The space is currently being published and thus can't be published at this
time.
patch:
operationId: patchManageSpacesIdPublish
summary: Publish a space - Selective
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
description: 'When publishing a space, the process will start and return an identifier. That identifier
can be used to call the API in order to check the status of the publish.
Selective Publish will only publish the Deployments corresponding to the specified deploymentIds,
along with all non-deployment items (Conditions, Data Definitions, ...).
All specified Deployments must be committed before publishing.'
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
requestBody:
required: true
content:
application/json:
example:
deploymentIds:
- 123
- 456
- 789
responses:
'200':
description: OK
content:
application/json:
example:
spaceId: 1
publishId: '222'
requestedDate: '2025-02-01T01:02:03.456Z'
'400':
description: Bad Request
content:
application/json:
example:
code: 400
message: Bad Request
description: 'Error on publish: Tag - 123 is not committed.'
/manage/spaces/{id}/publish/{publishId}:
get:
operationId: getManageSpacesIdPublishPublishid
summary: Publish Status
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
description: Use a publish identifier to check the status of the publish action.
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
- name: publishId
in: path
required: true
description: The identifier for the publish action.
schema:
type: string
example: '123'
responses:
'200':
description: OK
content:
application/json:
example:
spaceId: 1
publishId: '123'
complete: true
success: true
/manage/spaces/{id}/commit/{commitId}:
get:
operationId: getManageSpacesIdCommitCommitid
summary: Commit Status
tags:
- Spaces
security:
- ApiKeyAuth: []
- BearerAuth: []
description: Use a commit identifier to check the status of the commit action.
parameters:
- name: id
in: path
required: true
description: Numeric id of the space id to perform action with.
schema:
type: number
example: '1'
- name: commitId
in: path
required: true
description: The identifier for the commit action.
schema:
type: string
example: '456'
responses:
'200':
description: OK
content:
application/json:
example:
spaceId: 1
commitId: '456'
complete: true
success: true
/manage/publishpaths/search:
post:
operationId: postManagePublishpathsSearch
summary: Search publish paths
tags:
- Publish Paths
security:
- ApiKeyAuth: []
- BearerAuth: []
description: A search with no matching records returns 404 Not Found instead of an empty array.
Treat this 404 as an empty result set.
requestBody:
required: true
content:
application/json:
example:
fields: id, clientId, name, codeGen
filters:
name:
- dev
page: 1
per_page: 10
sort: -name
responses:
'200':
description: OK
content:
application/json:
example:
- id: 1234
clientId: 321
name: dev
codeGen:
versionId: 14
minificationLevelId: 1
languageId: 3
'404':
description: Not Found
content:
application/json:
example:
code: 404
message: Not Found
description: No publish paths could be found given the passed criteria.
/manage/publishpaths/{name}:
post:
operationId: postManagePublishpathsName
summary: Create a publish path
tags:
- Publish Paths
security:
- ApiKeyAuth: []
- BearerAuth: []
description: '[DEPRECATED] API endpoint to create a Publish Path was moved to /manage/publishpaths.'
parameters:
- name: name
in: path
required: true
description: Publish path name.
schema:
type: string
example: myPublishPath
responses:
'201':
description: Created
content:
application/json:
example:
id: 1
publishPath: myPublishPath
clientId: 1
isDeleted: false
codeGenArgs:
publishPathId: 1
namespace: null
serverComponentPath: null
serverComponentRuleCodePath: null
serverComponentRuleCodePathForSCTemplate: null
customCodegenCommand: null
codeGenVersion:
id: 32
version: v8_20220915
description: insertScript custom attributes, Data Definition resolved status
hasCustomCodeGen: false
minificationLevelId: null
languageId: null
/manage/publishpaths:
post:
operationId: postManagePublishpaths
summary: Create a publish path
tags:
- Publish Paths
security:
- ApiKeyAuth: []
- BearerAuth: []
requestBody:
required: true
content:
application/json:
example:
name: my-publish-path
codeGen:
namespace: Bootstrapper
versionId: 14
minificationLevelId: 1
languageId: 3
sriHashAlgorithmId: 1
nexusContextId: 1
responses:
'201':
description: Created
content:
application/json:
example:
id: 1
name: my-publish-path
clientId: 1
codeGen:
namespace: Bootstrapper
versionId: 14
minificationLevelId: 1
languageId: 3
sriHashAlgorithmId: 1
nexusContextId: 1
'400':
description: Bad Request
content:
application/json:
example:
code: 400
message: Bad Request
description: Publish path name "this_publish_path_has_too_many_characters" is invalid.
First character must be alphanumeric, dashes and underscores are also allowed after
that, and the total length must be at most 30.
/manage/publishpaths/{id}:
get:
operationId: getManagePublishpathsId
summary: Get a publish path
tags:
- Publish Paths
security:
- ApiKeyAuth: []
- BearerAuth: []
parameters:
- name: id
in: path
required: true
description: Numeric id of the publish path id to perform action with.
schema:
type: number
example: '1'
responses:
'200':
description: OK
content:
application/json:
example:
id: 1
name: my-publish-path
clientId: 1
codeGen:
namespace: Bootstrapper
versionId: 14
minificationLevelId: 1
languageId: 3
sriHashAlgorithmId: 1
nexusContextId: 1
'400':
description: Bad Request
content:
application/json:
example:
code: 400
message: Bad Request
description: The publish path id is invalid
'404':
description: Not Found
content:
application/json:
example:
code: 404
message: Not Found
description: Publish Path not found
put:
operationId: putManagePublishpathsId
summary: Update a publish path
tags:
- Publish Paths
security:
- ApiKeyAuth: []
- BearerAuth: []
parameters:
- name: id
in: path
required: true
description: Numeric id of the publish path id to perform action with.
schema:
type: number
example: '1'
requestBody:
required: true
content:
application/json:
example:
codeGen:
namespace: Bootstrapper
versionId: 14
minificationLevelId: 1
languageId: 3
sriHashAlgorithmId: 1
nexusContextId: 1
responses:
'200':
description: OK
content:
application/json:
example:
id: 1
name: my-publish-path
clientId: 1
codeGen:
namespace: Bootstrapper
versionId: 14
minificationLevelId: 1
# --- truncated at 32 KB (109 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ensighten/refs/heads/main/openapi/ensighten-manage-api-openapi.yml