# Create Primary Zones

{% hint style="info" %}
**Note:** Only contract administrators, owners, and users with "accessAndManageDns" privilege can create and manage primary zones and DNS records via API. You can also set User privileges in the [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/cloud/network-services/cloud-dns/dcd-how-tos/set-user-privileges).
{% endhint %}

{% hint style="info" %}
**Prerequisite:** You need an IONOS Cloud account with API credentials configured with the appropriate permissions.
{% endhint %}

To create a primary zone with [<mark style="color:blue;">Cloud DNS API</mark>](https://api.ionos.com/docs/dns/v1/), follow this step:

* Perform a POST request with the domain or subdomain, a description of your primary zone (optional), and the primary zone status (enable), true or false.

{% hint style="success" %}
**Result:** On a successful POST request, you receive a response containing the primary zone UUID, Name Servers, and the request status.
{% endhint %}

## Request

```bash
curl --location \  
--request POST  'https://dns.de-fra.ionos.com/zones' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
--header 'Content-Type: application/json' \
--data '{
   "properties": {
    "zoneName": "example.com",
     "description": "example of zone creation",
     "enabled": true
    }
}'
```

## Response

**202 Successful operation**

```json
{
    "id": "2a4428b3-dbe0-4357-9c02-609025b3a40f",
    "type": "zone",
    "href": "<RESOURCE-URI>",
    "metadata": {
        "createdDate": "2022-08-21T15:52:53Z",
        "createdBy": "ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
        "createdByUserId": "87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
        "lastModifiedDate": "2022-08-21T15:52:53Z",
        "lastModifiedBy": "ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3",
        "lastModifiedByUserId": "63cef532-26fe-4a64-a4e0-de7c8a506c90",
        "resourceURN": "ionos:<product>:<location>:<contract>:<resource-path>",
        "nameservers": [
            "ns-ic.ui-dns.com",
            "ns-ic.ui-dns.de",
            "ns-ic.ui-dns.org",
            "ns-ic.ui-dns.biz"
        ],
        "state": "CREATED"
    },
    "properties": {
	      "zoneName": "example.com",
        "description": "example of zone creation",
        "enabled": true
    }
}
```

### Response Fields

| **Field**                | **Type** | **Description**                                       | **Example**                                                                                   |
| ------------------------ | -------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| **id**                   | string   | UUID of the newly created primary zone                | 2a4428b3-dbe0-4357-9c02-609025b3a40f                                                          |
| **type**                 | string   | Type of the resource                                  | zone                                                                                          |
| **href**                 | string   | Absolute path to the newly created primary zone       |                                                                                               |
| **createdDate**          | string   | Primary zone creation timestamp                       | 2023-03-15T09:58:59.147746133Z                                                                |
| **createdBy**            | string   | Unique name of the identity that created the resource | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3                           |
| **createdByUserId**      | string   | The unique ID of the user who created the resource    | 87f9a82e-b28d-49ed-9d04-fba2c0459cd3                                                          |
| **lastModifiedDate**     | string   | Primary zone update timestamp                         | 2023-03-15T09:58:59.147746133Z                                                                |
| **lastModifiedBy**       | string   | Unique ID of the user who last modified the resource  | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3                           |
| **lastModifiedByUserId** | string   | Primary zone update timestamp                         | 63cef532-26fe-4a64-a4e0-de7c8a506c90                                                          |
| **resourceURN**          | string   | Unique name of the resource                           | `ionos:<product>:<location>:<contract>:<resource-path>`                                       |
| **nameservers**          | array    | Name Servers assigned to the primary zone             | <p>"ns-ic.ui-dns.com",<br>"ns-ic.ui-dns.de",<br>"ns-ic.ui-dns.org",<br>"ns-ic.ui-dns.biz"</p> |
| **state**                | string   | State of the request                                  | CREATED                                                                                       |

## Quota

To retrieve the quota of primary zones, perform a GET request to the `/quota` endpoint.

{% hint style="success" %}
**Result:** On a successful GET request, you receive a response containing the quota limits and quota usage for your contract.
{% endhint %}

## Request

```bash
curl --location 'https://dns.de-fra.ionos.com/quota' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
--header 'Content-Type: application/json'
```

## Response

**200 OK**

```json
{
  "quotaLimits": {
    "records": 100000,
    "reverseRecords": 5000,
    "secondaryZones": 100000,
    "zones": 50000
  },
  "quotaUsage": {
    "records": 9,
    "reverseRecords": 1,
    "secondaryZones": 6,
    "zones": 5
  }
}
```

### Response Fields

| **Field**          | **Type** | **Description**                    | **Example** |
| ------------------ | -------- | ---------------------------------- | ----------- |
| **records**        | string   | Number of DNS records              | 100000      |
| **reverseRecords** | string   | Number of reverse DNS records      | 5000        |
| **secondaryZones** | string   | Number of secondary primary zones  | 100000      |
| **zones**          | string   | Number of primary zones            | 50000       |
| **records**        | string   | Number of DNS records used         | 9           |
| **reverseRecords** | string   | Number of reverse DNS records used | 1           |
| **secondaryZones** | string   | Number of secondary zones used     | 6           |
| **zones**          | string   | Number of primary zones used       | 5           |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ionos.com/cloud/network-services/cloud-dns/api-how-tos/create-primary-zone.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
