Ensighten Manage API

The REST Manage API used by Ensighten Manage customers to administer tag management programmatically. Sixty-six operations covering Spaces, Publish Paths, Deployments (create, update, enable/disable, commit/uncommit, archive, merge across spaces), Conditions, Data Definitions, Event Definitions, Labels, Users, Roles, SCIM 2.0 user and group provisioning, Git-enabled space commits, and TDN jobs. Authentication is an X-API-Key header key (prefix ens_) or an OAuth 2.0 Resource Owner Password Credentials bearer token issued by POST /auth/token. Responses use a consistent {code, message, description} error envelope; rate-limited endpoints return X-Rate-Limit-* headers and 429 on exhaustion.

Documentation

Specifications

Other Resources

OpenAPI Specification

ensighten-manage-api-openapi.yml Raw ↑
# 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