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