All Products
Search
Document Center

Alibaba Cloud DNS:Purchase, renew, and upgrade Cloud DNS instances through API

Last Updated:Sep 01, 2025

This topic describes how to purchase, renew, enable auto-renewal, and upgrade paid Cloud DNS instances through API. Some parameter values in the demo are for reference only. When you actually invoke the API, you need to provide real data, such as Domain and InstanceId.

SDK

  • Maven dependency:

<dependencies>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-bssopenapi</artifactId>
        <version>1.6.6</version>
    </dependency>

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.4.6</version>
    </dependency>
</dependencies>

For other languages, see: SDK list.

Important

For China site, the RegionId is fixed as cn-hangzhou. For international site, the RegionId is fixed as ap-southeast-1.

1. Create a paid Cloud DNS instance

Description: Create a paid Cloud DNS instance through CreateInstance.

API name: CreateInstance

API reference: Instance creation service.

API parameter

Demo instance parameter

Parameter value range

Value description

Parameter.1.Code

parameters1.setCode

DNSSecurity

DNS security.

Parameter.1.Value

parameters1.setValue

no; basic; advanced

Not needed; Basic DNS attack defense; Full DNS attack defense.

Parameter.2.Code

parameters2.setCode

DomainNumbers

Number of domains.

Parameter.2.Value

parameters2.setValue

1-100

Value range for the number of domains.

Parameter.3.Code

parameters3.setCode

Version

Cloud DNS version selection.

Parameter.3.Value

parameters3.setValue

version_personal, version_enterprise_advanced

Personal Edition,

Enterprise Ultimate Edition.

Parameter.4.Code

parameters4.setCode

Domain

Bound domain name.

Parameter.4.Value

parameters4.setValue

example.com

Enter the actual domain name to bind to the instance. For multiple domains, separate them with commas.

Parameter.5.Code

parameters5.setCode

InstanceType

Instance type.

Parameter.5.Value

parameters5.setValue

HostedPublicZone;

CachedPublicZone

Authoritative hosted domain;

Authoritative proxy domain.

FAQ:

(1) For the parameter parameters4.setCode("Domain") that binds domain information, the first letter must be uppercase. Otherwise, domain binding will fail.

(2) The bound domain must exist in the account that purchases the instance. If it is not an Alibaba Cloud domain, you need to add the domain in the Cloud DNS console in advance, or call the AddDomain API to add it. For more information, see: Add domain names.

Demo reference:

package alidnstest.domainmanager;

import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceRequest;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceResponse;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;

public class InstanceCreateRenewUpgrade extends AlidnsTestBase {

