How to register and configure a domain
View as MarkdownEnd-to-end workflow — search for a domain, register it, configure DNS, and verify the setup.
Overview
This workflow walks through the complete domain lifecycle from search to live configuration. By the end, you'll have a registered domain with DNS records serving traffic. Code examples are available in curl, Node, Python, and Go.
Prerequisites
The following prerequisites are required before you register and configure a domain:
- A GoDaddy account with a payment profile configured
- A Personal Access Token with
domains.domain:read,domains.domain:create, anddomains.dns:updatescopes, exported asGODADDY_PAT; also exportBASE=https://api.godaddy.comfor the multi-language examples - A terminal with
curl, or Node.js, Python, or Go
Search for an available domain
The following procedure checks whether your desired domain is available for registration.
- Check availability:
curl -s "https://api.godaddy.com/v3/domains/check-availability?domain=your-idea.com" \
-H "Authorization: Bearer $GODADDY_PAT"Note
If available is true, proceed to quoting. If false, use the suggestions endpoint to find alternatives.
- Get suggestions:
curl -s "https://api.godaddy.com/v3/domains/suggestions?query=your+idea&tlds=com,net,io&pageSize=10" \
-H "Authorization: Bearer $GODADDY_PAT"Go to Search domain availability for the full parameter reference.
Get a registration quote
The following procedure locks in a price by requesting a quote. The quoteToken in the response is valid for 10 minutes.
- Request a quote:
curl -s -X POST "https://api.godaddy.com/v3/domains/registration-quotes" \
-H "Authorization: Bearer $GODADDY_PAT" \
-H "Content-Type: application/json" \
-d '{
"domain": "your-idea.com",
"period": 1
}'- Note the
quoteTokenandrequiredAgreementsfrom the response — you'll need both for the next step. The GoDaddy CLI stores the token and handles agreement acceptance automatically through--agree.
Execute the registration
The following procedure submits the registration using the quote token and ICANN consent.
Registration applies charges to your payment profile and is not reversible. Verify the domain name and quoted price before executing.
- Submit the registration:
curl -s -X POST "https://api.godaddy.com/v3/domains/registrations" \
-H "Authorization: Bearer $GODADDY_PAT" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"quoteToken": "<QUOTE_TOKEN>",
"domain": "your-idea.com",
"period": 1,
"consent": {
"agreedAt": "2026-01-15T10:30:00.000Z",
"agreementTypes": ["API_DPA"]
}
}'Go to Register a domain for the full field reference and error handling.
Poll until complete
The following procedure polls the registration status. Registration is asynchronous. Poll the returned operation URL until the status reaches a terminal state. The following table lists the possible statuses:
| Status | Meaning |
|---|---|
CONFIRMED | Accepted, processing. Keep polling. |
EXECUTING | In progress. Keep polling. |
COMPLETED | Registration succeeded. |
FAILED | Registration failed. Check error for details. |
CLI users
The GoDaddy CLI polls automatically after gddy domain purchase and exits when registration reaches a terminal state. No manual polling required.
- Poll the registration:
curl -s "$BASE/v3/domains/registrations/<REGISTRATION_ID>" \
-H "Authorization: Bearer $GODADDY_PAT"Add DNS records
The following procedure adds DNS records to point the domain at your infrastructure. Run these after registration completes.
- Add an A record for the apex:
curl -s -X POST "https://api.godaddy.com/v3/domains/zones/your-idea.com/dns-records" \
-H "Authorization: Bearer $GODADDY_PAT" \
-H "Content-Type: application/json" \
-d '{ "type": "A", "name": "@", "data": "192.0.2.1", "ttl": 600 }'- Add additional records as needed (CNAME for
www, MX for email, TXT for verification):
curl -s -X POST "https://api.godaddy.com/v3/domains/zones/your-idea.com/dns-records" \
-H "Authorization: Bearer $GODADDY_PAT" \
-H "Content-Type: application/json" \
-d '{ "type": "CNAME", "name": "www", "data": "your-idea.com", "ttl": 600 }'Go to Manage DNS records for the full record type reference.
Verify DNS propagation
The following procedure verifies that your DNS records were created and are propagating.
- List your records to confirm they were created:
curl -s "https://api.godaddy.com/v3/domains/zones/your-idea.com/dns-records" \
-H "Authorization: Bearer $GODADDY_PAT"DNS changes propagate within minutes for GoDaddy-hosted nameservers. External resolvers may cache the old state for up to the previous TTL value.
Agent & Automation Notes
domains.domain:read, domains.domain:create, domains.dns:updateRelated
Last updated on
How is this guide?