> ## Documentation Index
> Fetch the complete documentation index at: https://ahasend.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> AhaSend stores all message data in the EU. See /facts.
> The API base URL is https://api.ahasend.com. Send the API key in the Authorization: Bearer header. See /api-reference/authentication.
> Use send.ahasend.com for SMTP in the EU, or send-us.ahasend.com as a US connection point forwarding to the EU. Ports 25, 587 and 2525 use STARTTLS. Port 465 is not supported. See /smtp.
> For send-only integrations, create an API Key v2 under Credentials → Add and scope it to messages:send:{your-domain}. See /send-api/credentials and /api-reference/scopes.

# Squarespace DNS: SPF, DKIM and DMARC

> Add AhaSend SPF, DKIM and DMARC records in Squarespace: find the DNS form, enter the right names and values, then verify your sending domain.

AhaSend verifies domains hosted at Squarespace when you publish the SPF, DKIM and DMARC records from your domain page; this guide shows where to enter them.

## Before You Start

[Add the sending domain in AhaSend](/docs/domains) and keep its DNS record list open. Sign in to the account that can edit the domain’s authoritative DNS: the provider named by its nameservers. Buying a domain from one company does not always mean it hosts the DNS.

Copy your current records before editing. Keep existing website, mailbox and verification records. See [domain setup](/docs/domains) for the exact AhaSend values, required records and verification timing.

## Open the DNS Form

Open your domains dashboard, select the domain, open **DNS settings**, and go to **Custom records → Add record**. Choose the type from AhaSend and fill in **Host** (or **Name**) and **Data**. These steps follow [Squarespace's DNS guide](https://support.squarespace.com/hc/en-us/articles/31120980444429-Adding-TXT-records).

Squarespace appends the domain name, so use `_dmarc` as the host for `_dmarc.example.com`. Add a separate custom CNAME for each managed DKIM selector. Keep your Squarespace website and existing Google Workspace or other mailbox records.

## Add SPF, DKIM and DMARC

For a zone named `example.com`, use this name mapping. The examples show a common managed-DKIM setup; your dashboard's names and targets take precedence.

| AhaSend record                    | Type  | Name in the provider form | Value                                                           |
| --------------------------------- | ----- | ------------------------- | --------------------------------------------------------------- |
| SPF for `example.com`             | TXT   | `@`                       | SPF value shown by AhaSend, merged into any existing SPF record |
| `managed._domainkey.example.com`  | CNAME | `managed._domainkey`      | First DKIM target from your domain page                         |
| `managed2._domainkey.example.com` | CNAME | `managed2._domainkey`     | Second DKIM target from your domain page                        |
| `_dmarc.example.com`              | TXT   | `_dmarc`                  | Your reviewed DMARC policy                                      |

1. If an SPF record already exists at the sending name, edit it to include AhaSend as described in [domain setup](/docs/domains). Do not add a second SPF record.
2. Publish both managed DKIM CNAMEs. If AhaSend shows a manual DKIM TXT record, use TXT and its exact selector instead.
3. Keep one DMARC record. Review all senders that use the domain before changing an existing policy; see [SPF, DKIM and DMARC](/docs/email-authentication).
4. Add the return-path and any tracking records displayed by AhaSend, using the same CNAME name mapping. Preserve your mailbox MX records unless you are deliberately configuring [inbound routing](/docs/integrations/routing).

For a sending subdomain such as `notify.example.com` in the `example.com` zone, use `notify` for SPF, `_dmarc.notify` for DMARC, and `managed._domainkey.notify` for that example DKIM name. If `notify.example.com` has its own delegated zone, names are relative to that zone instead.

## Verify the Records in AhaSend

Save the changes, then open the sending domain in AhaSend and click **Check DNS**. Compare each saved full hostname, record type and value with the dashboard. Most records verify within minutes. DNS changes can take up to 48 hours to propagate.

If a check fails, look for a repeated domain suffix, a CNAME at the wrong name, a missing record, or changes made at a DNS provider that does not serve the current nameservers. The [troubleshooting guide](/docs/troubleshooting) explains how to narrow down a failed check.

## Related Guides

* [Domain setup and required records](/docs/domains), [email authentication](/docs/email-authentication), [all DNS providers](/docs/dns).
* [Create an API key](/docs/send-api/credentials), [send with the API](/docs/send-api/send-email), [SMTP settings](/docs/smtp), [Node.js SDK](/docs/guides/nodejs-sdk) and [domain CLI](/docs/cli/commands/domains).
* [DNS check API](/docs/api-reference/domains/check-dns), [deliverability](/docs/deliverability) and [troubleshooting](/docs/troubleshooting).
