GoDaddy vs Namecheap vs Porkbun API Compared

GoDaddy vs Namecheap vs Porkbun API Compared

Nov 09, 2026 api dns domains developers godaddy namecheap porkbun

Short answer: GoDaddy, Namecheap and Porkbun all have a domain and DNS API, but the rules for getting in differ a lot. Namecheap only enables its API for accounts with 20 domains, a $50 balance or $50 spent in two years, and only from whitelisted IPv4 addresses. GoDaddy needs one domain and a Personal Access Token, and has no test environment. Porkbun gives a key to anyone but makes you switch API access on for each domain. This post compares the three from their own documentation (checked November 2026), shows how to add a DNS record with each, and shows the same thing with the NameOcean API.

The three APIs side by side

GoDaddyNamecheapPorkbun
Who gets accessAn account with at least one domain (or a plan that includes management)20+ domains, or a $50 balance, or $50 spent in the last 2 yearsAny account; API access must be turned on per domain (or for all domains in account settings)
AuthenticationPersonal Access Token: Authorization: Bearer …. The old sso-key key:secret does not work with v3API key plus your username, from whitelisted IPv4 addresses onlyAPI key and secret, in the JSON body or in X-API-Key / X-Secret-API-Key headers
Rate limit600 requests per ~23-minute window per credential, "subject to change"50/minute, 700/hour, 8,000/day per keyPer endpoint; availability checks are throttled for accounts that scan without registering
Test environmentNone: "all requests go to production"Separate sandbox site and accountSandbox keys (pk1_sb_) with fake credit
Registering a domainQuote, then execute with an Idempotency-Key, then poll; charged to the billing method on fileThrough the domains.create methodPaid from prepaid credit; you send the expected price in cents; $100 maximum per registration
DNS recordsAdd, replace and delete single records (v3)Through the domains.dns methodsCreate, edit and delete by ID or by name and type; dryRun supported

Limits and requirements change; the links at the end go to each provider's current page.

Got an idea? Find the perfect domain for it

Our AI domain name generator suggests available names across hundreds of extensions. Free SSL, DNS and Whois privacy included.

GoDaddy API

GoDaddy's Domains API v3 covers registration, nameservers and DNS records. Renewals, transfers, contacts, forwarding and privacy are still on the older v1 and v2 APIs. To use it:

  1. Have at least one domain in the account. Registering through the API also needs a payment method on file or a funded Good as Gold balance.
  2. Create a Personal Access Token with the scopes you need, for example domains.dns:update for DNS writes.
  3. Call https://api.godaddy.com. There is no separate test server, so test with read calls or a domain you don't mind changing.

Adding an A record:

curl -X POST https://api.godaddy.com/v3/domains/zones/example.com/dns-records \
  -H "Authorization: Bearer $GODADDY_PAT" \
  -H "Content-Type: application/json" \
  -d '{"name": "@", "type": "A", "data": "203.0.113.10", "ttl": 3600}'

Changing a record is a PUT on its ID with every writable field; partial updates are not supported. Each response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers.

Namecheap API

Namecheap's API is the hardest of the three to get into. You must meet one of three conditions first:

  • at least 20 domains in the account,
  • at least $50 on the account balance, or
  • at least $50 spent in the last two years.

Then enable API access in the account, and whitelist at least one IP address. Only IPv4 addresses can be whitelisted, so calls from a laptop on a changing IP, a CI runner or an IPv6-only server need a fixed IPv4 egress or a proxy. Your account username acts as the API user. The limit is 50 calls a minute, 700 an hour and 8,000 a day across the whole key.

Namecheap has a sandbox at sandbox.namecheap.com. It is a separate site with its own account, so you sign up there before you can test.

Porkbun API

Porkbun gives every account an API, with keys created under Account → API Access. A key can be limited to certain permissions, domains and IP addresses, and the secret is shown once. The catch: each domain must be opted in to API access, from the domain's details or for all domains in account settings. A call on a domain that isn't returns API_ACCESS_DISABLED.

