# Automatic DNS setup

> One-click DNS record injection for supported registrars.

Setting up email means adding a dozen or so DNS records. If your domain's DNS is managed by a supported provider, you can skip the copy-paste entirely: give Faivelo an API key when you [add your domain](/domains/adding-a-domain), and every record is created for you in seconds.

Faivelo detects your provider automatically from your domain's nameservers, so the right instructions appear during setup. Supported providers: **Cloudflare, GoDaddy, Namecheap, Route 53 (AWS), and Hostinger**.

## What Faivelo injects

The complete record set your domain needs: the MX record that routes incoming mail, SPF, DKIM, and DMARC records that authenticate your outbound mail, plus records for secure transport (MTA-STS, TLS reporting) and mail-client auto-configuration. The full list, with values, is in [Manual DNS records](/domains/manual-dns-records).

If a conflicting record already exists (say, an old MX record from a previous email provider), Faivelo replaces it so your new setup works immediately.

<docs-aside type="note" title="Your key is stored encrypted">

Registrar API keys are encrypted at rest. Faivelo uses the key only to manage DNS records for the domains you connect. You can also re-push records later with the **Re-apply DNS records** button on your domain's DNS page.

</docs-aside>

## Cloudflare

1. Go to [Cloudflare API tokens](https://dash.cloudflare.com/profile/api-tokens) and click **Create Token**.
2. Use the **Edit zone DNS** template and give it access to your domain's zone.
3. Copy the token and paste it into Faivelo.

Faivelo also disables Cloudflare **Email Routing** on the zone if it's active, since it injects its own MX records that would conflict with yours.

<docs-aside type="caution">

Cloudflare's orange-cloud proxy must stay **off** for mail records. Faivelo creates them DNS-only, but if you edit them later, keep the proxy disabled — see [Troubleshooting DNS](/domains/troubleshooting).

</docs-aside>

## GoDaddy

1. Go to [GoDaddy Developer Keys](https://developer.godaddy.com/keys) and create a **production** API key.
2. Copy both the **Key** and the **Secret**.
3. Paste them into Faivelo as one value in the format `key:secret`.

## Namecheap

1. Go to [Namecheap API access](https://ap.www.namecheap.com/settings/tools/apiaccess) and enable API access on your account.
2. Copy your **API Key**.
3. Paste it into Faivelo as `apiKey:username`, where `username` is your Namecheap account username.

## Route 53 (AWS)

1. In the [AWS IAM console](https://console.aws.amazon.com/iam/home#/users), create an IAM user with **Route 53** permissions (it needs to list hosted zones and change record sets).
2. Create an access key for that user.
3. Paste it into Faivelo as `accessKeyId:secretAccessKey`.

Your domain must have a hosted zone in the same AWS account the key belongs to.

## Hostinger

1. Go to the [Hostinger API page](https://hpanel.hostinger.com/api) in hPanel and generate an API token.
2. Copy the token and paste it into Faivelo.

Hostinger domains are detected whether they use Hostinger's standard nameservers (`dns-parking.com`) or premium DNS.

## DreamHost

1. Open the [API page](https://panel.dreamhost.com/?tree=home.api) in your DreamHost panel.
2. In the list of functions, tick `dns-list_records`, `dns-add_record` and `dns-remove_record`, then click **Generate a new API Key now!**
3. Copy the key and paste it into Faivelo.

DreamHost's API can add every record type except MX. After auto-setup, Faivelo shows you the one MX record to add yourself: in the panel, open **Manage Websites**, click the three dots beside your domain, choose **DNS Settings**, and add it exactly as shown. Faivelo keeps checking and verifies it automatically. The domain must be in your DreamHost panel (hosted, or DNS Only) and use DreamHost's nameservers (`ns1`, `ns2` and `ns3.dreamhost.com`).

## Prefer not to share a key?

That's fine — leave the field blank and add the records yourself. Faivelo shows you exactly what to create, with one-click copy for every value. See [Manual DNS records](/domains/manual-dns-records).

## Next steps

Once the records are pushed, verification usually completes within a couple of minutes — see [Domain verification](/domains/verification).
