Skip to main content

Overview

To send emails from your own domain (e.g. [email protected]), you need to:
  1. Add the domain via the API
  2. Configure 4 DNS records at your DNS provider
  3. Verify the domain
Once verified, your domain is authenticated with SPF, DKIM, and DMARC — which significantly improves deliverability and prevents spoofing.

Step 1: Add a domain

curl -X POST https://api.mail.gorillaa.one/v1/domains \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "yourdomain.com" }'

Response

{
  "data": {
    "id": "dom_abc123",
    "domain": "yourdomain.com",
    "subdomain": null,
    "verification_status": "pending",
    "verified_at": null,
    "dkim_selector": "gorillaa",
    "dkim_status": null,
    "warming_status": "not_started",
    "warming_current_limit": null,
    "reputation_score": null,
    "is_default": false,
    "records": [
      {
        "type": "TXT",
        "host": "_gorillaa-verify.yourdomain.com",
        "value": "gorillaa-verify=a1b2c3d4e5f6...",
        "priority": null,
        "purpose": "verification",
        "verified": false
      },
      {
        "type": "CNAME",
        "host": "gorillaa._domainkey.yourdomain.com",
        "value": "gorillaa._domainkey.yourdomain.com.mail.gorillaa.one",
        "priority": null,
        "purpose": "dkim",
        "verified": false
      },
      {
        "type": "TXT",
        "host": "yourdomain.com",
        "value": "v=spf1 include:_spf.mail.gorillaa.one ~all",
        "priority": null,
        "purpose": "spf",
        "verified": false
      },
      {
        "type": "TXT",
        "host": "_dmarc.yourdomain.com",
        "value": "v=DMARC1; p=none; rua=mailto:[email protected]",
        "priority": null,
        "purpose": "dmarc",
        "verified": false
      }
    ],
    "created_at": "2026-02-09T12:00:00Z",
    "updated_at": "2026-02-09T12:00:00Z"
  }
}

Step 2: Configure DNS records

Add these 4 records at your DNS provider (e.g. Cloudflare, Route 53, GoDaddy):
#TypeHost / NameValuePurpose
1TXT_gorillaa-verify.yourdomain.comgorillaa-verify=a1b2c3...Domain ownership verification
2CNAMEgorillaa._domainkey.yourdomain.comgorillaa._domainkey.yourdomain.com.mail.gorillaa.oneDKIM signing
3TXTyourdomain.comv=spf1 include:_spf.mail.gorillaa.one ~allSPF authorization
4TXT_dmarc.yourdomain.comv=DMARC1; p=none; rua=mailto:...DMARC policy
SPF: If you already have an SPF record, add include:_spf.mail.gorillaa.one to your existing record instead of creating a new one. Only one SPF record is allowed per domain.
Cloudflare: Go to DNS → Add Record. Set type, name, and content. Proxy must be off (DNS only) for CNAME records.Route 53: Go to Hosted Zones → your domain → Create Record. Use “Simple routing” for each record.GoDaddy: Go to My Products → DNS → Add Record. For the host field, use just the subdomain part (e.g. _gorillaa-verify instead of the full hostname).

Step 3: Verify the domain

After configuring DNS records (allow up to 48 hours for propagation), trigger verification:
curl -X POST https://api.mail.gorillaa.one/v1/domains/dom_abc123/verify \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

{
  "data": {
    "success": true,
    "status": "verified",
    "domain_verified": true,
    "dkim_verified": true,
    "errors": []
  }
}
If verification fails, success will be false and the errors array will describe which checks failed:
{
  "data": {
    "success": false,
    "status": "pending",
    "domain_verified": false,
    "dkim_verified": false,
    "errors": [
      "TXT verification record not found",
      "DKIM CNAME record not found"
    ]
  }
}
Verification requires the TXT record (_gorillaa-verify). DKIM is checked separately via its CNAME record. We strongly recommend configuring all four DNS records for best deliverability.

Domain warming

New domains start with limited daily sending capacity that gradually increases:
DayDaily limit
120
240
380
4160
5320
6640
71,280
142,560
215,120
2810,000
35+Unlimited
The warming status is visible in the domain response (warming_status field):
StatusMeaning
not_startedDomain verified but no emails sent yet
warmingActive warming — limits are gradually increasing
warmedDomain is fully warmed, no volume restrictions
pausedWarming paused due to high bounce/complaint rate
If your bounce rate exceeds thresholds during warming, the process is automatically paused to protect your sender reputation. Investigate bounces before resuming.

DKIM key rotation

Rotate your DKIM signing keys without changing any DNS records:
curl -X POST https://api.mail.gorillaa.one/v1/domains/dom_abc123/rotate-dkim \
  -H "Authorization: Bearer YOUR_API_KEY"
Because DKIM is configured via a CNAME record pointing to Gorillaa’s infrastructure, we update the signing key on our side. No DNS changes needed. The old key remains valid for 48 hours to handle DNS propagation.

Set default domain

Make a domain the default sender for your organization:
curl -X POST https://api.mail.gorillaa.one/v1/domains/dom_abc123/set-default \
  -H "Authorization: Bearer YOUR_API_KEY"

List & delete domains

List all domains

curl https://api.mail.gorillaa.one/v1/domains \
  -H "Authorization: Bearer YOUR_API_KEY"
Response:
{
  "data": [ /* array of domain objects */ ],
  "total": 3
}

Delete a domain

curl -X DELETE https://api.mail.gorillaa.one/v1/domains/dom_abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"
Response:
{
  "success": true
}
Deleting a domain removes all associated DNS configurations. Emails already queued for this domain will still attempt delivery.