---
title: domain
description: Manage domains
product: Reference
url: https://docs.digitalocean.com/reference/ansible/reference/modules/domain/
last_updated: "2026-08-15"
---

> **For AI agents:** The documentation index is at [https://docs.digitalocean.com/llms.txt](https://docs.digitalocean.com/llms.txt). Markdown versions of pages use the same URL with `index.html.md` in place of the HTML page (for example, append `index.html.md` to the directory path instead of opening the HTML document).

# domain

## Synopsis

Domain resources are domain names that you have purchased from a domain name registrar that you are managing through the DigitalOcean DNS interface. This module establishes top-level control over each domain. Actions that affect individual domain records should be taken on the `domain_record` module. View the API documentation at [https://docs.digitalocean.com/reference/api/api-reference/#tag/Domains](https://docs.digitalocean.com/reference/api/api-reference/index.html.md#tag/Domains).

## Requirements

- pydo >= 0.1.3
- azure-core >= 1.26.1

## Parameters

Parameter Choices / Default Description

`client_override_options`, dict Client override options (developer use). For example, can be used to override the DigitalOcean API endpoint for an internal test suite. If provided, these options will knock out existing options.

`ip_address`, str This optional attribute may contain an IP address. When provided, an A record will be automatically created pointing to the apex domain.

`module_override_options`, dict Module override options (developer use). Can be used to override module options to support experimental or future options. If provided, these options will knock out existing options.

`name`, str / **required** The name of the domain itself. This should follow the standard domain format of domain.TLD. For instance, `example.com` is a valid domain name.

`state`, str Choices:

- `present` (default)
- `absent`

State of the resource, `present` to create, `absent` to destroy.

`timeout`, int Default: `300` Polling timeout in seconds.

`token`, str DigitalOcean API token. There are several environment variables which can be used to provide this value. `DIGITALOCEAN_ACCESS_TOKEN`, `DIGITALOCEAN_TOKEN`, `DO_API_TOKEN`, `DO_API_KEY`, `DO_OAUTH_TOKEN` and `OAUTH_TOKEN`

## Examples

```yaml
- name: Create domain
  digitalocean.cloud.domain:
    token: "{{ token }}"
    name: my-test-domain.com

- name: Create domain and apex record
  digitalocean.cloud.domain:
    token: "{{ token }}"
    name: my-test-domain.com
    ip_address: 192.168.100.50
```

## Return Values

KeyReturnedDescription

`domain`, dict always Domain., Sample:,```json
{
  "name": "example.com",
  "ttl": 1800,
  "zone_file": "$ORIGIN example.com.\n$TTL 1800\nexample.com. IN SOA ns1.digitalocean.com. hostmaster.example.com. 1672671168 10800 3600 604800 1800\nexample.com. 1800 IN NS ns1.digitalocean.com.\nexample.com. 1800 IN NS ns2.digitalocean.com.\nexample.com. 1800 IN NS ns3.digitalocean.com.\n"
}
```

`error`, dict failure DigitalOcean API error., Sample:,```json
{
  "Message": "Informational error message.",
  "Reason": "Unauthorized",
  "Status Code": 401
}
```

`msg`, str always Domain result information., Sample:,```json
[
  "Created domain example.com",
  "Domain example.com exists",
  "Domain example.com would be created",
  "Domain example.com would be deleted",
  "Domain example.com does not exist"
]
```