Skip to main content

npmctl-godaddy

GoDaddy DNS provider plugin for npmctl

Extend npmctl with GoDaddy-backed DNS record management for declarative workflows, provider discovery, and DNS-aware automation.

PyPI version Python versions CI SSOT governed Apache 2.0 License

npmctl-godaddy package hits npmctl-godaddy downloads

npmctl architecture infographic

npmctl-godaddy is the GoDaddy DNS provider package for npmctl. Install it when you want desired-state DNS records or DNS diagnostics to resolve through GoDaddy instead of using only the base npmctl package.

Supported Python Versions

npmctl-godaddy supports Python 3.10, 3.11, 3.12, 3.13, and 3.14.

Why npmctl-godaddy

  • Adds GoDaddy DNS provider discovery to npmctl
  • Lets DNS workflows live beside proxy and certificate desired state
  • Keeps GoDaddy API keys out of the core CLI package
  • Supports operator diagnostics through npmctl dns doctor
  • Documents GoDaddy's record-set replacement behavior for safer automation

FAQ

What is npmctl-godaddy?

Answer: npmctl-godaddy is a plugin package that teaches npmctl how to talk to the GoDaddy Domains API for DNS record operations and DNS provider diagnostics.

When do I need npmctl-godaddy?

Answer: You need npmctl-godaddy when your npmctl workflow includes GoDaddy-managed DNS records or when you want npmctl to validate GoDaddy DNS connectivity and credentials.

Does npmctl-godaddy work without npmctl?

Answer: No. npmctl-godaddy is an extension package for npmctl, not a standalone CLI.

Can npmctl-godaddy set DNS records?

Answer: Yes. The GoDaddy provider supports declarative A, AAAA, CNAME, TXT, MX, SRV, and CAA writes. MX records require priority. Its DNS mutation endpoint replaces all records for one {type, name} pair, so preserve existing values when managing multi-value records.

What credentials are required?

Answer: GoDaddy API access requires GODADDY_API_KEY and GODADDY_API_SECRET. Account protection, domain locks, or product eligibility can still block DNS mutations even when credentials are valid.

Install

Install the base CLI and the GoDaddy provider package together:

pipx install npmctl
pipx inject npmctl npmctl-godaddy
npmctl plugins list

With uv:

uv tool install npmctl
uv tool install npmctl-godaddy
npmctl plugins list

Inside a virtual environment:

python -m venv .venv
. .venv/bin/activate
python -m pip install npmctl npmctl-godaddy
npmctl plugins list

Configure GoDaddy

Set the required environment variables:

export GODADDY_API_KEY=your-api-key
export GODADDY_API_SECRET=your-api-secret

Optional for tests or alternate endpoints:

export GODADDY_API_BASE_URL=https://api.godaddy.com

Verify Plugin Discovery

Check that npmctl can discover the provider:

npmctl plugins list
npmctl dns doctor --provider godaddy

Minimal DNS Workflow

Once the provider is installed and configured, npmctl can validate, plan, apply, or diagnose GoDaddy-backed DNS behavior through the base CLI:

npmctl validate desired-state/dns.yaml
npmctl plan desired-state/dns.yaml --owner site-a
npmctl apply desired-state/dns.yaml --owner site-a
npmctl dns providers
npmctl dns zones --provider godaddy
npmctl dns records --provider godaddy --zone example.com

GoDaddy API Surface

The provider follows the GoDaddy Domains API DNS record surface:

  • GET /v1/domains: discover domains in the account.
  • GET /v1/domains/{domain}/records: list all DNS records for one domain.
  • GET /v1/domains/{domain}/records/{type}/{name}: list records for one type and name.
  • PUT /v1/domains/{domain}/records/{type}/{name}: replace the full record set for one type and name.
  • DELETE /v1/domains/{domain}/records/{type}/{name}: delete records for one type and name.

Programmatic Record Operations

create_record() is a convenience wrapper that replaces a {type, name} pair with one record. Use replace_records() when preserving multiple values for the same record name and type:

from npmctl_godaddy import GoDaddyClient, GoDaddyConfig

client = GoDaddyClient(GoDaddyConfig.from_env())
client.create_record("example.com", type="A", name="www", value="192.0.2.10", ttl=600)
client.replace_records(
    "example.com",
    type="CNAME",
    name="app",
    records=[{"data": "target.example.net", "ttl": 600}],
)
client.delete_records("example.com", type="A", name="www")

Safety Notes

  • GoDaddy PUT replaces all records for the selected {type, name} pair.
  • Account-level domain locks, premium DNS status, protection settings, or product eligibility may block API changes even when credentials are valid.
  • Use least-privilege keys where available and avoid broad automation over unrelated domains.
  • Use npmctl owner metadata for desired DNS records so apply remains owner-scoped.

More Documentation

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

npmctl_godaddy-0.4.1.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

npmctl_godaddy-0.4.1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file npmctl_godaddy-0.4.1.tar.gz.

File metadata

  • Download URL: npmctl_godaddy-0.4.1.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for npmctl_godaddy-0.4.1.tar.gz
Algorithm Hash digest
SHA256 c30c81950319c0c4fd70ff67bd84e84261a0fa5070a92cc4ff0c69ee9f659abf
MD5 509b5d42b4b73044964bb1190cf23ff3
BLAKE2b-256 61cbdf8bb110becdb2664a3bda29e1f03dc71222b6db6b8c6418f01b8c2a2393

See more details on using hashes here.

File details

Details for the file npmctl_godaddy-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: npmctl_godaddy-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for npmctl_godaddy-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c8ef6735f65bcd519fd254a66b9a9c79d61bcf636ff7e144b8cfd68570eaf03
MD5 e144cc980142eb43f8bfcf00b15efb03
BLAKE2b-256 e19f125a38397ad660048978c5b8e4e385e1cd0d26ca30f93216657a88475699

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.3.10

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page