---
title: "POST /{scope}/providers/Microsoft.Resources/deployments/{deploymentName}/validate"
method: POST
path: "/{scope}/providers/Microsoft.Resources/deployments/{deploymentName}/validate"
tags: ["Deployments"]
---

# POST /{scope}/providers/Microsoft.Resources/deployments/{deploymentName}/validate

`POST /{scope}/providers/Microsoft.Resources/deployments/{deploymentName}/validate`

Validates whether the specified template is syntactically correct and will be accepted by Azure Resource Manager..

## Path parameters

- `scope` string, required
- `deploymentName` string, required

## Parameters

- `../../../../../../common-types/resource-management/v3/types.json#/components/parameters/ApiVersionParameter` — unresolved $ref

## Request body

- Deployment — Deployment operation parameters.
  - `location` string — The location to store the deployment data.
  - `properties` DeploymentProperties, required — Deployment properties.
    - `template` unknown
    - `templateLink` TemplateLink — Entity representing the reference to the template.
      - `uri` string — The URI of the template to deploy. Use either the uri or id property, but not both.
      - `id` string — The resource id of a Template Spec. Use either the id or uri property, but not both.
      - `relativePath` string — The relativePath property can be used to deploy a linked template at a location relative to the parent. If the parent template was linked with a TemplateSpec, this will reference an artifact in the TemplateSpec. If the parent was linked with a URI, the child deployment will be a combination of the parent and relativePath URIs
      - `contentVersion` string — If included, must match the ContentVersion in the template.
      - `queryString` string — The query string (for example, a SAS token) to be used with the templateLink URI.
    - `parameters` object — Name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
    - `externalInputs` object — External input values, used by external tooling for parameter evaluation.
    - `externalInputDefinitions` object — External input definitions, used by external tooling to define expected external input values.
    - `parametersLink` ParametersLink — Entity representing the reference to the deployment parameters.
      - `uri` string, required — The URI of the parameters file.
      - `contentVersion` string — If included, must match the ContentVersion in the template.
    - `extensionConfigs` object — The configurations to use for deployment extensions. The keys of this object are deployment extension aliases as defined in the deployment template.
    - `mode` 'Incremental' | 'Complete', required — The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources.
    - `debugSetting` DebugSetting — The debug setting.
      - `detailLevel` string — Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information you are passing in during deployment. By logging information about the request or response, you could potentially expose sensitive data that is retrieved through the deployment operations.
    - `onErrorDeployment` OnErrorDeployment — Deployment on error behavior.
      - `type` 'LastSuccessful' | 'SpecificDeployment' — The deployment on error behavior type. Possible values are LastSuccessful and SpecificDeployment.
      - `deploymentName` string — The deployment to be used on error case.
    - `expressionEvaluationOptions` ExpressionEvaluationOptions — Specifies whether template expressions are evaluated within the scope of the parent template or nested template.
      - `scope` 'NotSpecified' | 'Outer' | 'Inner' — The scope to be used for evaluation of parameters, variables and functions in a nested template.
    - `validationLevel` 'Template' | 'Provider' | 'ProviderNoRbac' — The level of validation performed on the deployment.
  - `tags` object — Deployment tags
  - `identity` DeploymentIdentity — The Managed Identity configuration for a deployment.
    - `type` 'None' | 'UserAssigned', required — The identity type.
    - `userAssignedIdentities` object — The set of user assigned identities associated with the resource.

## Response `200`

Azure operation completed successfully.

- DeploymentValidateResult — Information from validate template deployment response.
  - `error` ErrorResponse — Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.)
    - `code` string — The error code.
    - `message` string — The error message.
    - `target` string — The error target.
    - `details` ErrorResponse[] — The error details.
    - `additionalInfo` ErrorAdditionalInfo[] — The error additional info. — unresolved $ref
  - `id` string — The ID of the deployment.
  - `name` string — The name of the deployment.
  - `type` string — The type of the deployment.
  - `properties` DeploymentPropertiesExtended — Deployment properties with additional details.
    - `provisioningState` 'NotSpecified' | 'Accepted' | 'Running' | 'Ready' | 'Creating' | 'Created' | 'Deleting' | 'Deleted' | 'Canceled' | 'Failed' | 'Succeeded' | 'Updating' — Denotes the state of provisioning.
    - `correlationId` string — The correlation ID of the deployment.
    - `timestamp` string, date-time — The timestamp of the template deployment.
    - `duration` string — The duration of the template deployment.
    - `outputs` unknown
    - `providers` Provider[] — The list of resource providers needed for the deployment.
      - `id` string — The provider ID.
      - `namespace` string — The namespace of the resource provider.
      - `registrationState` string — The registration state of the resource provider.
      - `registrationPolicy` string — The registration policy of the resource provider.
      - `resourceTypes` ProviderResourceType[] — The collection of provider resource types.
        - `resourceType` string — The resource type.
        - `locations` string[] — The collection of locations where this resource type can be created.
        - `locationMappings` ProviderExtendedLocation[] — The location mappings that are supported by this resource type.
          - `location` string — The azure location.
          - `type` string — The extended location type.
          - `extendedLocations` string[] — The extended locations for the azure location.
        - `aliases` Alias[] — The aliases that are supported by this resource type.
          - `name` string — The alias name.
          - `paths` AliasPath[] — The paths for an alias.
            - `path` string — The path of an alias.
            - `apiVersions` string[] — The API versions.
            - `pattern` AliasPattern — The type of the pattern for an alias path.
              - …
            - `metadata` AliasPathMetadata
              - …
          - `type` 'NotSpecified' | 'PlainText' | 'Mask' — The type of the alias.
          - `defaultPath` string — The default path for an alias.
          - `defaultPattern` AliasPattern — The type of the pattern for an alias path.
            - `phrase` string — The alias pattern phrase.
            - `variable` string — The alias pattern variable.
            - `type` 'NotSpecified' | 'Extract' — The type of alias pattern
          - `defaultMetadata` AliasPathMetadata
            - `type` 'NotSpecified' | 'Any' | 'String' | 'Object' | 'Array' | 'Integer' | 'Number' | 'Boolean' — The type of the token that the alias path is referring to.
            - `attributes` 'None' | 'Modifiable' — The attributes of the token that the alias path is referring to.
        - `apiVersions` string[] — The API version.
        - `defaultApiVersion` string — The default API version.
        - `zoneMappings` ZoneMapping[]
          - `location` string — The location of the zone mapping.
          - `zones` string[]
        - `apiProfiles` ApiProfile[] — The API profiles for the resource provider.
          - `profileVersion` string — The profile version.
          - `apiVersion` string — The API version.
        - `capabilities` string — The additional capabilities offered by this resource type.
        - `properties` object — The properties.
      - `providerAuthorizationConsentState` 'NotSpecified' | 'Required' | 'NotRequired' | 'Consented' — The provider authorization consent state.
    - `dependencies` Dependency[] — The list of deployment dependencies.
      - `dependsOn` BasicDependency[] — The list of dependencies.
        - `id` string — The ID of the dependency.
        - `resourceType` string — The dependency resource type.
        - `resourceName` string — The dependency resource name.
      - `id` string — The ID of the dependency.
      - `resourceType` string — The dependency resource type.
      - `resourceName` string — The dependency resource name.
    - `templateLink` TemplateLink — Entity representing the reference to the template.
      - `uri` string — The URI of the template to deploy. Use either the uri or id property, but not both.
      - `id` string — The resource id of a Template Spec. Use either the id or uri property, but not both.
      - `relativePath` string — The relativePath property can be used to deploy a linked template at a location relative to the parent. If the parent template was linked with a TemplateSpec, this will reference an artifact in the TemplateSpec. If the parent was linked with a URI, the child deployment will be a combination of the parent and relativePath URIs
      - `contentVersion` string — If included, must match the ContentVersion in the template.
      - `queryString` string — The query string (for example, a SAS token) to be used with the templateLink URI.
    - `parameters` unknown
    - `parametersLink` ParametersLink — Entity representing the reference to the deployment parameters.
      - `uri` string, required — The URI of the parameters file.
      - `contentVersion` string — If included, must match the ContentVersion in the template.
    - `extensions` DeploymentExtensionDefinition[] — The extensions used in this deployment.
      - `alias` string — The alias of the extension as defined in the deployment template.
      - `name` string — The extension name.
      - `version` string — The extension version.
      - `configId` string — The extension configuration ID. It uniquely identifies a deployment control plane within an extension.
      - `config` object — The extension configuration.
    - `mode` 'Incremental' | 'Complete' — The mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources.
    - `debugSetting` DebugSetting — The debug setting.
      - `detailLevel` string — Specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information you are passing in during deployment. By logging information about the request or response, you could potentially expose sensitive data that is retrieved through the deployment operations.
    - `onErrorDeployment` OnErrorDeploymentExtended — Deployment on error behavior with additional details.
      - `provisioningState` string — The state of the provisioning for the on error deployment.
      - `type` 'LastSuccessful' | 'SpecificDeployment' — The deployment on error behavior type. Possible values are LastSuccessful and SpecificDeployment.
      - `deploymentName` string — The deployment to be used on error case.
    - `templateHash` string — The hash produced for the template.
    - `outputResources` ResourceReference[] — Array of provisioned resources.
      - `id` string — The fully qualified Azure resource ID.
      - `extension` DeploymentExtensionDefinition
        - `alias` string — The alias of the extension as defined in the deployment template.
        - `name` string — The extension name.
        - `version` string — The extension version.
        - `configId` string — The extension configuration ID. It uniquely identifies a deployment control plane within an extension.
        - `config` object — The extension configuration.
      - `resourceType` string — The resource type.
      - `identifiers` unknown
      - `apiVersion` string — The API version the resource was deployed with.
    - `validatedResources` ResourceReference[] — Array of validated resources.
      - `id` string — The fully qualified Azure resource ID.
      - `extension` DeploymentExtensionDefinition
        - `alias` string — The alias of the extension as defined in the deployment template.
        - `name` string — The extension name.
        - `version` string — The extension version.
        - `configId` string — The extension configuration ID. It uniquely identifies a deployment control plane within an extension.
        - `config` object — The extension configuration.
      - `resourceType` string — The resource type.
      - `identifiers` unknown
      - `apiVersion` string — The API version the resource was deployed with.
    - `error` ErrorResponse — Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.)
      - `code` string — The error code.
      - `message` string — The error message.
      - `target` string — The error target.
      - `details` ErrorResponse[] — The error details.
      - `additionalInfo` ErrorAdditionalInfo[] — The error additional info. — unresolved $ref
    - `diagnostics` DeploymentDiagnosticsDefinition[] — Contains diagnostic information collected during validation process.
      - `level` 'Warning' | 'Info' | 'Error', required — Denotes the additional response level.
      - `code` string, required — The error code.
      - `message` string, required — The error message.
      - `target` string — The error target.
      - `additionalInfo` ErrorAdditionalInfo[] — The error additional info. — unresolved $ref
    - `validationLevel` 'Template' | 'Provider' | 'ProviderNoRbac' — The level of validation performed on the deployment.

## Other responses

- `202` — Resource operation accepted.
- `400` — Azure operation completed successfully.
- `default` — An unexpected error response.

## Changes

- **2026-07-13** (2015-11-01) `ea64f4e7e898` — 1 warning
  - deleted the `query` request parameter `api-version`
- **2026-07-13** (2015-11-01) `ff2219f9d3a9` — 1 info
  - added the success response with the status `202`
- **2026-07-13** (2015-11-01) `c3702e2daa70` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/azure/apis/resources-microsoft-resources-deployments/changes/:scope/providers/Microsoft.Resources/deployments/:deploymentName/validate/post.md)

---

[API](https://skmtc.dev/azure/apis/resources-microsoft-resources-deployments.md) · [All operations](https://skmtc.dev/azure/apis/resources-microsoft-resources-deployments/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/azure/resources-microsoft-resources-deployments/revisions/ea64f4e7e898/schema)
