Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Abuse Actions V2 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>
servers:
- url: https://api.ote-godaddy.com
tags:
- name: v2
description: An incremental update that keeps the endpoints largely the same, but deprecates some commonly misused parameters and add some features to ensure reports can be worked quicker.
paths:
/v2/abuse/tickets:
get:
tags:
- v2
parameters:
- description: The type of abuse.
in: query
name: type
required: false
schema:
type: string
enum:
- A_RECORD
- CHILD_ABUSE
- CONTENT
- FRAUD_WIRE
- IP_BLOCK
- MALWARE
- NETWORK_ABUSE
- PHISHING
- SPAM
- description: Is this abuse ticket closed?
in: query
name: closed
required: false
schema:
type: boolean
default: false
- description: The domain name or ip address the abuse originated from
in: query
name: sourceDomainOrIp
required: false
schema:
type: string
format: host-name-or-ip-address
- description: 'The brand/company the abuse is targeting. ie: brand name/bank name'
in: query
name: target
required: false
schema:
type: string
- description: The earliest abuse ticket creation date to pull abuse tickets for
in: query
name: createdStart
required: false
schema:
type: string
format: iso-datetime
- description: The latest abuse ticket creation date to pull abuse tickets for
in: query
name: createdEnd
required: false
schema:
type: string
format: iso-datetime
- description: Number of abuse ticket numbers to return.
in: query
name: limit
required: false
schema:
type: integer
format: integer-positive
default: 100
maximum: 100
- description: The earliest result set record number to pull abuse tickets for
in: query
name: offset
required: false
schema:
type: integer
format: integer-positive
default: 0
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AbuseTicketList'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
operationId: getTicketsV2
summary: List all abuse tickets ids that match user provided filters
post:
tags:
- v2
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AbuseTicketId'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
operationId: createTicketV2
summary: Create a new abuse ticket
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AbuseTicketCreate'
description: The endpoint which allows the Reporter to create a new abuse ticket
required: true
/v2/abuse/tickets/{ticketId}:
get:
tags:
- v2
parameters:
- description: A unique abuse ticket identifier
in: path
name: ticketId
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AbuseTicket'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Invalid ticket id provided
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
operationId: getTicketInfoV2
summary: Return the abuse ticket data for a given ticket id
/v2/certificates:
get:
tags:
- v2
parameters:
- description: Entitlement id to lookup
in: query
name: entitlementId
required: true
schema:
type: string
- description: Fetch only the most recent certificate
in: query
name: latest
required: false
schema:
type: boolean
default: true
responses:
'200':
description: Certificate details retrieved
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Certificate'
'400':
description: Request was malformed
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'422':
description: Entitlement id not provided
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
description: Once the certificate order has been created, this method can be used to check the status of the certificate. This method can also be used to retrieve details of the certificates associated to an entitlement.
operationId: certificate_get_entitlement
summary: Search for certificate details by entitlement
post:
tags:
- v2
parameters:
- description: Setting locale for communications such as emails and error messages
in: header
name: X-Market-Id
required: false
schema:
type: string
default: Default locale for shopper account
responses:
'202':
description: Request was successful
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionCertificateIdentifier'
'400':
description: Request was malformed
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'409':
description: Certificate state does not allow renew
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'422':
description: '`email` is not empty<br>`csr` is invalid'
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
description: '<p>Creating a certificate order for a subscription can be a long running asynchronous operation in the PKI workflow. The PKI API supports 2 options for getting the completion stateful actions for this asynchronous operations: 1) by polling operations -- see /v1/certificates/{certificateId}/actions 2) via WebHook style callback -- see ''/v1/certificates/{certificateId}/callback''.</p>'
operationId: certificate_create
summary: Create a pending order for certificate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionCertificateCreate'
description: The certificate order information
required: true
/v2/certificates/{certificateId}/reissue:
post:
tags:
- v2
parameters:
- description: Certificate id to reissue
in: path
name: certificateId
required: true
schema:
type: string
responses:
'202':
description: Reissue request created
'400':
description: Request was malformed
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: Certificate id not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'409':
description: Certificate state does not allow reissue
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'422':
description: '`csr` is invalid<br>Delay revocation exceeds maximum'
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
description: <p>Rekeying is the process by which the private and public key is changed for a certificate. It is a simplified reissue,where only the CSR is changed. Reissue extends validity of the existing certificate by requesting a new certificate with all the same values as existing issued certificate. Once a request is validated and approved, the certificate will be reissued with the same common name and sans specified from existing certificate. Unlimited reissues are available during the lifetime of the certificate.If this API call is made before a previous pending reissue has been validated and issued, the previous reissue request is automatically rejected and replaced with the current request.</p>
operationId: certificate_reissue
summary: Reissue active certificate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CertificateReissueV2'
description: The reissue request info
/v2/certificates/download:
get:
tags:
- v2
parameters:
- description: Entitlement id to download
in: query
name: entitlementId
required: true
schema:
type: string
responses:
'200':
description: Certificate retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/CertificateBundle'
'400':
description: Request was malformed
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'401':
description: Authentication info not sent or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'403':
description: Authenticated user is not allowed access
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: Entitlement id not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'409':
description: Certificate state does not allow download
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'422':
description: Entitlement id not provided
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
operationId: certificate_download_entitlement
summary: Download certificate by entitlement
/v2/customers/{customerId}/certificates:
get:
tags:
- v2
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Customer certificate information retrieved.
content:
application/json:
schema:
$ref: '#/components/schemas/CertificateSummariesV2'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
description: This method can be used to retrieve a list of certificates for a specified customer. <ul><li>**shopperId** is **not the same** as **customerId**. **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>
operationId: getCustomerCertificatesByCustomerId
summary: Retrieve customer's certificates
/v2/customers/{customerId}/certificates/{certificateId}:
get:
tags:
- v2
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/certificateId'
responses:
'200':
description: Certificate details retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/CertificateDetailV2'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
description: Once the certificate order has been created, this method can be used to check the status of the certificate. This method can also be used to retrieve details of the certificate. <ul><li>**shopperId** is **not the same** as **customerId**. **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>
operationId: getCertificateDetailByCertIdentifier
summary: Retrieve individual certificate details
/v2/customers/{customerId}/certificates/{certificateId}/domainVerifications:
get:
tags:
- v2
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/certificateId'
responses:
'200':
description: Domain verification status list for specified certificateId.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DomainVerificationSummary'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
description: This method can be used to retrieve the domain verification status for a certificate request.<ul><li>**shopperId** is **not the same** as **customerId**. **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>"
operationId: getDomainInformationByCertificateId
summary: Retrieve domain verification status
/v2/customers/{customerId}/certificates/{certificateId}/domainVerifications/{domain}:
get:
tags:
- v2
description: Retrieve detailed information for supplied domain, including domain verification details and Certificate Authority Authorization (CAA) verification details. <ul><li>**shopperId** is **not the same** as **customerId**. **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)</li></ul>
operationId: getDomainDetailsByDomain
summary: Retrieve detailed information for supplied domain
parameters:
- $ref: '#/components/parameters/customerId'
- $ref: '#/components/parameters/certificateId'
- $ref: '#/components/parameters/domain'
responses:
'200':
description: Retrieve detailed information for supplied domain, including domain verification details and Certificate Authority Authorization (CAA) verification details.
content:
application/json:
schema:
$ref: '#/components/schemas/DomainVerificationDetail'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
/v2/customers/{customerId}/certificates/acme/externalAccountBinding:
get:
tags:
- v2
description: Use this endpoint to retrieve a key identifier and Hash-based Message Authentication Code (HMAC) key for Automated Certificate Management Environment (ACME) External Account Binding (EAB). These credentials can be used with an ACME client that supports EAB (ex. CertBot) to automate the issuance request and deployment of DV SSL certificates
operationId: getAcmeExternalAccountBinding
summary: Retrieves the external account binding for the specified customer
parameters:
- $ref: '#/components/parameters/customerId'
responses:
'200':
description: Acme key identifier and HMAC key for the external account binding. Directory URI is also provided for making ACME requests.
content:
application/json:
schema:
$ref: '#/components/schemas/ExternalAccountBinding'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
/v2/certificates/subscriptions/search:
get:
operationId: retrieveSslByDomainReseller
parameters:
- $ref: '#/components/parameters/PageSizeParam'
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/DomainParam'
- $ref: '#/components/parameters/CertificateStatusParam'
- $ref: '#/components/parameters/CertificateTypeParam'
- $ref: '#/components/parameters/CertificateValidationTypeParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CertificatesByDomainPage'
summary: Get a page of subscriptions by domain
description: The pagination starts at page 1. Each page contains a page of *subscriptions*, not certificates. This endpoint is meant for paging the subscriptions under the authorized user's account. Each subscription contains a snapshot of certificates contained within the subscription. To fetch further certificates under a subscription, use the /v2/certificates/subscription/{guid} endpoint with the subscription GUID obtained from this call. If any filtering is applied, subscriptions without any certificates will be omitted.
tags:
- v2
/v2/certificates/subscription/{guid}:
get:
operationId: retrieveSslByDomainSubscriptionReseller
parameters:
- $ref: '#/components/parameters/SubscriptionGuidParam'
- $ref: '#/components/parameters/SubscriptionPageSize'
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/DomainParam'
- $ref: '#/components/parameters/CertificateStatusParam'
- $ref: '#/components/parameters/CertificateTypeParam'
- $ref: '#/components/parameters/CertificateValidationTypeParam'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CertificatesByDomainPaged'
summary: GET a page of certificates for a specific domain product
tags:
- v2
components:
responses:
'401':
description: Authentication info not sent or is invalid
x-error-codes:
- UNAUTHORIZED
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'429':
description: Too many requests received within interval
x-error-codes:
- RATE_LIMITED
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorLimit'
'403':
description: Authenticated user is not allowed access
x-error-codes:
- ACCESS_DENIED
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'500':
description: Internal server error
x-error-codes:
- INTERNAL_SERVER_ERROR
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'422':
description: Application-specific request error
x-error-codes:
- INVALID_INPUT
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
'404':
description: Resource not found
x-error-codes:
- NOT_FOUND
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
schemas:
CertificateOrganization:
properties:
address:
$ref: '#/components/schemas/CertificateAddress'
description: Organization presence address
assumedName:
description: Only for EVSSL. The DBA(does business as) name for the organization.
type: string
jurisdictionOfIncorporation:
$ref: '#/components/schemas/JurisdictionOfIncorporation'
description: Jurisdiction of Incorporation
name:
description: Name of organization that owns common name
type: string
phone:
description: Phone number for organization
type: string
registrationAgent:
description: Only for EVSSL.
type: string
registrationNumber:
description: Only for EVSSL.
type: string
required:
- name
- phone
- address
Pagination:
properties:
first:
description: Optional link to first list of results
type: string
last:
description: Optional link to last list of results
type: string
next:
description: Optional link to next list of results
type: string
previous:
description: Optional link to previous list of results
type: string
total:
description: Number of records available
type: integer
Error:
properties:
code:
description: Short identifier for the error, suitable for indicating the specific error within client code
format: constant
type: string
fields:
description: List of the specific fields, and the errors found with their contents
items:
$ref: '#/components/schemas/ErrorField'
type: array
message:
description: Human-readable, English description of the error
type: string
stack:
description: 'Stack trace indicating where the error occurred.<br/> NOTE: This attribute <strong>MAY</strong> be included for Development and Test environments. However, it <strong>MUST NOT</strong> be exposed from OTE nor Production systems.'
items:
type: string
type: array
required:
- code
CertificatesByDomain:
properties:
allowedDomains:
description: The domains that are currently allowed on this subscription.
items:
$ref: '#/components/schemas/Domain'
minItems: 1
type: array
domain:
$ref: '#/components/schemas/Domain'
guid:
$ref: '#/components/schemas/Guid'
maxDomains:
description: The maximum number of domains allowed on this subscription.
type: integer
subscriptionEndDate:
format: date-time
type: string
subscriptionStartDate:
format: date-time
type: string
subscriptionStatus:
default: ACTIVE
description: 'The internal representation of the subscription.
A reflection of the entitlement status.
'
enum:
- ACTIVE
- SUSPENDED
- CANCELED
type: string
required:
- domain
- guid
- subscriptionStartDate
- subscriptionEndDate
- subscriptionStatus
- maxDomains
- allowedDomains
type: object
AbuseTicketCreate:
required:
- type
allOf:
- $ref: '#/components/schemas/AbuseTicketCreateBase'
- type: object
properties:
type:
description: The type of abuse being reported.
enum:
- CHILD_ABUSE
- MALWARE
- PHISHING
type: string
proxy:
description: The regional location that the content needs to be viewed from.<br/>Here is a mapping of the regional codes to common countries.<br/>ARE - Pakistan, Israel, Turkey, Azerbaijan<br/>SGP - Japan, Tokyo, AU, Australia, Sydney, Singapore, India, Mumbai, New Zealand, Philippines, Korea, Indonesia, China, Malaysia, Taiwan, India<br/>ZAF - South Africa<br/>USA - Canada, United States<br/>BRA - Brazil, Argentina, Ecuador, Mexico, Peru, South America, Colombia, Chile, Guatemala, Panama<br/>DEU - Germany, France, United Kingdom, London, Italy, Belgium, Netherlands, Spain, Ukraine, Austria, Switzerland, Frankfurt, Denmark, Norway, Sweden, Finland, Iceland, Slovakia, Romania, Luxembourg, Poland, Ireland, Portugal, Moldova, Bulgaria, Slovenia, Serbia, Hungary, Lithuania, Malta, Morocco, Latvia, Estonia, Russian Federation, Sweden
enum:
- ARE
- SGP
- ZAF
- USA
- BRA
- DEU
- OTHER
- NOT_APPLICABLE
type: string
useragent:
description: The user-agent required to view the content.
e
# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/godaddy/refs/heads/main/openapi/godaddy-v2-api-openapi.yml