Microsoft Dynamics NAV App Management API

Manage installed applications

Documentation

Specifications

Other Resources

OpenAPI Specification

navision-app-management-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Business Central Administration Center Accounts App Management API
  description: REST API for programmatic administration of Dynamics 365 Business Central environments. Enables querying and managing production and sandbox environments, setting up administrative notifications, viewing tenant telemetry, managing apps, scheduling updates, and performing environment operations such as copy, rename, restore, and delete.
  version: '2.28'
  contact:
    name: Microsoft Dynamics Support
    email: bcsupport@microsoft.com
    url: https://dynamics.microsoft.com/support/
  license:
    name: Microsoft APIs Terms of Use
    url: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use
  termsOfService: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use
servers:
- url: https://api.businesscentral.dynamics.com/admin/v2.28
  description: Business Central Administration Center
security:
- oauth2: []
- bearerAuth: []
tags:
- name: App Management
  description: Manage installed applications
paths:
  /applications/{applicationFamily}/environments/{environmentName}/apps:
    get:
      summary: List Installed Apps
      description: Returns a list of apps installed in the specified environment.
      operationId: listInstalledApps
      tags:
      - App Management
      parameters:
      - $ref: '#/components/parameters/applicationFamily'
      - $ref: '#/components/parameters/environmentName'
      responses:
        '200':
          description: Successfully retrieved installed apps
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppInfo'
              examples:
                Listinstalledapps200Example:
                  summary: Default listInstalledApps 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - id: abc123
                      name: Example Title
                      publisher: example_value
                      version: example_value
                      state: example_value
                      lastOperationId: '500123'
                      lastUpdateAttemptResult: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{applicationFamily}/environments/{environmentName}/apps/{appId}/update:
    post:
      summary: Update an App
      description: Schedules an update of the specified app to a newer version.
      operationId: updateApp
      tags:
      - App Management
      parameters:
      - $ref: '#/components/parameters/applicationFamily'
      - $ref: '#/components/parameters/environmentName'
      - name: appId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppUpdateRequest'
            examples:
              UpdateappRequestExample:
                summary: Default updateApp request
                x-microcks-default: true
                value:
                  targetVersion: example_value
                  allowPreviewVersion: true
                  ignoreUpgradeWindow: true
                  allowDependencyUpdate: true
      responses:
        '202':
          description: App update scheduled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentOperation'
              examples:
                Updateapp202Example:
                  summary: Default updateApp 202 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    type: create
                    status: Queued
                    aadTenantId: '500123'
                    createdOn: '2026-01-15T10:30:00Z'
                    startedOn: '2026-01-15T10:30:00Z'
                    completedOn: '2026-01-15T10:30:00Z'
                    createdBy: example_value
                    errorMessage: example_value
                    parameters: example_value
                    environmentName: example_value
                    environmentType: example_value
                    productFamily: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{applicationFamily}/environments/{environmentName}/apps/{appId}/install:
    post:
      summary: Install an App
      description: Installs the specified app in the environment.
      operationId: installApp
      tags:
      - App Management
      parameters:
      - $ref: '#/components/parameters/applicationFamily'
      - $ref: '#/components/parameters/environmentName'
      - name: appId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        example: '500123'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppInstallRequest'
            examples:
              InstallappRequestExample:
                summary: Default installApp request
                x-microcks-default: true
                value:
                  targetVersion: example_value
                  allowPreviewVersion: true
                  acceptIsvEula: true
                  allowDependencyUpdate: true
      responses:
        '202':
          description: App installation scheduled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentOperation'
              examples:
                Installapp202Example:
                  summary: Default installApp 202 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    type: create
                    status: Queued
                    aadTenantId: '500123'
                    createdOn: '2026-01-15T10:30:00Z'
                    startedOn: '2026-01-15T10:30:00Z'
                    completedOn: '2026-01-15T10:30:00Z'
                    createdBy: example_value
                    errorMessage: example_value
                    parameters: example_value
                    environmentName: example_value
                    environmentType: example_value
                    productFamily: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /applications/{applicationFamily}/environments/{environmentName}/apps/{appId}/uninstall:
    post:
      summary: Uninstall an App
      description: Uninstalls the specified app from the environment.
      operationId: uninstallApp
      tags:
      - App Management
      parameters:
      - $ref: '#/components/parameters/applicationFamily'
      - $ref: '#/components/parameters/environmentName'
      - name: appId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        example: '500123'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                deleteData:
                  type: boolean
                  description: Whether to delete data associated with the extension
            examples:
              UninstallappRequestExample:
                summary: Default uninstallApp request
                x-microcks-default: true
                value:
                  deleteData: true
      responses:
        '202':
          description: App uninstallation scheduled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentOperation'
              examples:
                Uninstallapp202Example:
                  summary: Default uninstallApp 202 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    type: create
                    status: Queued
                    aadTenantId: '500123'
                    createdOn: '2026-01-15T10:30:00Z'
                    startedOn: '2026-01-15T10:30:00Z'
                    completedOn: '2026-01-15T10:30:00Z'
                    createdBy: example_value
                    errorMessage: example_value
                    parameters: example_value
                    environmentName: example_value
                    environmentType: example_value
                    productFamily: example_value
        '401':
          $ref: '#/components/responses/Unauthorized'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    environmentName:
      name: environmentName
      in: path
      required: true
      description: The name of the environment
      schema:
        type: string
    applicationFamily:
      name: applicationFamily
      in: path
      required: true
      description: The application family (e.g., BusinessCentral)
      schema:
        type: string
        default: BusinessCentral
  schemas:
    AppInfo:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: abc123
        name:
          type: string
          example: Example Title
        publisher:
          type: string
          example: example_value
        version:
          type: string
          example: example_value
        state:
          type: string
          example: example_value
        lastOperationId:
          type: string
          format: uuid
          example: '500123'
        lastUpdateAttemptResult:
          type: string
          example: example_value
    EnvironmentOperation:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Operation ID used for tracking
          example: abc123
        type:
          type: string
          description: Type of operation
          enum:
          - create
          - copy
          - delete
          - softDelete
          - recover
          - environmentRename
          - pitRestore
          - environmentAppInstall
          - environmentAppUninstall
          - environmentAppUpdate
          - environmentAppHotfix
          - modify
          - update
          - restart
          - moveToAnotherAadTenant
          example: create
        status:
          type: string
          description: Status of the operation
          enum:
          - Queued
          - Scheduled
          - Running
          - Succeeded
          - Failed
          - Canceled
          - Skipped
          example: Queued
        aadTenantId:
          type: string
          format: uuid
          description: Microsoft Entra tenant ID
          example: '500123'
        createdOn:
          type: string
          format: date-time
          description: When the operation was created
          example: '2026-01-15T10:30:00Z'
        startedOn:
          type: string
          format: date-time
          description: When the operation started executing
          example: '2026-01-15T10:30:00Z'
        completedOn:
          type: string
          format: date-time
          description: When the operation completed
          example: '2026-01-15T10:30:00Z'
        createdBy:
          type: string
          description: Who created the operation
          example: example_value
        errorMessage:
          type: string
          description: Error message for failed operations
          example: example_value
        parameters:
          type: object
          description: Operation-specific parameters
          additionalProperties: true
          example: example_value
        environmentName:
          type: string
          description: Name of the affected environment
          example: example_value
        environmentType:
          type: string
          description: Type of the affected environment
          example: example_value
        productFamily:
          type: string
          description: Product family of the affected environment
          example: example_value
    AppUpdateRequest:
      type: object
      properties:
        targetVersion:
          type: string
          description: Target version to update to
          example: example_value
        allowPreviewVersion:
          type: boolean
          description: Whether to allow preview versions
          example: true
        ignoreUpgradeWindow:
          type: boolean
          description: Whether to ignore the update window
          example: true
        allowDependencyUpdate:
          type: boolean
          description: Whether to also update dependent apps
          example: true
    AppInstallRequest:
      type: object
      properties:
        targetVersion:
          type: string
          description: Version to install
          example: example_value
        allowPreviewVersion:
          type: boolean
          description: Whether to allow preview versions
          example: true
        acceptIsvEula:
          type: boolean
          description: Whether the ISV EULA is accepted
          example: true
        allowDependencyUpdate:
          type: boolean
          description: Whether to also update dependent apps
          example: true
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: A stable error code describing the type and nature of the error
          example: example_value
        message:
          type: string
          description: A readable description of the error and cause
          example: example_value
        target:
          type: string
          description: Information about what part of the request caused the error
          example: example_value
        extensionData:
          type: object
          description: Additional key/value information about the error
          additionalProperties: true
          example: example_value
        clientError:
          type: array
          description: Nested list of error objects with more details
          items:
            $ref: '#/components/schemas/ErrorResponse'
          example: []
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication via Microsoft Entra ID
      flows:
        authorizationCode:
          authorizationUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize
          tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
          scopes:
            https://api.businesscentral.dynamics.com/.default: Access Business Central Admin APIs
        clientCredentials:
          tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
          scopes:
            https://api.businesscentral.dynamics.com/.default: Access Business Central Admin APIs
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
externalDocs:
  description: Administration Center API Documentation
  url: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/administration-center-api