Domain registrars

GoDaddy Registrar — setup and reference

Configure GoDaddy Registrar credentials, contacts, domain actions, confirmation and registry limitations.

Platform
Laravel / PHP
Laravel
13
PHP
8.4
Database
Dedicated MySQL-compatible production database

Module and release scope

This guide covers GoDaddy Registrar 1.0.0, Extension API 1, from the reviewed product source. Its declared core range is 1.3.6–1.3.99. Use the matching released core and signed provider package; a version label alone does not install the required contracts. Source availability does not mean the module is bundled in every currently downloadable product, installed on your server, enabled or certified for your merchant/server account. Nothing in this guide enables a provider or changes your existing connections.

Open System → Domain registrars (newer source may group these as Payments, Domain services or Hosting services). Install the reviewed signed package through Modules & addons or the integration workspace's Install tab, enable the module separately, add an account/connection, save its own credentials, run its stated Test and explicitly enable the connection. Saving or retesting disables the connection until you enable it again. Start with the provider's test environment where supported; otherwise use an isolated account or server.

Exact connection fields

These are the fields declared by this module. Secret values are entered privately and encrypted by the application. Defaults are configuration hints, not approved live merchant settings. Internal fields are populated by the module and are not operator-editable.

Key / label Type Required Default / guidance
environment — Environment select Yes Default: "sandbox" Choices: sandbox = OTE sandbox, live = Live classic API
api_key — Classic API key secret Yes Use the account-specific value described below.
api_secret — Classic API secret secret Yes Use the account-specific value described below.
shopper_id — Shopper ID (optional delegated account) text No Use the account-specific value described below.
price_currency — Registration price limit currency text No Default: "USD"
registration_limit_micros — Maximum registration price in micro units text No Required for registration. One currency unit equals 1,000,000 micro units. Enter your own approved limit.
allow_writes — Allow domain purchases and changes boolean No Default: false
allow_automated_renewals — Allow paid-invoice automated renewals boolean No Default: false

This package uses GoDaddy's documented classic v1 Domains API with API key and secret. It does not use the separate v3 beta platform or personal access tokens. Installation leaves it disabled. Enable it, configure a connection and run the read-only account test before enabling purchases. OTE sandbox and production use separate credentials.

Account and authentication

Create classic API credentials in the GoDaddy developer portal. Select OTE sandbox or live to match the credentials. Endpoints are fixed to https://api.ote-godaddy.com and https://api.godaddy.com. An optional shopper ID supports an account you are authorized to manage. GoDaddy controls API eligibility: its classic availability API currently requires an eligible account (the official getting-started guide lists 50 or more domains); purchases require a funded Good as Gold account. API access alone does not establish purchase eligibility. Test reads the account's domain inventory with a one-record limit, never placing an order.

All transports use HTTPS, bounded timeouts and response size, no redirects and no automatic retries. This module uses readback synchronization rather than webhooks.

Purchase prerequisites

Registration requires a fresh definitive availability response, complete customer contact, two distinct nameservers, and your configured maximum registration price in micro units with the matching currency. One currency unit is 1,000,000 micro units. Enter your own approved limit. Classic availability does not reliably distinguish premium names; the module never claims a premium flag from that response and refuses prices over this limit. Registration can proceed only when the quoted period equals the ordered term; classic availability commonly quotes one year. A multi-year order without the same quoted term is held for review.

GoDaddy requires actual legal consent. First retrieve and present the agreements from GET /v1/domains/agreements for the relevant TLD and operation. After acceptance by an authorized person, supply the following in the domain tool's optional provider options (replace every placeholder with actual recorded acceptance):

{"consent":{"agreementKeys":["ACTUALLY_ACCEPTED_KEY"],"agreedBy":"ACTUAL_CONSENTING_CLIENT_IP","agreedAt":"ACTUAL_UTC_TIMESTAMP"}}

agreedAt must be a valid past UTC timestamp in YYYY-MM-DDTHH:MM:SSZ form. Every currently required agreement must be included. This module does not automatically accept agreements or invent the consent IP or time. Agreement display and the acceptance record remain the operator's responsibility.

Transfers use one year and require auth_code, actual consent, and non_premium: true in provider options after an administrator has checked the registrar's transfer pricing. This explicit review is necessary because the classic API has no reliable premium-transfer discriminator/price cap in the transfer request. Renewals likewise require non_premium: true after checking the remote domain's renewal classification and fee. These manual review requirements are not bypassed by the automated-renewal switch. Never mark a premium domain non-premium; complete it in the registrar dashboard with a separately reviewed price.

Supported operations

Availability; registration; transfer in; renewal; synchronization; nameservers; lock/unlock; and EPP retrieval. Contacts are mapped from the actual domain customer's saved profile to all four contact roles; missing contacts cannot fall back to the merchant account. Nameservers and lock updates are verified by an immediate readback. Domains requiring 2FA, special TLD eligibility, protected-domain changes or unsupported account permissions must be completed in GoDaddy's dashboard.

A successful purchase response alone does not activate a service. Accepted transfers remain pending until synchronization. Registration needs a matching owned domain, active remote status, valid expiry covering the full term, and the intended contact and nameservers. Renewal confirms only when remote expiry covers the full newly purchased term. After a timeout or uncertain purchase, synchronize and inspect the GoDaddy order before another submission; the product retains uncertainty to prevent duplicate purchases. Provider diagnostics expose safe errors, never authentication headers, contacts or EPP codes.

Provider documentation

← All EmailaBiller guidesGet help →

Need help with EmailaBiller?

Tell us the product version and what you are trying to do. Keep passwords and private keys out of your message.

Contact Emaila