Skip to content
Back to skills

Ops Godaddy

ASecurity

GoDaddy DNS operations via the API: diagnose mail-auth (SPF/DKIM/DMARC/MX), put records, replace whole zones. Use when the user says "godaddy", "dns records", "spf", "dmarc", "dkim", "mx records", "email bouncing", "domain verification", or asks to fix mail authentication for a GoDaddy-managed domain.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
developmentpythongobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add grahama1970/agent-skills --skill ops-godaddy --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ops Godaddy?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ops Godaddy
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/grahama1970-ops-godaddy/badge)](https://www.skillsdirectory.com/skills/grahama1970-ops-godaddy)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ops-godaddy
description: >
  GoDaddy DNS operations via the API: diagnose mail-auth (SPF/DKIM/DMARC/MX),
  put records, replace whole zones. Use when the user says "godaddy", "dns
  records", "spf", "dmarc", "dkim", "mx records", "email bouncing", "domain
  verification", or asks to fix mail authentication for a GoDaddy-managed
  domain.
triggers:
  - fix dmarc bounce
  - update godaddy dns records
  - check spf dkim dmarc
  - godaddy dns
  - email bouncing domain policy
  - set mx records google workspace
provides:
  - dns-management
composes:
  - agentic-evals
complies:
  - best-practices-skills
  - best-practices-python
taxonomy:
  - resilience
  - precision
---
# ops-godaddy

DNS record operations for GoDaddy-managed domains, via the public API —
never the web UI (it demands per-mutation SMS step-up verification; the
API does not).

## Token (one time, ~60s, browser)

1. In the authenticated Chrome session, open `developer.godaddy.com/keys`.
2. Generate Token: name it, scope `domains.dns:update`, 30-day expiry.
   (Generate twice if the first click does not submit.)
3. Copy the `gd_pat_...` value ONCE, then `export GODADDY_PAT=...` or put
   it in the skill's `.env`.
4. Token semantics: **write-only** (reads 401) — that is normal for
   dns:update scope; verification reads use `dig`, not the API.

## Commands

```bash
./run.sh diagnose --domain grahama.co          # SPF/DKIM/DMARC/MX at the authoritative NS + verdict
./run.sh put-record --domain grahama.co --rtype TXT --name @ --data "v=spf1 include:_spf.google.com ~all"
./run.sh put-zone --domain grahama.co --zone-file zone.json   # FULL replacement; omit-to-delete
```

## The four API traps (each verified live 2026-09-11)

| Trap | Symptom | Correct move |
|---|---|---|
| Zone PUT needs NS | 422 MISSING_NAME_SERVER | body must contain >= 2 NS records (enforced by our pydantic Zone) |
| PATCH appends | 422 DUPLICATE_RECORD | never PATCH; use zone-wide PUT |
| PUT `[]` does not delete | 200, record persists | delete by zone-wide PUT omitting the record |
| DELETE verb | 409 CONFLICTING_STATUS | same: zone-wide PUT omitting the record |

## Verification

`dig @<ns1> <TYPE> <domain>` against the authoritative nameserver is
instant truth — no TTL wait. `diagnose` does this for mail-auth.

## Google Workspace mail fix recipe (proven)

1. `diagnose` → confirm `spf_does_not_authorize_gmail`.
2. put-record TXT @ `v=spf1 include:_spf.google.com ~all`
3. put-record MX @ the 5 records: aspmx(1), alt1/2(5), alt3/4(10), ttl 600.
4. Zone PUT with everything except stale-provider remnants (old SPF
   delegates, foreign DKIM selectors, verify CNAMEs) — this deletes them.
5. `diagnose` again → `google_workspace_send_ok`. DMARC stays `p=quarantine`.
6. Optional defense-in-depth: DKIM key from Workspace admin
   (Apps → Gmail → Authenticate email), publish `google._domainkey` TXT.

## Failure posture

Missing token → typed `missing_token` JSON with the fix, exit 2. API
non-200 → exit 1 with body excerpt. No bare failures.

Files in this skill

  • .env.example76 B
  • SKILL.md3 KB
  • fixtures/agentic_eval.json2.1 KB
  • run.sh151 B
  • sanity.sh827 B
  • scripts/godaddy_dns.py6.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…