    @Test
    public void createInstanceTest() {
        CreateInstanceRequest request = new CreateInstanceRequest();
        request.setProductCode("dns");
        request.setProductType("dns_dns_public_intl");
        request.setSubscriptionType("Subscription");
        request.setPeriod(1);
        CreateInstanceRequest.Parameter parameters1 = new CreateInstanceRequest.Parameter();
        parameters1.setCode("DNSSecurity");
        parameters1.setValue("no");

        CreateInstanceRequest.Parameter parameters2 = new CreateInstanceRequest.Parameter();
        parameters2.setCode("DomainNumbers");
        parameters2.setValue("1");

        CreateInstanceRequest.Parameter parameters3 = new CreateInstanceRequest.Parameter();
        parameters3.setCode("Version");
        parameters3.setValue("version_personal");

        CreateInstanceRequest.Parameter parameters4 = new CreateInstanceRequest.Parameter();
        parameters4.setCode("Domain");
        parameters4.setValue("example.taobao");

        CreateInstanceRequest.Parameter parameters5 = new CreateInstanceRequest.Parameter();
        parameters5.setCode("InstanceType");
        parameters5.setValue("HostedPublicZone");  
      
        request.setParameters(Lists.newArrayList(parameters1,parameters2,parameters3,parameters4,parameters5));
        try {
            CreateInstanceResponse response = client.getAcsResponse(request);
            System.out.println(JSON.toJSON(response));
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

2. Renew a paid Cloud DNS instance

Description: Renew a paid Cloud DNS instance through RenewInstance.

API name: RenewInstance

API reference: Instance renewal service.

Demo reference:

package alidnstest.domainmanager;

import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceRequest;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceResponse;
import com.aliyuncs.bssopenapi.model.v20171214.RenewInstanceRequest;
import com.aliyuncs.bssopenapi.model.v20171214.RenewInstanceResponse;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;

public class OrderCreateRenewUpgrade extends AlidnsTestBase {

    /**
     * Renew Cloud DNS instance
     */
    @Test
    public void renewInstanceTest() {
        RenewInstanceRequest request = new RenewInstanceRequest();
        // Fill in the actual created instance ID
        request.setInstanceId("dns-cn-oew21y7****"); 
        request.setProductCode("dns");
        request.setRenewPeriod(3);
        try {
            RenewInstanceResponse response = client.getAcsResponse(request);
            System.out.println(JSON.toJSON(response));
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

3. Auto-renewal for Cloud DNS instances

Description: Set the renewal method for paid Cloud DNS instances through SetRenewal: manual renewal, auto-renewal, or no renewal.

API name: SetRenewal

API reference: Set instance auto-renewal service.

Auto-renewal cycle parameter description:

API parameter

Value range

Description

RenewalPeriodUnit

Values: M: Month. Y: Year.

Auto-renewal cycle unit.

RenewalPeriod

When RenewalPeriodUnit is Year, value range: 1, 2, 3. When RenewalPeriodUnit is Month, value range: 1, 2, 3, 6.

Auto-renewal duration.

FAQ:

(1) ProductCode is a required parameter.

(2) When RenewalStatus = AutoRenewal, RenewalPeriodUnit and RenewalPeriod are required.

Demo reference:

package alidnstest.domainmanager;

import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.*;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;

public class OrderCreateRenewUpgrade extends AlidnsTestBase {

    /**
     * Cloud DNS instance auto-renewal
     */
    @Test
    public void setRenewalTest() {
        SetRenewalRequest request = new SetRenewalRequest();
        // Fill in the actual created instance ID
        request.setInstanceIDs("dns-cn-oew21y7****"); 
        request.setRenewalStatus("AutoRenewal");
        request.setProductCode("dns");
        request.setRenewalPeriodUnit("M");
        request.setRenewalPeriod(1);
        try {
            SetRenewalResponse response = client.getAcsResponse(request);
            System.out.println(JSON.toJSON(response));
        } catch (ClientException e){
            e.printStackTrace();
        }
    }
}

4. Upgrade Cloud DNS instances

Description: Upgrade paid Cloud DNS instances through ModifyInstance. Currently, Cloud DNS does not support downgrading paid instances.

API name: ModifyInstance

API reference: Instance modification service.

Note

Parameter.N.Code and Parameter.N.Value description:

For Parameter.N.Code, enter Version.

Parameter.N.Value (Cloud DNS paid instance version) value range:

  • version_personal: Personal Edition;

  • version_enterprise_advanced: Enterprise Ultimate Edition;

FAQ:

(1) Cloud DNS paid instances currently do not support downgrading.

(2) InstanceId and ProductType are required parameters.

Demo reference:

package alidnstest.domainmanager;

import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.*;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;

public class OrderCreateRenewUpgrade extends AlidnsTestBase {

    /**
     * Cloud DNS instance upgrade
     */
    @Test
    public void modifyInstanceTest() {
        ModifyInstanceRequest request = new ModifyInstanceRequest();
        request.setModifyType("Upgrade");
        ModifyInstanceRequest.Parameter parameters = new ModifyInstanceRequest.Parameter();
        parameters.setCode("Version");
        parameters.setValue("version_enterprise_advanced");
        request.setParameters(Lists.newArrayList(parameters));
        request.setProductCode("dns");
        request.setProductType("dns_dns_public_intl");
        request.setSubscriptionType("Subscription");
        // Fill in the actual created instance ID
        request.setInstanceId("dns-cn-oew21y7****"); 
        try {
            ModifyInstanceResponse response = client.getAcsResponse(request);
            System.out.println(JSON.toJSON(response));
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

5. Get paid DNS product instance details

Use Get paid DNS product instance details to obtain detailed information about the paid Cloud DNS product instance created above by instance ID.

Demo reference:

package alidnstest.domainmanager;

import com.alibaba.fastjson.JSON;
import com.aliyuncs.alidns.model.v20150109.DescribeDnsProductInstanceRequest;
import com.aliyuncs.alidns.model.v20150109.DescribeDnsProductInstanceResponse;
import com.aliyuncs.bssopenapi.model.v20171214.*;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;

public class OrderCreateRenewUpgrade extends AlidnsTestBase {

    /**
     * Get Cloud DNS paid instance details
     */

    @Test
    public void describeDnsProductInstanceTest() {
        DescribeDnsProductInstanceRequest request = new DescribeDnsProductInstanceRequest();
        // Fill in the actual created instance ID
        request.setInstanceId("dns-cn-oew21y7****"); 
        try {
            DescribeDnsProductInstanceResponse response = client.getAcsResponse(request);
            System.out.println(JSON.toJSON(response));
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}