Try it free

Install or update an app

  • Latest Dynatrace
  • Reference
  • Published Oct 13, 2026

Install or update an app in Dynatrace with the AppEngine Registry API by uploading a zipped app bundle for a Dynatrace or custom app.

POSTSaaShttps://{your-environment-id}.apps.dynatrace.com/registry/v1/apps

Overview

You provide the app bundle in the request body, and the app ID identifies the app to install or update. The ID must start with a namespace and a dot, such as dynatrace. for Dynatrace apps or my. for custom apps. The operation returns 202 Accepted when the new app will be installed or updated.

Authentication

To execute this request, you need a platform token or OAuth access token with app-engine:apps:install scope. To learn how to obtain and use it, see Tokens and authentication.

Parameters

ParameterTypeDescriptionInRequired
bodystring

The zipped app bundle

bodyOptional

Request body objects

The RequestBody object

Response

Response codes

CodeTypeDescription
202AppStub

Accepted; new app will be installed/updated

400ErrorEnvelope

Bad Request

4XXErrorEnvelope

Client side error.

5XXErrorEnvelope

Server side error.

Response body objects

The ErrorEnvelope object

Error response for all 4xx and 5xx errors.

ElementTypeDescription
errorError

Contains information for 4xx and 5xx errors.

The Error object

Contains information for 4xx and 5xx errors.

ElementTypeDescription
codeinteger

The HTTP status code

messagestring

The error message

detailsErrorDetails

Contains details for 4xx and 5xx errors.

helpstring

Additional information related to the error

retryAfterSecondsinteger

Seconds to wait until the next retry

The ErrorDetails object

Contains details for 4xx and 5xx errors.

ElementTypeDescription
errorRefstring

Generated unique value for 5xx errors.

traceIdstring

OpenTelemetry trace id of the trace where error occurs.

errorCodestring

An optional error code that contains more detailed error information than the HTTP response code alone.

Possible error codes:

  • MaxNumberOfInstalledAppsExceeded: The app bundle couldn't be uploaded because the max number of apps was exceeded. Learn more: https://dt-url.net/upgrade-license
The element can hold these values
  • MaxNumberOfInstalledAppsExceeded
errorCodePropertiesobject

Additional properties related to the provided error code

constraintViolationsConstraintViolation[]

A list of constraint violations

missingScopesstring[]

The OAuth scopes the authorization token would need to carry for this request.

missingPermissionsstring[]

The IAM permissions the authorization token would need to be granted for this request.

The ConstraintViolation object

Contains information about a constraint violation caused by invalid input.

ElementTypeDescription
pathstring

The path of the property that caused the constraint violation

messagestring

The error message

errorCodestring

An optional error code that contains more detailed error information.

Possible error codes:

  • DependencyVersionIncompatible: The app's manifest contains a dependency with an incompatible version.
  • DependencyUnknown: The app's manifest contains a dependency that is unknown.
The element can hold these values
  • DependencyVersionIncompatible
  • DependencyUnknown
errorCodePropertiesobject

Additional properties related to the provided error code.

Response body JSON models

{
"error": {
"code": 400,
"message": "Manifest of app 'my.custom.app' violates schema",
"details": {
"constraintViolations": [
{
"path": "/dependencies/0/version",
"message": "Incompatible dependency version: '/platform/storage/query/v1' in version '99.3.0' is incompatible with the available dependency version '1.14.0'",
"errorCode": "DependencyVersionIncompatible",
"errorCodeProperties": {
"dependency": "/platform/storage/query/v1",
"incompatibleVersion": "99.3.0",
"availableVersion": "1.14.0"
}
}
]
}
}
}
Related tags
Platform APIDynatrace Platform