Adding an A record (the base URL moved to api.porkbun.com in 2025):

curl -X POST https://api.porkbun.com/api/json/v3/dns/create/example.com \
  -H "Content-Type: application/json" \
  -d '{"apikey": "pk1_…", "secretapikey": "sk1_…",
       "name": "", "type": "A", "content": "203.0.113.10", "ttl": "3600"}'

Registration goes through /domain/create/{domain}, paid from prepaid credit. You send the current price in cents as cost and "agreeToTerms": "yes"; a single API registration can't exceed $100. Availability checks take up to 25 names per call.

The same with the NameOcean API

We built the NameOcean API so that anything you do in the dashboard can be done from code. What it takes:

  • Access: any account. No domain count or spend minimum, no IP whitelist. You need two-step login turned on to create a key.
  • Keys: as many as you like, created at Dashboard → API. Each has its own permissions (for example dns:write only), an optional expiry date and an optional list of allowed IPv4 or IPv6 addresses and ranges.
  • Limits: 120 requests a minute per account, with X-RateLimit-* headers on every response.
  • Safe retries: send an Idempotency-Key header on any write, and a retry returns the first answer instead of running twice.
  • Spec: an OpenAPI 3.1 document at /api/v1/openapi.json that Postman, Insomnia and Bruno can import.

There is no sandbox. Test with a key that only has read permissions, or with /domains/check, which tells you whether a name is free and what it costs without buying anything.

Check a domain and add an A record:

curl "https://nameocean.net/api/v1/domains/check?name=example.com" \
  -H "Authorization: Bearer $NAMEOCEAN_API_KEY"

curl -X POST https://nameocean.net/api/v1/dns/example.com/records \
  -H "Authorization: Bearer $NAMEOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "A", "hostname": "@", "ip": "203.0.113.10", "ttl": "1h"}'

Or with the nameocean CLI, after nameocean login:

nameocean domains check example.com
nameocean dns add example.com A @ 203.0.113.10 --ttl 5m
nameocean ssl issue example.com --wait

Registering is POST /api/v1/domains with {"name": "example.com", "years": 1}, paid from account credit; without enough credit the answer is 402 with the code insufficient_credit. The same API also manages SSL certificates and app servers, and AI tools such as Claude Code and Cursor can use it through our MCP server (nameocean mcp install). The MCP tools manage your domains but can't spend money.

Which one to use

  • Your domains are already at one of them and you only need DNS updates: use that registrar's API, or point the domain's nameservers to a DNS host with a good API.
  • You have a few domains and want API access today: Namecheap's 20-domain or $50 rule may lock you out; GoDaddy and Porkbun don't have one.
  • You call from CI, serverless functions or IPv6 servers: avoid IPv4-only whitelists.
  • You want domains, DNS, SSL and servers behind one key with per-key permissions: that is what the NameOcean API is for.

FAQ

Is the GoDaddy API free?

GoDaddy's developer documentation lists no fee for API calls. What you buy through the API, such as a registration, is charged to the account's payment method or Good as Gold balance, and a registration can't be reversed.

Why does the Namecheap API say my IP is invalid?

Calls are accepted only from whitelisted IPv4 addresses. Add the public IPv4 address of the machine making the call in the API access settings; if it changes, the calls stop working until you whitelist the new one.

Why does Porkbun return API_ACCESS_DISABLED?

The domain hasn't been opted in to API access. Turn on API access in the domain's details, or for all domains in your account settings.

Can I move a domain to a registrar with a better API?

Yes. Unlock the domain at the current registrar, get its transfer (auth) code and start a transfer at the new one. At NameOcean a transfer adds a year to the registration.

Sources

Want to try it? Read the API reference, or find a domain below and manage it from code from day one.

Got an idea? Find the perfect domain for it

Our AI domain name generator suggests available names across hundreds of extensions. Free SSL, DNS and Whois privacy included.

Read in other languages: