Bulk Revalidate DCV Domains

The Bulk Revalidate DCV Domains API triggers on-demand revalidation for one or more DCV domains. Use this API when you want to manually start the validation process for specific domains immediately, without waiting for the scheduled auto-revalidation cycle.

Before you Begin

Ensure the following before calling this API:
  • You have valid AppViewX credentials or an active session ID.
  • The Certificate Lifecycle Management module is enabled and accessible.
  • You have the DCV CA Mgmt View and DCV CA Mgmt Add/Modify permissions assigned to your user account.
  • The domain IDs you want to revalidate exist in AppViewX. Use the List DCV Domains API to retrieve valid domain IDs.
  • When setting updateValidationMethodForInEligibleDomains to true, ensure a compatible DNS integration is configured in AppViewX.

Request Structure

Endpoint: /certificate/dcv/domain/bulk/revalidate
Type: POST
Sample URL:
https://<IP/HostName/TenantName>:<GWPORT>/avxapi/certificate/dcv/domain/bulk/revalidate?gwsource=external

To understand the elements of the sample URL, see References.

Headers
Content-Type: application/json
Table 1. Input Parameters
Name Description
sessionId

Header

(Mandatory) Session ID received after login.

Type: String

Constraint: Required if username and password are not provided.

username

Header

(Mandatory) AppViewX login username.

Type: String

Constraint: Required if sessionId is not provided.

password

Header

(Mandatory) AppViewX login password.

Type: String

Constraint: Required if sessionId is not provided.

Content-Type

Header

(Mandatory) Format of the request body.

Type: String

Constraint: Value must be application/json.

gwsource

Query

(Mandatory) Source from which the request is triggered.

Type: String

Example: external

Payload

Body

Contains all the parameters to include in the request body.

Type: Payload

Payload Parameters

Parameter Description
domainIds List of domain IDs to revalidate.

Type: Array of String.

Constraint: Required if isSelectAll is false or not provided.

A maximum of 1000 entries are supported.

isSelectAll Set to true to trigger revalidation for all domains matching the filter criteria. When set to true, AppViewX processes the operation as a background job.

Type: Boolean.

Constraint: Required if domainIds is not provided.

comment (Mandatory) A reason or note for initiating the revalidation. This is recorded in the domain audit trail.

Type: String.

search Filter domains by search text. Applied as a search filter when isSelectAll is true.

Type: String.

status Filter domains by validation status. Applied when isSelectAll is true.

Type: String. Allowed values: Active, Expired, Failed, Pending.

updateValidationMethodForInEligibleDomains Set to true to switch domains that are not eligible for their current validation method to a supported method before revalidating. Set to false to skip ineligible domains.

Type: Boolean.

validationMethod DCV validation method to apply to ineligible domains. Required when updateValidationMethodForInEligibleDomains is true.

Type: String. Allowed values: DNS_CNAME, DNS_TXT.

dnsVendor DNS vendor for automated validation. Required when validationMethod is provided.

Type: String.

dnsServer DNS server configured in DDI. Required when validationMethod is provided.

Type: String.

Important: DNS CNAME validation is not supported for GlobalSign MSSL and SwissSign CA. AppViewX automatically uses DNS TXT validation for those domains.

Response Structure

The API returns a response of type application/json with the following parameters:

Parameter Description
response Contains the revalidation trigger results.

Type: Object.

response.message Message summarizing the revalidation trigger result.

Type: String.

response.helpInfo Additional information relevant to the response, such as validation method compatibility notes.

Type: String.

response.domainRevalidationStatusMap Map of domain IDs to their revalidation queue status. Each key is a domain ID and each value is the current status of that domain's revalidation job.

Type: Object. Example: {"domain-id-1": "Queued"}.

response.totalRequestedDomains Total number of domains included in the request.

Type: Integer.

response.ineligibleDomainsCount Number of domains that were skipped because they are not eligible for revalidation.

Type: Integer.

message Top-level message summarizing the revalidation trigger result.

Type: String.

tags Additional information returned in case of a failure response.

Status CodesMandatory field is missing or invalid

HTTP Status appStatusCode Description
200 OK null Revalidation triggered successfully for the requested domains.
400 Bad Request MANDATORY_FIELD_MISSING Mandatory field is missing or invalid - either domainIds or isSelectAll must be provided.

Remediation: Provide a list of domain IDs in domainIds, or set isSelectAll to true.

400 Bad Request MANDATORY_FIELD_MISSING Mandatory field is missing or invalid - comment.

Remediation: Provide a reason for the revalidation in the comment field.

400 Bad Request INVALID_REQUEST Invalid request specified - comment length should not exceed 2000 characters.

Remediation: Shorten the comment text.

400 Bad Request DCV-0001 Cannot use isSelectAll together with a specific domain list. To act on all domains, enable isSelectAll and leave the domain list empty. To act on specific domains, uncheck isSelectAll and choose them individually.

Remediation: Provide either domainIds or isSelectAll, not both.

400 Bad Request MANDATORY_FIELD_MISSING Mandatory field is missing or invalid - validationMethod.

Remediation: Provide a validationMethod value.

400 Bad Request MANDATORY_FIELD_MISSING Mandatory field is missing or invalid - dnsVendor.

Remediation: Provide a value for dnsVendor.

500 Internal Server Error — An unexpected error occurred.

Remediation: Contact your AppViewX administrator.

Sample Request/Response

Sample Request — By domain IDs, skip ineligible

{
  "domainIds": [
    "domain-id-1",
    "domain-id-2"
  ],
  "comment": "Quarterly domain revalidation run",
  "isSelectAll": false,
  "updateValidationMethodForInEligibleDomains": false
}

Sample Request — By domain IDs, update method for ineligible domains

{
  "domainIds": [
    "domain-id-1",
    "domain-id-2"
  ],
  "comment": "Revalidation with method update for ineligible domains",
  "isSelectAll": false,
  "updateValidationMethodForInEligibleDomains": true,
  "validationMethod": "DNS_CNAME",
  "dnsVendor": "dns-vendor-name",
  "dnsServer": "dns-server-hostname"
}

Sample Request — Select all expired domains with filter

{
  "isSelectAll": true,
  "status": "Expired",
  "search": "*.example.com",
  "comment": "Bulk revalidation for all expired domains",
  "updateValidationMethodForInEligibleDomains": false
}

Sample Response

{
  "response": {
    "message": "Revalidation on Demand has been successfully triggered for 2 domain(s).",
    "helpInfo": "DNS CNAME validation is not supported for GlobalSign MSSL and SwissSign CA. DNS TXT validation will be used instead.",
    "domainRevalidationStatusMap": {
      "domain-id-1": "Queued",
      "domain-id-2": "Queued"
    },
    "ineligibleDomainsCount": 0,
    "totalRequestedDomains": 2
  },
  "message": "Revalidation on Demand has been successfully triggered for 2 domain(s).",
  "tags": {}
}

References

Understanding the sample URL
  • IP/HostName/TenantName: Replace with the actual IP address, hostname, or tenant name based on the specific configuration in AppViewX.
    • IP: A unique identifier assigned to each device connected to a network that uses the Internet Protocol for communication. The IP address is used in the endpoint URL for an on-premises deployment.
    • HostName: A human-readable label assigned to a device on a network. The hostname is used in the endpoint URL for an on-premises deployment.
    • TenantName: An identifier for a tenant indicating which tenant's data the API request accesses or modifies. The tenant name is used in the endpoint URL for a SaaS deployment.
  • GWPORT: AppViewX gateway port. Example: 31443
  • avxapi: Static path parameter that is part of the endpoint URL.
  • gwsource: Source or origin of the gateway request. Example: external.