> ## Documentation Index
> Fetch the complete documentation index at: https://docs.domino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the live diff for a completed extension install snapshot

> Compares the install snapshot's manifest against the current live state of each managed entity (e.g. project, app, etc) for the given completed install snapshot. Only complete snapshots may be diffed. Returns 400 if the snapshot is incomplete, scheduled for uninstall, or uses an unsupported manifest schema version.




## OpenAPI

````yaml /api-specs/cloud/public-api.json get /api/extensions/beta/official-installs/{installId}/snapshots/{snapshotId}/liveDiff
openapi: 3.0.3
info:
  title: Domino API
  description: Reference for Domino's public REST API endpoints.
  version: 6.4.0
servers:
  - url: https://mycluster.domino.tech
    description: >-
      Replace 'mycluster.domino.tech' with your Domino cluster hostname. For
      Domino Cloud customers, that is `your-subdomain`.domino.tech (e.g.,
      acme.domino.tech). For self-hosted deployments, it is the hostname you
      reach the Domino UI at.
security:
  - DominoApiKey: []
  - BearerAuthentication: []
tags:
  - name: AppInstances
  - name: AppVersions
  - name: Apps
  - name: AsyncPredictions
  - name: AuditTrail
  - name: BillingTag
  - name: BillingTagSettings
  - name: Cost
  - name: CustomMetrics
  - name: DataSource
  - name: DatasetRw
  - name: DeploymentTargets
  - name: Environments
  - name: Extensions
  - name: GenAI
  - name: HPC Jobs
  - name: HardwareTier
  - name: Jobs
  - name: ModelAPI
  - name: ModelAPIVersion
  - name: ModelDeployment
  - name: Organizations
  - name: PPM
  - name: PersonalAccessToken
  - name: ProjectSharedDatasets
  - name: ProjectTemplates
  - name: Projects
  - name: ProjectsCommits
  - name: ProjectsFiles
  - name: RegisteredModels
  - name: ServiceAccounts
  - name: Users
  - name: Workspaces
