swagger: '2.0'
info:
title: Abuse Actions Domains API
version: 2.0.0
description: <strong>GoDaddy Abuse API Terms of Use:</strong><p>GoDaddy’s Abuse API is provided to simplify and standardize the abuse reporting experience. To help us streamline the review of abuse reports, you acknowledge and agree that your use of GoDaddy’s Abuse API is subject to the following quality metrics and terms of use.</p><p>GoDaddy may, in its sole and absolute discretion, change or modify these terms, and such changes or modifications shall be effective immediately upon notice to you. Your use of GoDaddy’s Abuse API after such changes or modifications shall constitute your acceptance of these terms as last revised. If you do not agree to be bound by these terms as last revised, do not use (or continue to use) our Abuse API.</p><p>As an Abuse API user, you must only submit abuse reports via the API portal and cease all email submissions, including but not limited, to phishing@godaddy.com, netabuse@godaddy.com, malware@godaddy.com, or spam@godaddy.com, etc. Any additional or duplicate submission outside of the API portal will be deprioritized for review. Submissions related to trademark, copyright or content issues may still be sent to trademarkclaims@godaddy.com, coyprightclaims@godaddy.com, and contentcomplaints@godaddy.com, respectively. Our [Front of Site](https://supportcenter.godaddy.com/AbuseReport) also describes other scenarios not covered by the API.</p><p>When you submit abuse reports via GoDaddy’s Abuse API, you must ensure that you accurately categorize the abuse type of each report to match our definitions in the API documentations provided to you. Any submission that fails to match our definitions or is miscategorized will be marked as a false positive. Examples include, but are not limited to, submissions of trademark complaints marked as phishing or malware, or submissions of copyright complaints marked as phishing or malware, etc.</p><p>If, at any time, the false positive rate of submissions exceeds 40% of your total submissions, as determined by GoDaddy, GoDaddy may in its sole discretion deprioritize any subsequent reports submitted by you and/or your organization.</p><p>You acknowledge and agree that submitting every URL for a single domain is not necessary and will not expedite the review process. If your submissions exceed five (5) URLs for a single domain, your report will be marked as a duplicate submission taking into account that the final outcome of such submissions would yield the same result as the original report. GoDaddy may in its sole discretion deprioritize reports submitted by you and/or your organization in the event more than 20% of your submissions are classified as duplicate submissions.</p><p>You further acknowledge and agree that our Customer Support lines are not intended to address abuse reporting matters or your use of GoDaddy’s Abuse API. Contacting Customer Support will not expedite the review process and may result in abuse reports being deprioritized, to be determined in our sole discretion.</p><p>Should you have any questions about GoDaddy’s Abuse API or any of the terms and conditions set forth above, please contact abuseapisupport@godaddy.com.</p>
host: api.ote-godaddy.com
tags:
- name: Domains
description: ''
paths:
/v2/customers/{customerId}/domains/{domain}:
get:
tags:
- Domains
produces:
- application/json
summary: Retrieve details for the specified Domain
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain name whose details are to be retrieved
name: domain
in: path
required: true
type: string
- name: includes
required: false
in: query
type: array
items:
enum:
- actions
- contacts
- dnssecRecords
- registryStatusCodes
type: string
description: Optional details to be included in the response
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/DomainDetailV2'
'203':
description: Request was partially successful, but actions, contacts, and/or verifications may not be included.
schema:
$ref: '#/definitions/DomainDetailV2'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The contact does not exist
schema:
$ref: '#/definitions/Error'
'422':
description: '`domain` must be specified'
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/changeOfRegistrant:
delete:
tags:
- Domains
summary: Cancels a pending change of registrant request for a given domain
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain whose change of registrant is to be cancelled
name: domain
in: path
required: true
type: string
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/CHANGE_OF_REGISTRANT_DELETE to poll status
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The contact does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: '`domain` must be specified'
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
'502':
description: Dependent service unavailable
schema:
$ref: '#/definitions/Error'
get:
tags:
- Domains
produces:
- application/json
summary: Retrieve change of registrant information
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain whose change of registrant information is to be retrieved
name: domain
in: path
required: true
type: string
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/DomainChangeOfRegistrant'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The contact does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: '`domain` must be specified'
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
'502':
description: Dependent service unavailable
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/dnssecRecords:
patch:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Add the specifed DNSSEC records to the domain
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain to add the DNSSEC record for
name: domain
in: path
required: true
type: string
- description: DNSSEC records to add
name: body
in: body
required: true
schema:
items:
$ref: '#/definitions/DomainDnssec'
type: array
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/DNSSEC_CREATE to poll status
'400':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'401':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Request body doesn't fulfill schema, see details in `fields`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
delete:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Remove the specifed DNSSEC record from the domain
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain to delete the DNSSEC record for
name: domain
in: path
required: true
type: string
- description: DNSSEC records to remove
name: body
in: body
required: true
schema:
items:
$ref: '#/definitions/DomainDnssec'
type: array
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/DNSSEC_DELETE to poll status
'400':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'401':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Request body doesn't fulfill schema, see details in `fields`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/nameServers:
put:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Replaces the existing name servers on the domain.
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain whose name servers are to be replaced
name: domain
in: path
required: true
type: string
- description: Name server records to replace on the domain
name: body
in: body
required: true
schema:
$ref: '#/definitions/DomainNameServerUpdateV2'
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/DOMAIN_UPDATE_NAME_SERVERS to poll status
'400':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'401':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Request body doesn't fulfill schema, see details in `fields`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/privacy/forwarding:
get:
tags:
- Domains
produces:
- application/json
summary: Retrieve privacy email forwarding settings showing where emails are delivered
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain name whose details are to be retrieved
name: domain
in: path
required: true
type: string
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/DomainPrivacyForwarding'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'422':
description: '`domain` must be specified'
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
patch:
tags:
- Domains
produces:
- application/json
summary: Update privacy email forwarding settings to determine how emails are delivered
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain name whose details are to be retrieved
name: domain
in: path
required: true
type: string
- description: Update privacy email forwarding settings
in: body
name: body
required: true
schema:
$ref: '#/definitions/DomainPrivacyForwardingUpdate'
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/PRIVACY_FORWARDING_UPDATE to poll status
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Request body doesn't fulfill schema, see details in `fields`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/redeem:
post:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Purchase a restore for the given domain to bring it out of redemption
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain to request redeem for
name: domain
in: path
required: true
type: string
- description: Options for redeeming existing Domain
name: body
in: body
required: false
schema:
$ref: '#/definitions/DomainRedeemV2'
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/REDEEM to poll status
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Domain invalid
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/renew:
post:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Renew the specified Domain
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain to be renewed
name: domain
in: path
required: true
type: string
- description: Options for renewing existing Domain
name: body
in: body
required: true
schema:
$ref: '#/definitions/DomainRenewV2'
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/RENEW to poll status
'400':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Request body doesn't fulfill schema, see details in `fields`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/transfer:
post:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Purchase and start or restart transfer process
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain to transfer in
name: domain
in: path
required: true
type: string
- description: Details for domain transfer purchase
name: body
in: body
required: true
schema:
$ref: '#/definitions/DomainTransferInV2'
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER to poll status
'400':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Based on restrictions declared in JSON schema returned by `./schema/{tld}`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
get:
tags:
- Domains
produces:
- application/json
summary: Query the current transfer status
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain Name
name: domain
in: path
required: true
type: string
responses:
'200':
description: Request was successful
schema:
$ref: '#/definitions/DomainTransferStatus'
'400':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/transfer/validate:
post:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Validate the request body using the Domain Transfer Schema for the specified TLD
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
in: path
name: customerId
required: true
type: string
- description: Domain to transfer in
name: domain
in: path
required: true
type: string
- description: Details for domain transfer purchase
name: body
in: body
required: true
schema:
$ref: '#/definitions/DomainTransferInV2'
responses:
'204':
description: Request was successful
'400':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
$ref: '#/definitions/Error'
'404':
description: The domain does not exist
schema:
$ref: '#/definitions/Error'
'409':
description: There is already a similar action processing
schema:
$ref: '#/definitions/Error'
'422':
description: Based on restrictions declared in JSON schema returned by `./schema/{tld}`
schema:
$ref: '#/definitions/Error'
'429':
description: Too many requests received within interval
schema:
$ref: '#/definitions/ErrorLimit'
'500':
description: Internal server error
schema:
$ref: '#/definitions/Error'
/v2/customers/{customerId}/domains/{domain}/transferInAccept:
post:
tags:
- Domains
consumes:
- application/json
produces:
- application/json
summary: Accepts the transfer in
parameters:
- name: X-Request-Id
required: false
in: header
type: string
description: A client provided identifier for tracking this request.
- name: customerId
required: true
in: path
type: string
description: 'The Customer identifier<br/> Note: For API Resellers, performing actions on behalf of your customers, you need to specify the Subaccount you''re operating on behalf of; otherwise use your shopper id.'
- name: domain
required: true
in: path
type: string
description: Domain to accept the transfer in for
- name: body
in: body
description: An Authorization code for transferring the Domain
required: true
schema:
$ref: '#/definitions/DomainTransferAuthCode'
responses:
'202':
description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_IN_ACCEPT to poll status
'400':
description: Request was malformed
schema:
$ref: '#/definitions/Error'
'401':
description: Authentication info not sent or invalid
schema:
$ref: '#/definitions/Error'
'403':
description: Authenticated user is not allowed access
schema:
# --- truncated at 32 KB (134 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/godaddy/refs/heads/main/openapi/godaddy-domains-api-openapi.yml