# getConfiguredDomains

`getConfiguredDomains` getConfiguredDomains is a helper function that returns the domain names configured at the time the function is called. Calling this function early or later in `dnsconfig.js` may return different results. Typical usage is to iterate over all domains at the end of your configuration file.

Example for adding records to all configured domains:

{% code title="dnsconfig.js" %}

```javascript
var domains = getConfiguredDomains();
for(i = 0; i < domains.length; i++) {
  D_EXTEND(domains[i],
    TXT("_important", "BLA") // I know, not really creative.
  )
}
```

{% endcode %}

This will end up in following modifications: (All output assumes the `--full` flag)

```
******************** Domain: domain1.tld
----- Getting nameservers from: registrar
----- DNS Provider: registrar...2 corrections
#1: CREATE TXT _important.domain1.tld "BLA" ttl=43200
#2: REFRESH zone domain1.tld

******************** Domain: domain2.tld
----- Getting nameservers from: registrar
----- DNS Provider: registrar...2 corrections
#1: CREATE TXT _important.domain2.tld "BLA" ttl=43200
#2: REFRESH zone domain2.tld
```

Example for adding DMARC report records:

This example might be more useful, specially for configuring the DMARC report records. According to DMARC RFC you need to specify `domain2.tld._report.dmarc.domain1.tld` to allow `domain2.tld` to send aggregate/forensic email reports to `domain1.tld`. This can be used to do this in an easy way, without using the wildcard from the RFC.

{% code title="dnsconfig.js" %}

```javascript
var domains = getConfiguredDomains();
for(i = 0; i < domains.length; i++) {
    D_EXTEND("domain1.tld",
        TXT(domains[i] + "._report._dmarc", "v=DMARC1")
    );
}
```

{% endcode %}

This will end up in following modifications:

```
******************** Domain: domain2.tld
----- Getting nameservers from: registrar
----- DNS Provider: registrar...4 corrections
#1: CREATE TXT domain1.tld._report._dmarc.domain2.tld "v=DMARC1" ttl=43200
#2: CREATE TXT domain3.tld._report._dmarc.domain2.tld "v=DMARC1" ttl=43200
#3: CREATE TXT domain4.tld._report._dmarc.domain2.tld "v=DMARC1" ttl=43200
#4: REFRESH zone domain2.tld
```


---

# 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.dnscontrol.org/language-reference/top-level-functions/getconfigureddomains.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.