paths:
  /api/extensions/beta/official-installs/{installId}/snapshots/{snapshotId}/liveDiff:
    get:
      tags:
        - Extensions
      summary: Get the live diff for a completed extension install snapshot
      description: >
        Compares the install snapshot's manifest against the current live state
        of each managed entity (e.g. project, app, etc) for the given completed
        install snapshot. Only complete snapshots may be diffed. Returns 400 if
        the snapshot is incomplete, scheduled for uninstall, or uses an
        unsupported manifest schema version.
      operationId: getExtensionInstallSnapshotLiveDiff
      parameters:
        - description: The id of the OfficialExtensionInstall record.
          in: path
          name: installId
          required: true
          schema:
            type: string
        - description: The id of the ExtensionInstallSnapshot record.
          in: path
          name: snapshotId
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtensionInstallSnapshotDiff'
          description: Success
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    ExtensionInstallSnapshotDiff:
      properties:
        extensionInstallId:
          description: The id of the parent install record.
          type: string
        managedEntityDiffs:
          $ref: '#/components/schemas/ManagedEntityDiffs'
        releaseTag:
          description: The Git release tag of the installed version.
          type: string
        remoteRepo:
          description: The remote repository URL for the extension.
          type: string
        snapshotId:
          description: The id of the snapshot that was diffed.
          type: string
        upgradedFromSnapshotId:
          description: >-
            The id of the previously completed snapshot this was an upgrade
            from. Null for fresh installs.
          nullable: true
          type: string
      required:
        - snapshotId
        - extensionInstallId
        - remoteRepo
        - releaseTag
        - managedEntityDiffs
      type: object
    ManagedEntityDiffs:
      properties:
        app:
          allOf:
            - $ref: '#/components/schemas/ManagedEntityDiff'
          nullable: true
        environment:
          allOf:
            - $ref: '#/components/schemas/ManagedEntityDiff'
          description: >-
            Null for installs using a built-in environment (e.g. DSE/DCE); only
            present for custom environments.
          nullable: true
        extension:
          allOf:
            - $ref: '#/components/schemas/ManagedEntityDiff'
          nullable: true
        project:
          allOf:
            - $ref: '#/components/schemas/ManagedEntityDiff'
          nullable: true
      type: object
    ErrorV1:
      properties:
        code:
          description: Machine-readable error code.
          example: NOT_FOUND
          type: string
        message:
          description: Human-readable description of the error.
          example: The requested HPC Job could not be found.
          type: string
      required:
        - message
      type: object
    ManagedEntityDiff:
      properties:
        fieldDiffs:
          description: >-
            Fields whose live value differs from the manifest, or that could not
            be compared.
          items:
            $ref: '#/components/schemas/ManifestFieldDiff'
          type: array
        matchesManifest:
          description: >
            True only if every field could be compared and matched exactly
            against the manifest. False if any field differs, any field could
            not be compared, the manifest left any field unspecified
            (defaulted), or the entity could not be located.
          type: boolean
        matchesManifestIgnoringDefaultedFields:
          description: >
            True only if every manifest-specified field matched and no field was
            unable to be compared. Differences on fields the manifest left
            unspecified are ignored. False if the entity could not be located.
          type: boolean
        notFound:
          description: >-
            True if an entity ID is recorded in the snapshot but the entity
            could not be located.
          nullable: true
          type: boolean
        rawComparison:
          allOf:
            - $ref: '#/components/schemas/RawEntityComparison'
          description: >
            Comparison of the raw entity JSON captured at install time against
            the current live JSON. Format changes, migrations, changes to
            inconsequential values, and field renames may produce noise.
      required:
        - matchesManifest
        - matchesManifestIgnoringDefaultedFields
        - fieldDiffs
        - rawComparison
      type: object
    ManifestFieldDiff:
      properties:
        diffUnavailable:
          description: >
            True if this field could not be compared (e.g. GitHub unreachable
            for Dockerfile contents). Both manifestValue and liveValue will be
            null when true.
          nullable: true
          type: boolean
        field:
          description: >-
            Dot-path field name relative to the manifest, e.g.
            "project.description" or "app.autoscalingSpec.minReplicas".
          type: string
        isDerived:
          description: >
            True if this field is not directly present in the manifest but is
            derived from manifest fields (e.g. dockerfileContents derived from
            dockerfilePath).
          nullable: true
          type: boolean
        liveValue:
          description: >-
            The current value of the field on the live entity. Null if the diff
            was unavailable.
          nullable: true
          type: string
        manifestValue:
          description: >
            The value specified in the manifest. Null if the manifest did not
            explicitly set this field (installer-defaulted) or if the diff was
            unavailable.
          nullable: true
          type: string
      required:
        - field
      type: object
    RawEntityComparison:
      properties:
        installedEntityJson:
          description: >-
            Raw JSON of the entity captured when the installer completed the
            relevant step. Null if not recorded.
          nullable: true
          type: string
        liveEntityJson:
          description: >-
            Raw JSON of the entity as fetched at diff time. Null if the entity
            could not be located.
          nullable: true
          type: string
      type: object
  responses:
    '400':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Bad Request
    '401':
      content:
        application/json:
          example:
            code: UNAUTHORIZED
            message: Authentication is required to access this resource.
          schema:
            $ref: '#/components/schemas/ErrorV1'
      description: Unauthorized - authentication is required or has failed.
    '403':
      content:
        application/json:
          example:
            code: FORBIDDEN
            message: You do not have permission to perform this action.
          schema:
            $ref: '#/components/schemas/ErrorV1'
      description: Forbidden - the caller lacks permission to perform this action.
    '404':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Not Found
    '500':
      content:
        application/json:
          schema:
            properties:
              error:
                type: string
            type: object
      description: Internal Server Error
  securitySchemes:
    DominoApiKey:
      type: apiKey
      in: header
      name: X-Domino-Api-Key
    BearerAuthentication:
      type: apiKey
      in: header
      name: Authorization

````

## Related topics

- [Cancel a Domino Official Extension install or upgrade](/api-reference/extensions/cancel-a-domino-official-extension-install-or-upgrade.md)
- [Get a Domino Official Extension install by id](/api-reference/extensions/get-a-domino-official-extension-install-by-id.md)
- [List Domino Official Extension install options](/api-reference/extensions/list-domino-official-extension-install-options.md)
- [Initiate a Domino Official Extension install or upgrade](/api-reference/extensions/initiate-a-domino-official-extension-install-or-upgrade.md)
