# Create and Manage Reverse DNS Records

{% hint style="info" %}
**Note:**

* Only contract administrators, owners, and users with **accessAndManageDns** privilege can create and manage primary zones and DNS records via the API. You can also set User privileges in the [<mark style="color:blue;">DCD</mark>](https://docs.ionos.com/sections-test/guides/network-services/cloud-dns/dcd-how-tos/set-user-privileges).
* Sub-users can create Reverse DNS records only if the user group they belong to has access to the concerned IP block. For more information, see [<mark style="color:blue;">Add users to a group</mark>](https://docs.ionos.com/sections-test/guides/set-up-ionos-cloud/management/identity-access-management/user-management#add-users-to-a-group).
* [<mark style="color:blue;">Cloud DNS API</mark>](https://api.ionos.com/docs/dns/v1/) supports both IPv4 and IPv6 addresses for Reverse DNS records.
* For more information about IPv6 configuration in the DCD see [<mark style="color:blue;">IPv6 Configuration</mark>](https://docs.ionos.com/sections-test/guides/network-services/vdc-networking/ip-address/ipv6).
  {% endhint %}

{% hint style="info" %}
**Prerequisites:**

* You need an IONOS Cloud account with API credentials configured with the appropriate permissions.
* Before creating a Reverse DNS record, you must create an A record for the IP address you want to use for the reverse DNS record. For more information, see [<mark style="color:blue;">Create a DNS Record</mark>](https://docs.ionos.com/sections-test/guides/network-services/cloud-dns/api-how-tos/create-dns-record).
  {% endhint %}

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

* Perform a POST request with name, a description of reverse DNS record (optional), and the IP.

{% hint style="info" %}
**Note:**

* The **IPv4 address** must be from a reserved IP range. To reserve an IPv4 address, in the **DCD** go to **Menu** > **Network Services** > **IP Management**. Enter a name and the number of IPv4 addresses, and select a region where you want your IPv4 addresses to be reserved. Select **Reserve IP** to reserve the IPv4 address, and confirm the reservation by pressing **OK**.
* To use an **IPv6 address** for a reverse DNS record, it needs to belong to any of the `/56 IPv6` blocks assigned to the VDC and have a prefix length of **/128**, that is, `2001:db8:1234:5678::1/128` and belong to a `2001:db8:1234:5678::/56` block. For more information, see [<mark style="color:blue;">IPv6 Configuration</mark>](https://docs.ionos.com/sections-test/guides/network-services/vdc-networking/ip-address/ipv6).
  {% endhint %}

{% hint style="success" %}
\*\*Result:\*\* On a successful POST request, you receive a response containing the reverse DNS record UUID, type, href, metadata, properties of your reverse DNS record, name, description, and IP address.
{% endhint %}

### Request

```bash
curl --location \  
--request POST  'https://dns.de-fra.ionos.com/reverserecords' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
--header 'Content-Type: application/json' \
--data '{
      "properties": {
        "name": "mail.example.com",
        "description": "The reverse DNS record is used for mail.example.com",
        "ip": "192.0.2.2"
  }
}'
```

### Response

**200 Successful operation**

```json
{
  "id": "e74d0d15-f567-4b7b-9069-26ee1f93bae3",
  "type": "reverserecord",
  "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>"
  },
  "properties": {
    "name": "mail.example.com",
    "description": "The reverse DNS record is used for mail.example.com",
    "ip": "192.0.2.2"
  }
}
```

## Create an IPv6 reverse DNS record

To create an IPv6 reverse DNS record, perform a POST request to the `/reverserecords` endpoint with an IPv6 address in the request body.

### Request

```bash
curl --location \
--request POST 'https://dns.de-fra.ionos.com/reverserecords' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
--header 'Content-Type: application/json' \
--data '{
      "properties": {
        "name": "mail.example.com",
        "description": "The reverse DNS record is used for mail.example.com",
        "ip": "2001:0db8::1"
  }
}'
```

### Response

**200 Successful operation**

```json
{
  "id": "e74d0d15-f567-4b7b-9069-26ee1f93bae3",
  "type": "reverserecord",
  "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>"
  },
  "properties": {
    "name": "mail.example.com",
    "description": "The reverse DNS record is used for mail.example.com",
    "ip": "2001:0db8::1"
  }
}
```

#### Response Fields

| Field                    | Type   | Description                                                           | Example                                                             |
| ------------------------ | ------ | --------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **id**                   | string | UUID of the newly created reverse DNS record                          | 2a4428b3-dbe0-4357-9c02-609025b3a40f                                |
| **createdDate**          | string | Reverse DNS record creation timestamp                                 | 2022-08-21T15:52:53Z                                                |
| **createdBy**            | string | Unique name of the identity that created the reverse DNS record       | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **createdByUserId**      | string | The unique ID of the user who created the reverse DNS record          | 87f9a82e-b28d-49ed-9d04-fba2c0459cd3                                |
| **lastModifiedDate**     | string | Reverse DNS record update timestamp                                   | 2022-08-21T15:52:53Z                                                |
| **lastModifiedBy**       | string | Unique name of the identity that last modified the reverse DNS record | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **lastModifiedByUserId** | string | Unique ID of the user has last modified the reverse DNS record        | 63cef532-26fe-4a64-a4e0-de7c8a506c90                                |
| **resourceURN**          | string | Unique name of the resource                                           | `ionos:<product>:<location>:<contract>:<resource-path>`             |
| **name**                 | string | Name of the reverse DNS record                                        | mail.example.com                                                    |
| **description**          | string | Description of the reverse DNS record                                 | The reverse DNS record is used for mail.example.com                 |
| **ip**                   | string | IP address of the reverse DNS record                                  | 192.0.2.2 or 2001:0db8::1                                           |
| **type**                 | string | Type of the reverse DNS record                                        | reverserecord                                                       |
| **href**                 | string | Absolute path to the reverse DNS record                               |                                                                     |

## Retrieve all reverse DNS records

To retrieve all reverse DNS records, perform a GET request to the `/reverserecords` endpoint.

{% hint style="success" %}
\*\*Result:\*\* On a successful GET request, you receive a response containing all reverse DNS records.
{% endhint %}

### Request

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

### Response

**200 Successful operation**

```json
{
  "type": "collection",
  "href": "<RESOURCE-URI>",
  "items": [
    {
      "id": "e74d0d15-f567-4b7b-9069-26ee1f93bae3",
      "type": "reverserecord",
      "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>"
      },
      "properties": {
        "name": "mail.example.com",
        "description": "The reverse DNS record is used for mail.example.com",
        "ip": "192.0.2.2"
      }
    }
  ],
  "offset": 0,
  "limit": 1000,
  "_links": {
    "prev": "http://PREVIOUS-PAGE-URI",
    "self": "http://THIS-PAGE-URI",
    "next": "http://NEXT-PAGE-URI"
  }
}
```

#### Response Fields

| Field                    | Type   | Description                                                           | Example                                                             |
| ------------------------ | ------ | --------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **id**                   | string | UUID of the reverse DNS record                                        | 2a4428b3-dbe0-4357-9c02-609025b3a40f                                |
| **createdDate**          | string | Reverse DNS record creation timestamp                                 | 2022-08-21T15:52:53Z                                                |
| **createdBy**            | string | Unique name of the identity that created the reverse DNS record       | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **createdByUserId**      | string | The unique ID of the user who created the reverse DNS record          | 87f9a82e-b28d-49ed-9d04-fba2c0459cd3                                |
| **lastModifiedDate**     | string | Reverse DNS record update timestamp                                   | 2022-08-21T15:52:53Z                                                |
| **lastModifiedBy**       | string | Unique name of the identity that last modified the reverse DNS record | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **lastModifiedByUserId** | string | Unique ID of the user has last modified the reverse DNS record        | 63cef532-26fe-4a64-a4e0-de7c8a506c90                                |
| **resourceURN**          | string | Unique name of the resource                                           | `ionos:<product>:<location>:<contract>:<resource-path>`             |
| **name**                 | string | Name of the reverse DNS record                                        | mail.example.com                                                    |
| **description**          | string | Description of the reverse DNS record                                 | The reverse DNS record is used for mail.example.com                 |
| **ip**                   | string | IP address of the reverse DNS record                                  | 192.0.2.2 or 2001:0db8::1                                           |
| **type**                 | string | Type of the reverse DNS record                                        | reverserecord                                                       |
| **href**                 | string | Absolute path to the reverse DNS record                               |                                                                     |

## Retrieve a reverse DNS record

To retrieve a reverse DNS record, perform a GET request to the `/reverserecords/{id}` endpoint.

{% hint style="success" %}
**Result:** On a successful GET request, you receive a response containing the reverse DNS record UUID, type, href, metadata, and properties of your reverse DNS record, name, description, and IP.
{% endhint %}

### Request

```bash
curl -X 'GET' \
  'https://dns.de-fra.ionos.com/reverserecords/e74d0d15-f567-4b7b-9069-26ee1f93bae3' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
  -H 'accept: application/json'
```

### Response

**200 Successful operation**

```json
{
  "id": "e74d0d15-f567-4b7b-9069-26ee1f93bae3",
  "type": "reverserecord",
  "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>"
  },
  "properties": {
    "name": "mail.example.com",
    "description": "The reverse DNS record is used for mail.example.com",
    "ip": "192.0.2.2"
  }
}
```

#### Response Fields

| Field                    | Type   | Description                                                           | Example                                                             |
| ------------------------ | ------ | --------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **id**                   | string | UUID of the reverse DNS record                                        | 2a4428b3-dbe0-4357-9c02-609025b3a40f                                |
| **createdDate**          | string | Reverse DNS record creation timestamp                                 | 2022-08-21T15:52:53Z                                                |
| **createdBy**            | string | Unique name of the identity that created the reverse DNS record       | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **createdByUserId**      | string | The unique ID of the user who created the reverse DNS record          | 87f9a82e-b28d-49ed-9d04-fba2c0459cd3                                |
| **lastModifiedDate**     | string | Reverse DNS record update timestamp                                   | 2022-08-21T15:52:53Z                                                |
| **lastModifiedBy**       | string | Unique name of the identity that last modified the reverse DNS record | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **lastModifiedByUserId** | string | Unique ID of the user has last modified the reverse DNS record        | 63cef532-26fe-4a64-a4e0-de7c8a506c90                                |
| **resourceURN**          | string | Unique name of the resource                                           | `ionos:<product>:<location>:<contract>:<resource-path>`             |
| **name**                 | string | Name of the reverse DNS record                                        | mail.example.com                                                    |
| **description**          | string | Description of the reverse DNS record                                 | The reverse DNS record is used for mail.example.com                 |
| **ip**                   | string | IP address of the reverse DNS record                                  |                                                                     |
| **type**                 | string | Type of the reverse DNS record                                        | reverserecord                                                       |
| **href**                 | string | Absolute path to the reverse DNS record                               |                                                                     |

## Modify a reverse DNS record

To modify a reverse DNS record, perform a PUT request to the `/reverserecords/{id}` endpoint.

{% hint style="success" %}
**Result:** On a successful PUT request, you receive a response containing the reverse DNS record UUID, type, href, metadata, and properties of your reverse DNS record, name, description, and IP.
{% endhint %}

### Request

```bash
curl -X 'PUT' \
  'https://dns.de-fra.ionos.com/reverserecords/e74d0d15-f567-4b7b-9069-26ee1f93bae3' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "properties": {
    "name": "mail.example.com",
    "description": "The reverse DNS record is used for mail.example.com",
    "ip": "192.0.2.3"
  }
}'
```

### Response

**200 Successful operation**

```json
{
  "id": "e74d0d15-f567-4b7b-9069-26ee1f93bae3",
  "type": "reverserecord",
  "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>"
  },
  "properties": {
    "name": "mail.example.com",
    "description": "The reverse DNS record is used for mail.example.com",
    "ip": "192.0.2.3"
  }
}
```

#### Response Fields

| Field                    | Type   | Description                                                           | Example                                                             |
| ------------------------ | ------ | --------------------------------------------------------------------- | ------------------------------------------------------------------- |
| **id**                   | string | UUID of the reverse DNS record                                        | 2a4428b3-dbe0-4357-9c02-609025b3a40f                                |
| **createdDate**          | string | Reverse DNS record creation timestamp                                 | 2022-08-21T15:52:53Z                                                |
| **createdBy**            | string | Unique name of the identity that created the reverse DNS record       | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **createdByUserId**      | string | The unique ID of the user who created the reverse DNS record          | 87f9a82e-b28d-49ed-9d04-fba2c0459cd3                                |
| **lastModifiedDate**     | string | Reverse DNS record update timestamp                                   | 2022-08-21T15:52:53Z                                                |
| **lastModifiedBy**       | string | Unique name of the identity that last modified the reverse DNS record | ionos:iam:cloud:31960002:users/87f9a82e-b28d-49ed-9d04-fba2c0459cd3 |
| **lastModifiedByUserId** | string | Unique ID of the user has last modified the reverse DNS record        | 63cef532-26fe-4a64-a4e0-de7c8a506c90                                |
| **resourceURN**          | string | Unique name of the resource                                           | `ionos:<product>:<location>:<contract>:<resource-path>`             |
| **name**                 | string | Name of the reverse DNS record                                        | mail.example.com                                                    |
| **description**          | string | Description of the reverse DNS record                                 | The reverse DNS record is used for mail.example.com                 |
| **ip**                   | string | IP address of the reverse DNS record                                  | 192.0.2.3                                                           |
| **type**                 | string | Type of the reverse DNS record                                        | reverserecord                                                       |
| **href**                 | string | Absolute path to the reverse DNS record                               |                                                                     |

## Delete a reverse DNS record

To delete a reverse DNS record, perform a DELETE request to the `/reverserecords/{id}` endpoint.

{% hint style="success" %}
**Result:** On a successful DELETE request, you receive a HTTP response **202 Successful operation**.
{% endhint %}

### Request

```bash
curl -X 'DELETE' \
  'https://dns.de-fra.ionos.com/reverserecords/e74d0d15-f567-4b7b-9069-26ee1f93bae3' \
  --header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJraWQiO' \
  -H 'accept: application/json'
```

### Response

**202 Successful operation**

## Quota

To retrieve the quota of reverse DNS records, 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 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       |
