diff --git a/providers/src/godaddy/v00.00.00000/provider.yaml b/providers/src/godaddy/v00.00.00000/provider.yaml index a79542f4..91e2c52e 100644 --- a/providers/src/godaddy/v00.00.00000/provider.yaml +++ b/providers/src/godaddy/v00.00.00000/provider.yaml @@ -2,89 +2,57 @@ id: godaddy name: godaddy version: v00.00.00000 providerServices: - abuse: - id: 'abuse:v00.00.00000' - name: abuse + dns: + id: dns:v00.00.00000 + name: dns preferred: true service: - $ref: godaddy/v00.00.00000/services/abuse.yaml - title: Api.Godaddy.Com + $ref: godaddy/v00.00.00000/services/dns.yaml + title: GoDaddy DNS version: v00.00.00000 - description: ! '' - aftermarket: - id: 'aftermarket:v00.00.00000' - name: aftermarket - preferred: true - service: - $ref: godaddy/v00.00.00000/services/aftermarket.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' - agreements: - id: 'agreements:v00.00.00000' - name: agreements - preferred: true - service: - $ref: godaddy/v00.00.00000/services/agreements.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' - certificates: - id: 'certificates:v00.00.00000' - name: certificates - preferred: true - service: - $ref: godaddy/v00.00.00000/services/certificates.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' - countries: - id: 'countries:v00.00.00000' - name: countries - preferred: true - service: - $ref: godaddy/v00.00.00000/services/countries.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' + description: >- + DNS zone records (Domains v1 bulk record management and the Domains v3 + record-id based CRUD) and domain forwarding rules (Domains v2). domains: - id: 'domains:v00.00.00000' + id: domains:v00.00.00000 name: domains preferred: true service: $ref: godaddy/v00.00.00000/services/domains.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' - orders: - id: 'orders:v00.00.00000' - name: orders - preferred: true - service: - $ref: godaddy/v00.00.00000/services/orders.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' - shoppers: - id: 'shoppers:v00.00.00000' - name: shoppers - preferred: true - service: - $ref: godaddy/v00.00.00000/services/shoppers.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' - subscriptions: - id: 'subscriptions:v00.00.00000' - name: subscriptions - preferred: true - service: - $ref: godaddy/v00.00.00000/services/subscriptions.yaml - title: Api.Godaddy.Com - version: v00.00.00000 - description: ! '' + title: GoDaddy Domains + version: v00.00.00000 + description: >- + Registered domain inventory, settings and lifecycle: domain details, + contacts, nameservers, renewal, cancellation, registrant changes, privacy + forwarding, pending actions and notifications (Domains v1 and v2), the v3 + domain list and asynchronous operations, and monthly API usage. + registration: + id: registration:v00.00.00000 + name: registration + preferred: true + service: + $ref: godaddy/v00.00.00000/services/registration.yaml + title: GoDaddy Registration + version: v00.00.00000 + description: >- + Finding and registering domains: availability checks, suggestions, TLDs, + legal agreements, purchase schemas and validation (Domains v1), + asynchronous registration (Domains v2), and the quote-then-register model + with registration status (Domains v3). + transfers: + id: transfers:v00.00.00000 + name: transfers + preferred: true + service: + $ref: godaddy/v00.00.00000/services/transfers.yaml + title: GoDaddy Transfers + version: v00.00.00000 + description: >- + Inbound and outbound domain transfers: the Domains v1 transfer-in order + and the Domains v2 asynchronous transfer workflow (accept, cancel, + restart, retry, transfer out, accept or reject an outbound transfer). config: auth: + type: bearer credentialsenvvar: GODADDY_API_KEY - type: api_key - valuePrefix: 'sso-key ' + snake_case_aliases: true diff --git a/providers/src/godaddy/v00.00.00000/services/abuse.yaml b/providers/src/godaddy/v00.00.00000/services/abuse.yaml deleted file mode 100644 index b3cfc1b9..00000000 --- a/providers/src/godaddy/v00.00.00000/services/abuse.yaml +++ /dev/null @@ -1,401 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: 1.0.0 -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/abuse/tickets: - get: - parameters: - - description: The type of abuse. - in: query - name: type - required: false - schema: - enum: - - A_RECORD - - CHILD_ABUSE - - CONTENT - - FRAUD_WIRE - - IP_BLOCK - - MALWARE - - NETWORK_ABUSE - - PHISHING - - SPAM - type: string - - description: Is this abuse ticket closed? - in: query - name: closed - required: false - schema: - default: false - type: boolean - - description: The domain name or ip address abuse originated from - in: query - name: sourceDomainOrIp - required: false - schema: - format: host-name-or-ip-address - type: string - - 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: - format: iso-datetime - type: string - - description: The latest abuse ticket creation date to pull abuse tickets for - in: query - name: createdEnd - required: false - schema: - format: iso-datetime - type: string - - description: Number of abuse ticket numbers to return. - in: query - name: limit - required: false - schema: - default: 100 - format: integer-positive - maximum: 100 - type: integer - - description: The earliest result set record number to pull abuse tickets for - in: query - name: offset - required: false - schema: - default: 0 - format: integer-positive - type: integer - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/AbuseTicketList' - description: Success - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Error - security: - - sso_key: [] - operationId: getTickets - description: List all abuse tickets ids that match user provided filters - post: - responses: - '200': - description: No response was specified - '201': - content: - application/json: - schema: - $ref: '#/components/schemas/AbuseTicketId' - description: Success - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Error - security: - - sso_key: [] - operationId: createTicket - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AbuseTicketCreate' - description: The endpoint which allows the Reporter to create a new abuse ticket - required: true - description: Create a new abuse ticket - '/v1/abuse/tickets/{ticket_id}': - get: - parameters: - - description: A unique abuse ticket identifier - in: path - name: ticket_id - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/AbuseTicket' - description: Success - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Invalid ticket id provided - security: - - sso_key: [] - operationId: getTicketInfo - description: Return the abuse ticket data for a given ticket id -components: - schemas: - AbuseTicket: - description: 'The associated fields returned, given a unique abuse ticket id' - properties: - closed: - default: false - description: Is this abuse ticket closed? - type: boolean - closedAt: - description: The date the abuse ticket was closed - format: iso-datetime - type: string - createdAt: - description: The date the abuse ticket was created - format: iso-datetime - type: string - domainIp: - description: The domain or IP the suspected abuse was reported against - type: string - reporter: - description: The shopper id of the person who reported the suspected abuse - type: string - source: - description: The single URL or IP the suspected abuse was reported against - type: string - target: - description: The company the suspected abuse is targeting - type: string - ticketId: - description: Abuse ticket ID - type: string - type: - description: The type of abuse being reported - enum: - - A_RECORD - - CHILD_ABUSE - - CONTENT - - FRAUD_WIRE - - IP_BLOCK - - MALWARE - - NETWORK_ABUSE - - PHISHING - - SPAM - type: string - required: - - ticketId - - reporter - - domainIp - - closed - - type - - target - - source - - createdAt - - closedAt - type: object - AbuseTicketCreate: - properties: - info: - description: 'Additional information that may assist the abuse investigator. ie: server logs or email headers/body for SPAM' - type: string - infoUrl: - description: Reporter URL if housing additional information that may assist the abuse investigator - format: url - type: string - intentional: - default: false - description: Do you believe this is intentional abuse by the domain holder? - type: boolean - proxy: - description: 'The Proxy information required to view the abuse being reported. ie: Specific IP used, or country of IP viewing from' - type: string - source: - description: 'The URL or IP where live abuse content is located at. ie: https://www.example.com/bad_stuff/bad.php' - type: string - target: - description: 'The brand/company the abuse is targeting. ie: brand name/bank name' - type: string - type: - description: The type of abuse being reported. - enum: - - A_RECORD - - CHILD_ABUSE - - CONTENT - - FRAUD_WIRE - - IP_BLOCK - - MALWARE - - NETWORK_ABUSE - - PHISHING - - SPAM - type: string - type: object - AbuseTicketId: - description: The primary key of a newly created abuse ticket - properties: - ticketId: - description: Abuse ticket ID - type: string - required: - - ticketId - type: object - AbuseTicketList: - properties: - pagination: - $ref: '#/components/schemas/Pagination' - ticketIds: - description: A list of abuse ticket ids originated by this reporter. - items: - type: string - type: array - required: - - ticketIds - type: object - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - stack: - description: 'Stack trace indicating where the error occurred. NOTE: This attribute MAY be included for Development and Test environments. However, it MUST NOT be exposed from OTE nor Production systems.' - items: - type: string - minItems: 1 - type: array - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: 1) JSONPath referring to the field within the data containing an erroror2) JSONPath referring to an object containing an error - format: json-path - type: string - pathRelated: - description: JSONPath referring to the field on the object referenced by `path` containing an error - format: json-path - type: string - required: - - path - - code - type: object - 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 - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - tickets: - id: godaddy.abuse.tickets - name: tickets - title: Tickets - methods: - get_tickets: - operation: - $ref: '#/paths/~1v1~1abuse~1tickets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.ticketIds - _get_tickets: - operation: - $ref: '#/paths/~1v1~1abuse~1tickets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_ticket: - operation: - $ref: '#/paths/~1v1~1abuse~1tickets/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_ticket_info: - operation: - $ref: '#/paths/~1v1~1abuse~1tickets~1{ticket_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/tickets/methods/get_ticket_info' - - $ref: '#/components/x-stackQL-resources/tickets/methods/get_tickets' - insert: - - $ref: '#/components/x-stackQL-resources/tickets/methods/create_ticket' - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/aftermarket.yaml b/providers/src/godaddy/v00.00.00000/services/aftermarket.yaml deleted file mode 100644 index b52d5078..00000000 --- a/providers/src/godaddy/v00.00.00000/services/aftermarket.yaml +++ /dev/null @@ -1,434 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: 0.0.0 -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/aftermarket/listings: - delete: - parameters: - - description: A comma separated list of domain names - in: query - name: domains - required: true - schema: - items: - type: string - type: array - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - application/json: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - application/xml: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - text/javascript: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - text/xml: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: "\tRequired parameters must be specified in correct format" - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: deleteListings - description: Remove listings from GoDaddy Auction - /v1/aftermarket/listings/expiry: - post: - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - application/json: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - application/xml: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - text/javascript: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - text/xml: - schema: - $ref: '#/components/schemas/AftermarketListingAction' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: "\tToo many Listings provided" - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: addExpiryListings - requestBody: - content: - application/json: - schema: - items: - $ref: '#/components/schemas/AftermarketListingExpiryCreate' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/AftermarketListingExpiryCreate' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/AftermarketListingExpiryCreate' - type: array - description: An array of expiry listings to be loaded - required: true - description: Add expiry listings into GoDaddy Auction -components: - schemas: - AftermarketListingAction: - properties: - listingActionId: - description: Action Id - type: integer - required: - - listingActionId - type: object - AftermarketListingExpiryCreate: - properties: - domain: - description: Domain name - type: string - expiresAt: - description: Date when the domain expires - format: iso-datetime - type: string - losingRegistrarId: - default: 1 - description: Losing registrar id for the domain - minimum: 1 - type: integer - pageViewsMonthly: - description: Monthly traffic page view for the domain - type: integer - revenueMonthly: - description: Monthly parking revenue (in USD micro unit) for the domain - type: integer - required: - - domain - - expiresAt - - losingRegistrarId - type: object - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path - type: string - pathRelated: - description: 'JSONPath referring to a field containing an error, which is referenced by `path`' - format: json-path - type: string - required: - - path - - code - type: object - ErrorLimit: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - required: - - retryAfterSec - - code - type: object - expiry: - properties: - id: - format: double - type: number - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - listings: - id: godaddy.aftermarket.listings - name: listings - title: Listings - methods: - delete_listings: - operation: - $ref: '#/paths/~1v1~1aftermarket~1listings/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - add_expiry_listings: - operation: - $ref: '#/paths/~1v1~1aftermarket~1listings~1expiry/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/listings/methods/delete_listings' diff --git a/providers/src/godaddy/v00.00.00000/services/agreements.yaml b/providers/src/godaddy/v00.00.00000/services/agreements.yaml deleted file mode 100644 index b1c80e81..00000000 --- a/providers/src/godaddy/v00.00.00000/services/agreements.yaml +++ /dev/null @@ -1,263 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: 1.0.0 -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/agreements: - get: - parameters: - - description: 'PrivateLabelId to operate as, if different from JWT' - in: header - name: X-Private-Label-Id - required: false - schema: - type: integer - - description: Unique identifier of the Market used to retrieve/translate Legal Agreements - in: header - name: X-Market-Id - required: false - schema: - default: en-US - format: bcp-47 - type: string - - description: Keys for Agreements whose details are to be retrieved - in: query - name: keys - required: true - schema: - items: - type: string - type: array - responses: - '200': - content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array - application/json: - schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: get - description: Retrieve Legal Agreements for provided agreements keys -components: - schemas: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path - type: string - pathRelated: - description: 'JSONPath referring to a field containing an error, which is referenced by `path`' - format: json-path - type: string - required: - - path - - code - type: object - ErrorLimit: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - required: - - retryAfterSec - - code - type: object - LegalAgreement: - properties: - agreementKey: - description: Unique identifier for the legal agreement - type: string - content: - description: 'Contents of the legal agreement, suitable for embedding' - type: string - title: - description: Title of the legal agreement - type: string - url: - description: URL to a page containing the legal agreement - format: url - type: string - required: - - agreementKey - - title - - content - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - agreements: - id: godaddy.agreements.agreements - name: agreements - title: Agreements - methods: - get: - operation: - $ref: '#/paths/~1v1~1agreements/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/agreements/methods/get' - insert: [] - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/certificates.yaml b/providers/src/godaddy/v00.00.00000/services/certificates.yaml deleted file mode 100644 index 8f8d0a95..00000000 --- a/providers/src/godaddy/v00.00.00000/services/certificates.yaml +++ /dev/null @@ -1,1718 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: '1' -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/certificates: - post: - parameters: - - description: Setting locale for communications such as emails and error messages - in: header - name: X-Market-Id - required: false - schema: - default: Default locale for shopper account - type: string - responses: - '200': - description: No response was specified - '202': - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateIdentifier' - description: Request was successful - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow renew - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: '`csr` is invalid' - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'Creating a certificate order 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''.' - operationId: certificate_create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateCreate' - description: The certificate order information - required: true - summary: Create a pending order for certificate - /v1/certificates/validate: - post: - parameters: - - description: Setting locale for communications such as emails and error messages - in: header - name: X-Market-Id - required: false - schema: - default: Default locale for shopper account - type: string - responses: - '200': - description: No response was specified - '204': - description: Request validated successfully - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow renew - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: '`csr` is invalid' - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: certificate_validate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateCreate' - description: The certificate order info - required: true - summary: Validate a pending order for certificate - description: Validate a pending order for certificate - '/v1/certificates/{certificate_id}': - get: - parameters: - - description: Certificate id to lookup - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Certificate' - description: Certificate details retrieved - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - 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.' - operationId: certificate_get - summary: Retrieve certificate details - '/v1/certificates/{certificate_id}/actions': - get: - parameters: - - description: Certificate id to register for callback - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateAction' - description: Action retrieval successful - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate not found - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: This method is used to retrieve all stateful actions relating to a certificate lifecycle. - operationId: certificate_action_retrieve - summary: Retrieve all certificate actions - '/v1/certificates/{certificate_id}/callback': - delete: - parameters: - - description: Certificate id to unregister callback - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Callback removed - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: Unregister the callback for a particular certificate. - operationId: certificate_callback_delete - summary: Unregister system callback - get: - parameters: - - description: Certificate id to register for stateful action callback - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateCallback' - description: Callback registered - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: This method is used to retrieve the registered callback url for a certificate. - operationId: certificate_callback_get - summary: Retrieve system stateful action callback url - put: - parameters: - - description: Certificate id to register/replace for callback - in: path - name: certificate_id - required: true - schema: - type: string - - description: Callback url registered/replaced to receive stateful actions - in: query - name: callbackUrl - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Callback replaced/registered - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Callback url is malformed - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'This method is used to register/replace url for callbacks for stateful actions relating to a certificate lifecycle. The callback url is a Webhook style pattern and will receive POST http requests with json body defined in the CertificateAction model definition for each certificate action. Only one callback URL is allowed to be registered for each certificateId, so it will replace a previous registration.' - operationId: certificate_callback_replace - summary: Register of certificate action callback - '/v1/certificates/{certificate_id}/cancel': - post: - parameters: - - description: Certificate id to cancel - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Certificate order has been canceled - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow cancel - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: Use the cancel call to cancel a pending certificate order. - operationId: certificate_cancel - summary: Cancel a pending certificate - '/v1/certificates/{certificate_id}/download': - get: - parameters: - - description: Certificate id to download - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateBundle' - description: Certificate retrieved - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow download - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: certificate_download - summary: Download certificate - description: Download certificate - '/v1/certificates/{certificate_id}/reissue': - post: - parameters: - - description: Certificate id to reissue - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '202': - description: Reissue request created - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow reissue - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Delay revocation exceeds maximum - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: '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. Reissuing is the process by which domain names are added or removed from a certificate.Once a request is validated and approved, the certificate will be reissued with the new common name and sans specified. Unlimited reissues are available during the lifetime of the certificate.New names added to a certificate that do not share the base domain of the common name may take additional time to validate. 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.''' - operationId: certificate_reissue - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateReissue' - description: The reissue request info - required: true - summary: Reissue active certificate - '/v1/certificates/{certificate_id}/renew': - post: - parameters: - - description: Certificate id to renew - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '202': - description: Renew request created - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow renew - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: '`csr` is invalid' - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'Renewal is the process by which the validity of a certificate is extended. Renewal is only available 60 days prior to expiration of the previous certificate and 30 days after the expiration of the previous certificate. The renewal supports modifying a set of the original certificate order information. Once a request is validated and approved, the certificate will be issued with extended validity. Since subject alternative names can be removed during a renewal, we require that you provide the subject alternative names you expect in the renewed certificate. New names added to a certificate that do not share the base domain of the common name may take additional time to validate. ' - operationId: certificate_renew - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateRenew' - description: The renew request info - required: true - summary: Renew active certificate - '/v1/certificates/{certificate_id}/revoke': - post: - parameters: - - description: Certificate id to revoke - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Certificate Revoked - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow revoke - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'Use revoke call to revoke an active certificate, if the certificate has not been issued a 404 response will be returned.' - operationId: certificate_revoke - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateRevoke' - description: The certificate revocation request - required: true - summary: Revoke active certificate - '/v1/certificates/{certificate_id}/siteSeal': - get: - parameters: - - description: Certificate id - in: path - name: certificate_id - required: true - schema: - type: string - - description: 'This value represents the visual theme of the seal. If seal doesn''t exist, default values are used if params not present. If seal does exist, default values will not be used to update unless params present.' - in: query - name: theme - required: false - schema: - default: LIGHT - enum: - - DARK - - LIGHT - type: string - - description: 'Determine locale for text displayed in seal image and verification page. If seal doesn''t exist, default values are used if params not present. If seal does exist, default values will not be used to update unless params present.' - in: query - name: locale - required: false - schema: - default: en - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CertificateSiteSeal' - description: Site seal retrieved - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow seal - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: '''locale'' is invalid' - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'This method is used to obtain the site seal information for an issued certificate. A site seal is a graphic that the certificate purchaser can embed on their web site to show their visitors information about their SSL certificate. If a web site visitor clicks on the site seal image, a pop-up page is displayed that contains detailed information about the SSL certificate. The site seal token is used to link the site seal graphic image to the appropriate certificate details pop-up page display when a user clicks on the site seal. The site seal images are expected to be static images and hosted on the reseller''''s website, to minimize delays for customer page load times.' - operationId: certificate_siteseal_get - summary: Get Site seal - '/v1/certificates/{certificate_id}/verifyDomainControl': - post: - parameters: - - description: Certificate id to lookup - in: path - name: certificate_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Domain control was successful - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate id not found - '409': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Certificate state does not allow domain control - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'Domain control is a means for verifying the domain included in the certificate order. This resource is useful for resellers that control the domains for their customers, and can expedite the verification process. See https://www.godaddy.com/help/verifying-your-domain-ownership-for-ssl-certificate-requests-html-or-dns-7452' - operationId: certificate_verifydomaincontrol - summary: Check Domain Control -components: - schemas: - Certificate: - properties: - certificateId: - description: The unique identifier of the certificate request. Only present if no errors returned - type: string - commonName: - description: Common name of certificate - type: string - contact: - $ref: '#/components/schemas/CertificateContact' - description: Requestor contact information - createdAt: - description: The date the certificate was ordered. - format: iso-datetime - type: string - deniedReason: - description: Only present if certificate order has been denied - type: string - organization: - $ref: '#/components/schemas/CertificateOrganization' - description: Organization Name in certificate - period: - description: Validity period of order. Specified in years - type: integer - productType: - description: Certificate product type - enum: - - DV_SSL - - DV_WILDCARD_SSL - - EV_SSL - - OV_CS - - OV_DS - - OV_SSL - - OV_WILDCARD_SSL - - UCC_DV_SSL - - UCC_EV_SSL - - UCC_OV_SSL - type: string - progress: - description: Percentage of completion for certificate vetting - type: integer - revokedAt: - description: The revocation date of certificate (if revoked). - format: iso-datetime - type: string - rootType: - description: Root Type - enum: - - GODADDY_SHA_1 - - GODADDY_SHA_2 - - STARFIELD_SHA_1 - - STARFIELD_SHA_2 - type: string - serialNumber: - description: Serial number of certificate (if issued or revoked) - type: string - serialNumberHex: - description: Hexadecmial format for Serial number of certificate(if issued or revoked) - type: string - slotSize: - description: 'Number of subject alternative names(SAN) to be included in certificate ' - enum: - - FIVE - - TEN - - FIFTEEN - - TWENTY - - THIRTY - - FOURTY - - FIFTY - - ONE_HUNDRED - type: string - status: - description: Status of certificate - enum: - - PENDING_ISSUANCE - - ISSUED - - REVOKED - - CANCELED - - DENIED - - PENDING_REVOCATION - - PENDING_REKEY - - UNUSED - - EXPIRED - type: string - subjectAlternativeNames: - description: Contains subject alternative names set - items: - $ref: '#/components/schemas/SubjectAlternativeNameDetails' - type: array - validEnd: - description: The end date of the certificate's validity (if issued or revoked). - format: iso-datetime - type: string - validStart: - description: The start date of the certificate's validity (if issued or revoked). - format: iso-datetime - type: string - required: - - certificateId - - status - - contact - - period - - createdAt - - productType - type: object - CertificateAction: - properties: - createdAt: - description: Date action created - format: iso-datetime - type: string - type: - enum: - - CERTIFICATE_ISSUED - - CERTIFICATE_ORDER_CANCELED - - CERTIFICATE_ORDER_CREATED - - CERTIFICATE_REVOKED - - DOMAIN_VALIDATION_COMPLETE - - FRAUD_DETECTED - - ORG_NAME_CHANGE - - ORG_VALIDATION_COMPLETE - - SAN_DROP - type: string - required: - - type - - createdAt - type: object - CertificateAddress: - properties: - address1: - description: Address line 1 of organization address - type: string - address2: - description: Address line 2 of organization address - type: string - city: - description: City/Locality of organization address - type: string - country: - description: Two character country code of organization - enum: - - AC - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AN - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BM - - BN - - BO - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CV - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KR - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MG - - MH - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL - - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - ST - - SV - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TP - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - YU - - ZA - - ZM - - ZW - format: iso-country-code - type: string - postalCode: - description: Postal code of organization address - type: string - state: - description: Full name of State/Province/Territory of organization address - type: string - required: - - address1 - - country - type: object - CertificateBundle: - properties: - pems: - $ref: '#/components/schemas/PEMCertificates' - description: Certificates in PEM format - serialNumber: - description: Serial number of certificate requested - type: string - required: - - serialNumber - - pems - type: object - CertificateCallback: - properties: - callbackUrl: - description: Callback url registered to receive stateful actions - type: string - required: - - callbackUrl - type: object - CertificateContact: - properties: - email: - description: Email address of requestor contact - type: string - jobTitle: - description: Only used for EVSSL. Job title of requestor contact - type: string - nameFirst: - description: First name of requestor contact - type: string - nameLast: - description: Last name of requestor contact - type: string - nameMiddle: - description: Middle initial of requestor contact - type: string - phone: - description: Phone number for requestor contact - type: string - suffix: - description: Suffix of requestor contact - type: string - required: - - nameFirst - - nameLast - - email - - phone - type: object - CertificateCreate: - properties: - callbackUrl: - description: Required if client would like to receive stateful actions via callback during certificate lifecyle - type: string - commonName: - description: 'Name to be secured in certificate. If provided, CN field in CSR will be ignored.' - type: string - contact: - $ref: '#/components/schemas/CertificateContact' - description: Requestor contact information - csr: - description: Certificate Signing Request - type: string - intelVPro: - default: false - description: Only used for OV - type: boolean - organization: - $ref: '#/components/schemas/CertificateOrganizationCreate' - description: 'Required for EVSSL, OVSSL, CS, and DS' - period: - description: Number of years for certificate validity period - type: integer - productType: - description: Type of product requesting a certificate. Only required non-renewal - enum: - - DV_SSL - - DV_WILDCARD_SSL - - EV_SSL - - OV_CS - - OV_DS - - OV_SSL - - OV_WILDCARD_SSL - - UCC_DV_SSL - - UCC_EV_SSL - - UCC_OV_SSL - type: string - rootType: - default: STARFIELD_SHA_2 - description: 'Root Type. Depending on certificate expiration date, SHA_1 not be allowed. Will default to SHA_2 if expiration date exceeds sha1 allowed date' - enum: - - GODADDY_SHA_1 - - GODADDY_SHA_2 - - STARFIELD_SHA_1 - - STARFIELD_SHA_2 - type: string - slotSize: - description: 'Number of subject alternative names(SAN) to be included in certificate ' - enum: - - FIVE - - TEN - - FIFTEEN - - TWENTY - - THIRTY - - FOURTY - - FIFTY - - ONE_HUNDRED - type: string - subjectAlternativeNames: - description: Subject Alternative names. Collection of subjectAlternativeNames to be included in certificate. - items: - type: string - type: array - uniqueItems: true - required: - - csr - - productType - - period - - contact - type: object - CertificateIdentifier: - properties: - certificateId: - description: The unique identifier of the certificate request. Only present if verified. - type: string - required: - - certificateId - type: object - 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 - type: object - CertificateOrganizationCreate: - 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 - 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 - type: object - CertificateReissue: - properties: - callbackUrl: - description: Required if client would like to receive stateful action via callback during certificate lifecyle - type: string - commonName: - default: Existing common name - description: The common name of certificate to be secured - type: string - csr: - default: Existing CSR - description: Certificate Signing Request. - type: string - delayExistingRevoke: - default: 72 - description: 'In hours, time to delay revoking existing certificate after issuance of new certificate. If revokeExistingCertOnIssuance is enabled, this value will be ignored' - maximum: 168 - type: integer - rootType: - default: GODADDY_SHA_1 - description: 'Root Type. Depending on certificate expiration date, SHA_1 not be allowed. Will default to SHA_2 if expiration date exceeds sha1 allowed date' - enum: - - GODADDY_SHA_1 - - GODADDY_SHA_2 - - STARFIELD_SHA_1 - - STARFIELD_SHA_2 - type: string - subjectAlternativeNames: - description: Only used for UCC products. An array of subject alternative names to include in certificate. - items: - type: string - type: array - uniqueItems: true - type: object - CertificateRenew: - properties: - callbackUrl: - description: Required if client would like to receive stateful actions via callback during certificate lifecyle - type: string - commonName: - default: Existing common name - description: The common name of certificate to be secured - type: string - csr: - default: Existing CSR - description: Certificate Signing Request. - type: string - period: - default: 0 - description: 'Number of years for certificate validity period, if different from previous certificate' - type: integer - rootType: - default: GODADDY_SHA_1 - description: 'Root Type. Depending on certificate expiration date, SHA_1 not be allowed. Will default to SHA_2 if expiration date exceeds sha1 allowed date' - enum: - - GODADDY_SHA_1 - - GODADDY_SHA_2 - - STARFIELD_SHA_1 - - STARFIELD_SHA_2 - type: string - subjectAlternativeNames: - description: Only used for UCC products. An array of subject alternative names to include in certificate. Not including a subject alternative name that was in the previous certificate will remove it from the renewed certificate. - items: - type: string - type: array - uniqueItems: true - type: object - CertificateRevoke: - properties: - reason: - description: Reason for revocation - enum: - - AFFILIATION_CHANGED - - CESSATION_OF_OPERATION - - KEY_COMPROMISE - - PRIVILEGE_WITHDRAWN - - SUPERSEDED - type: string - required: - - reason - type: object - CertificateSiteSeal: - properties: - html: - description: Certificate Seal HTML - type: string - required: - - html - type: object - 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' - minItems: 1 - type: array - message: - description: Description of the error - type: string - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: Description of the problem with the contents of the field - type: string - path: - description: JSONPath referring to the field within the submitted data containing an error - format: json-path - type: string - required: - - path - - code - type: object - JurisdictionOfIncorporation: - properties: - city: - type: string - country: - format: iso-country-code - type: string - county: - type: string - state: - type: string - required: - - country - type: object - PEMCertificates: - properties: - certificate: - description: End entity certificate in PEM format - type: string - cross: - description: CA Cross Intermediate certificate in PEM format - type: string - intermediate: - description: CA Signing Intermediate certificate in PEM format - type: string - root: - description: CA Root certificate in PEM format - type: string - required: - - certificate - type: object - SubjectAlternativeNameDetails: - properties: - status: - description: Total number of page results - enum: - - PENDING - - INVALID - - COMPLETED - - FRAUD - type: string - subjectAlternativeName: - description: Subject alternative name to be included in certificate - type: string - required: - - subjectAlternativeName - - status - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - certificates: - id: godaddy.certificates.certificates - name: certificates - title: Certificates - methods: - certificate_create: - operation: - $ref: '#/paths/~1v1~1certificates/post' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_validate: - operation: - $ref: '#/paths/~1v1~1certificates~1validate/post' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_get: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_cancel: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1cancel/post' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_download: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1download/get' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_reissue: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1reissue/post' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_renew: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1renew/post' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_revoke: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1revoke/post' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_verifydomaincontrol: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1verifyDomainControl/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/certificates/methods/certificate_get' - insert: - - $ref: '#/components/x-stackQL-resources/certificates/methods/certificate_create' - update: [] - delete: [] - actions: - id: godaddy.certificates.actions - name: actions - title: Actions - methods: - certificate_action_retrieve: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1actions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/actions/methods/certificate_action_retrieve' - insert: [] - update: [] - delete: [] - callback: - id: godaddy.certificates.callback - name: callback - title: Callback - methods: - certificate_callback_delete: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1callback/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_callback_get: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1callback/get' - response: - mediaType: application/json - openAPIDocKey: '200' - certificate_callback_replace: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1callback/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/callback/methods/certificate_callback_get' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/callback/methods/certificate_callback_delete' - site_seal: - id: godaddy.certificates.site_seal - name: site_seal - title: Site Seal - methods: - certificate_siteseal_get: - operation: - $ref: '#/paths/~1v1~1certificates~1{certificate_id}~1siteSeal/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/site_seal/methods/certificate_siteseal_get' - insert: [] - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/countries.yaml b/providers/src/godaddy/v00.00.00000/services/countries.yaml deleted file mode 100644 index 396f5cfe..00000000 --- a/providers/src/godaddy/v00.00.00000/services/countries.yaml +++ /dev/null @@ -1,296 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: '1.0' -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/countries: - get: - parameters: - - description: 'MarketId in which the request is being made, and for which responses should be localized' - in: query - name: marketId - required: true - schema: - format: bcp-47 - type: string - - description: Restrict countries to this region type; required if regionName is supplied - in: query - name: regionTypeId - required: false - schema: - type: integer - - description: Restrict countries to this region name; required if regionTypeId is supplied - in: query - name: regionName - required: false - schema: - type: string - - description: The term to sort the result countries by. - in: query - name: sort - required: false - schema: - default: key - enum: - - key - - label - type: string - - description: The direction to sort the result countries by. - in: query - name: order - required: false - schema: - default: ascending - enum: - - ascending - - descending - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CountrySummary' - description: Request was successful - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: regionTypeId is required when regionName is provided - '429': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: Retrieves summary country information for the provided marketId and filters. Authorization is not required. - operationId: getCountries - '/v1/countries/{country_key}': - get: - parameters: - - description: The country key - in: path - name: country_key - required: true - schema: - format: iso-country-code - type: string - - description: 'MarketId in which the request is being made, and for which responses should be localized' - in: query - name: marketId - required: true - schema: - format: bcp-47 - type: string - - description: The term to sort the result country states by. - in: query - name: sort - required: false - schema: - default: key - enum: - - key - - label - type: string - - description: The direction to sort the result country states by. - in: query - name: order - required: false - schema: - default: ascending - enum: - - ascending - - descending - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/Country' - description: Request was successful - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Country not found - '422': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: marketId is required - '429': - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: getCountry - description: Retrieves country and summary state information for provided countryKey. Authorization is not required. -components: - schemas: - Country: - properties: - callingCode: - description: The calling code prefix used for phone numbers in this country - type: string - countryKey: - description: The ISO country-code - format: iso-country-code - type: string - label: - description: The localized name of the country - type: string - states: - description: List of states/provinces in this country - items: - $ref: '#/components/schemas/State' - type: array - type: object - CountrySummary: - properties: - callingCode: - description: The calling code prefix used for phone numbers in this country - type: string - countryKey: - description: The ISO country-code - format: iso-country-code - type: string - label: - description: The localized name of the country - type: string - type: object - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - stack: - description: |- - Stack trace indicating where the error occurred. - NOTE: This attribute MAY be included for Development and Test environments. - However, it MUST NOT be exposed from OTE nor Production systems - items: - type: string - minItems: 1 - type: array - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: JSONPath referring to the field within the submitted data containing an error - format: json-path - type: string - required: - - path - - code - type: object - ErrorLimit: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - stack: - description: |- - Stack trace indicating where the error occurred. - NOTE: This attribute MAY be included for Development and Test environments. - However, it MUST NOT be exposed from OTE nor Production systems - items: - type: string - minItems: 1 - type: array - required: - - retryAfterSec - - code - type: object - State: - properties: - label: - description: 'The localized name of the state, province, or territory' - type: string - stateKey: - description: The state code - type: string - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - countries: - id: godaddy.countries.countries - name: countries - title: Countries - methods: - get_countries: - operation: - $ref: '#/paths/~1v1~1countries/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_country: - operation: - $ref: '#/paths/~1v1~1countries~1{country_key}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/countries/methods/get_country' - - $ref: '#/components/x-stackQL-resources/countries/methods/get_countries' - insert: [] - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/dns.yaml b/providers/src/godaddy/v00.00.00000/services/dns.yaml new file mode 100644 index 00000000..716ffd82 --- /dev/null +++ b/providers/src/godaddy/v00.00.00000/services/dns.yaml @@ -0,0 +1,2653 @@ +openapi: 3.1.1 +info: + title: GoDaddy DNS + description: DNS zone records (Domains v1 bulk record management and the Domains v3 record-id based CRUD) and domain forwarding rules (Domains v2). + version: v00.00.00000 +servers: + - url: https://api.godaddy.com + description: GoDaddy production API +security: + - bearerAuth: [] +tags: [] +paths: + /v1/domains/{domain}/records: + patch: + tags: + - Manage DNS + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose DNS Records are to be augmented + in: path + name: domain + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - records + properties: + records: + $ref: '#/components/schemas/ArrayOfDNSRecord' + description: DNS records to write (the request body array). + application/xml: + schema: + type: object + required: + - records + properties: + records: + $ref: '#/components/schemas/ArrayOfDNSRecord' + description: DNS records to write (the request body array). + text/xml: + schema: + type: object + required: + - records + properties: + records: + $ref: '#/components/schemas/ArrayOfDNSRecord' + description: DNS records to write (the request body array). + description: DNS Records to add to whatever currently exists + required: true + responses: + '200': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`domain` is not a valid Domain name' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: recordAdd + summary: Add the specified DNS Records to the specified Domain + description: Appends DNS records to the domain's zone without removing existing records. Existing records with the same type and name are preserved. Returns 204 No Content. + put: + tags: + - Manage DNS + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose DNS Records are to be replaced + in: path + name: domain + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + description: DNS records to write (the request body array). + application/xml: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + description: DNS records to write (the request body array). + text/xml: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + description: DNS records to write (the request body array). + description: DNS Records to replace whatever currently exists + required: true + responses: + '200': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - `domain` is not a valid Domain name + - `record` does not fulfill the schema + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: recordReplace + summary: Replace all DNS Records for the specified Domain + description: Replaces the entire DNS record set for the domain. All existing records are removed and replaced with the submitted set. Returns 204 No Content. + /v1/domains/{domain}/records/{type}/{name}: + get: + tags: + - Manage DNS + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose DNS Records are to be retrieved + in: path + name: domain + required: true + schema: + type: string + - description: DNS Record Type for which DNS Records are to be retrieved + in: path + name: type + required: true + schema: + type: string + enum: + - A + - AAAA + - CAA + - CNAME + - MX + - NS + - SOA + - SRV + - TXT + - description: DNS Record Name for which DNS Records are to be retrieved + in: path + name: name + required: true + schema: + type: string + - description: Number of results to skip for pagination + in: query + name: offset + required: false + schema: + type: integer + - description: Maximum number of items to return + in: query + name: limit + required: false + schema: + type: integer + responses: + '200': + description: Request was successful + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DNSRecord' + application/javascript: + schema: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + application/xml: + schema: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + text/javascript: + schema: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + text/xml: + schema: + items: + $ref: '#/components/schemas/DNSRecord' + type: array + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - `record` does not fulfill the schema + - `domain` is not a valid Domain name + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: recordGet + summary: Retrieve DNS Records for the specified Domain, optionally with the specified Type and/or Name + description: Returns DNS records for the domain. Optionally filter by record type and name. Returns an array of DNSRecord objects. + put: + tags: + - Manage DNS + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose DNS Records are to be replaced + in: path + name: domain + required: true + schema: + type: string + - description: DNS Record Type for which DNS Records are to be replaced + in: path + name: type + required: true + schema: + type: string + enum: + - A + - AAAA + - CAA + - CNAME + - MX + - NS + - SOA + - SRV + - TXT + - description: DNS Record Name for which DNS Records are to be replaced + in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecordCreateTypeName' + type: array + description: DNS records to write (the request body array). + application/xml: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecordCreateTypeName' + type: array + description: DNS records to write (the request body array). + text/xml: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecordCreateTypeName' + type: array + description: DNS records to write (the request body array). + description: DNS Records to replace whatever currently exists + required: true + responses: + '200': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`record` does not fulfill the schema' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: recordReplaceTypeName + summary: Replace all DNS Records for the specified Domain with the specified Type and Name + description: Replaces all DNS records of the specified type and name. All other records are preserved. Returns 204 No Content. + delete: + tags: + - Manage DNS + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose DNS Records are to be deleted + in: path + name: domain + required: true + schema: + type: string + - description: DNS Record Type for which DNS Records are to be deleted + in: path + name: type + required: true + schema: + type: string + enum: + - A + - AAAA + - CAA + - CNAME + - MX + - SRV + - TXT + - description: DNS Record Name for which DNS Records are to be deleted + in: path + name: name + required: true + schema: + type: string + responses: + '204': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Domain not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The given domain is not eligible to have its records changed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`domain` is not a valid Domain name' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: recordDeleteTypeName + summary: Delete all DNS Records for the specified Domain with the specified Type and Name + description: Deletes all DNS records matching the specified type and name. All other records are preserved. Returns 204 No Content. + /v1/domains/{domain}/records/{type}: + put: + tags: + - Manage DNS + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose DNS Records are to be replaced + in: path + name: domain + required: true + schema: + type: string + - description: DNS Record Type for which DNS Records are to be replaced + in: path + name: type + required: true + schema: + type: string + enum: + - A + - AAAA + - CAA + - CNAME + - MX + - NS + - SOA + - SRV + - TXT + requestBody: + content: + application/json: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecordCreateType' + type: array + description: DNS records to write (the request body array). + application/xml: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecordCreateType' + type: array + description: DNS records to write (the request body array). + text/xml: + schema: + type: object + required: + - records + properties: + records: + items: + $ref: '#/components/schemas/DNSRecordCreateType' + type: array + description: DNS records to write (the request body array). + description: DNS Records to replace whatever currently exists + required: true + responses: + '200': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`record` does not fulfill the schema' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: recordReplaceType + summary: Replace all DNS Records for the specified Domain with the specified Type + description: Replaces all DNS records of the specified type across all names. Records of other types are preserved. Returns 204 No Content. + /domains/forwards/{fqdn}: + delete: + tags: + - Manage Domain Settings + parameters: + - description: The fully qualified domain name whose forwarding details are to be deleted. + in: path + name: fqdn + required: true + schema: + type: string + responses: + '204': + description: Request was successful + '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: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The domain status does not allow performing the operation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: A valid `fqdn` must be specified + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: domainsForwardsDelete + summary: Submit a forwarding cancellation request for the given fqdn + description: Removes the forwarding configuration for the FQDN. Returns 204 No Content. + get: + tags: + - Manage Domain Settings + parameters: + - description: The fully qualified domain name whose forwarding details are to be retrieved. + in: path + name: fqdn + required: true + schema: + type: string + - description: Optionally include all sub domains if the fqdn specified is a domain and not a sub domain. + name: includeSubs + required: false + in: query + schema: + type: boolean + responses: + '200': + description: Request was successful + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DomainForwarding' + '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: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: A valid `fqdn` must be specified + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: domainsForwardsGet + summary: Retrieve the forwarding information for the given fqdn + description: Returns the forwarding configuration for the FQDN including destination URL and redirect type. Returns 404 if no forwarding rule exists. + put: + tags: + - Manage Domain Settings + parameters: + - description: The fully qualified domain name whose forwarding details are to be modified. + in: path + name: fqdn + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainForwardingCreate' + description: Domain forwarding rule to create or replace on the fqdn + required: true + responses: + '204': + description: Request was successful + '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: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The domain status does not allow performing the operation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: domainsForwardsPut + summary: Modify the forwarding information for the given fqdn + description: Updates the forwarding configuration for the FQDN. Only fields included in the request are modified. Returns 204 No Content. + post: + tags: + - Manage Domain Settings + parameters: + - description: The fully qualified domain name whose forwarding details are to be modified. + in: path + name: fqdn + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainForwardingCreate' + description: Domain forwarding rule to create for the specified fqdn + required: true + responses: + '204': + description: Request was successful + '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: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: Provided `fqdn` already has forwarding setup + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: domainsForwardsPost + summary: Create a new forwarding configuration for the given FQDN + description: Creates or replaces the forwarding configuration for the FQDN. Idempotent - replaying the same request produces the same rule. Returns 204 No Content. + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /v3/domains/zones/{zone}/dns-records: + get: + operationId: listDNSRecords + tags: + - Records + summary: List DNS records in a zone + description: | + Returns a paginated collection of DNS resource records for the + specified zone. Supports filtering by record type and host name, + field projection, and page-based pagination. + + Pagination uses page (1-based) and pageSize query parameters. + Pass totalRequired=true to include totalItems and totalPages when + at least one record matches; both are omitted for empty result + sets. Defaults to false to avoid count-query overhead. + + Filter parameters are combined with logical AND. Pagination links + in the response preserve active filter, pagination, and + field-projection parameters. + + sortBy and sortOrder are not supported. Results are always + returned in canonical zone-file order: resource record type (IANA + RR type number ascending — e.g. A before NS before CNAME), then + name, then data. This matches authoritative DNS ordering and is + not client-configurable. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/zonePath' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/pageSize' + - $ref: '#/components/parameters/totalRequired' + - $ref: '#/components/parameters/fields' + - name: type + in: query + required: false + description: Filter results to records of this DNS type. + schema: + $ref: '#/components/schemas/DNSRecordType' + example: A + - name: name + in: query + required: false + description: | + Filter results to records with this host name relative to the zone. Use `@` for the zone apex. + schema: + type: string + example: app2 + security: + - bearerAuth: [] + responses: + '200': + description: Paginated DNS records for the zone. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/DNSRecords' + examples: + paginated: + summary: Page 2 of filtered A records with totals + value: + items: + - recordId: Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0 + name: '@' + type: A + data: 192.0.2.1 + ttl: 3600 + - recordId: ARZaSm3N9qvJemM6yBmuXIO6F_YIfqSiZcaHhHFozlDsDhdOr1njlXc09TAPJlm8dXqGttRrjRKIgiXpXVm9fms + name: app2 + type: A + data: 192.0.2.2 + ttl: 3600 + totalItems: 150 + totalPages: 6 + links: + - rel: self + href: https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=2&pageSize=25&totalRequired=true + - rel: first + href: https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=1&pageSize=25&totalRequired=true + - rel: last + href: https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=6&pageSize=25&totalRequired=true + - rel: next + href: https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=3&pageSize=25&totalRequired=true + - rel: prev + href: https://api.godaddy.com/v3/domains/zones/example.com/dns-records?type=A&name=app2&page=1&pageSize=25&totalRequired=true + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '429': + $ref: '#/components/responses/429' + post: + operationId: createDNSRecord + tags: + - Records + summary: Create a DNS record for a zone + description: | + Creates a new DNS record in the GoDaddy-managed zone. Changes are applied synchronously; no operation polling required. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/zonePath' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DNSRecord_v3' + examples: + aRecord: + summary: Create an A record + value: + name: '@' + type: A + data: 192.0.2.1 + ttl: 3600 + mxRecord: + summary: Create an MX record + value: + name: '@' + type: MX + data: mail.example.com. + ttl: 3600 + priority: 10 + security: + - bearerAuth: [] + responses: + '201': + description: DNS record created. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + Location: + $ref: '#/components/headers/location' + content: + application/json: + schema: + $ref: '#/components/schemas/DNSRecord_v3' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '409': + $ref: '#/components/responses/409' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + /v3/domains/zones/{zone}/dns-records/{recordId}: + put: + operationId: replaceDNSRecord + tags: + - Records + summary: Replace a DNS record + description: | + Fully replaces an existing DNS resource record identified by + recordId within the zone. All writable fields (name, type, data, + ttl) must be supplied; partial updates are not supported on this + endpoint. Changes are applied synchronously. + + GoDaddy-managed system records (SOA and NS) are read-only. When + recordId refers to such a record, the request fails with + `409 Conflict` — the record exists but cannot be modified. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/zonePath' + - $ref: '#/components/parameters/recordId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DNSRecord_v3' + examples: + apexARecord: + summary: Replace apex A record + value: + name: '@' + type: A + data: 192.0.2.1 + ttl: 3600 + security: + - bearerAuth: [] + responses: + '200': + description: DNS record replaced. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/DNSRecord_v3' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '409': + $ref: '#/components/responses/409' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + delete: + operationId: deleteDNSRecord + tags: + - Records + summary: Delete a DNS record + description: | + Permanently removes a DNS resource record from the zone. The + recordId must refer to an existing record within the specified + zone. Changes are applied synchronously. + + GoDaddy-managed system records (SOA and NS) are read-only. When + recordId refers to such a record, the request fails with + `409 Conflict` — the record exists but cannot be deleted. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/zonePath' + - $ref: '#/components/parameters/recordId' + security: + - bearerAuth: [] + responses: + '204': + description: DNS record deleted. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '409': + $ref: '#/components/responses/409' + '429': + $ref: '#/components/responses/429' +components: + schemas: + ArrayOfDNSRecord: + type: array + items: + $ref: '#/components/schemas/DNSRecord' + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + required: + - code + type: object + ErrorLimit: + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + retryAfterSec: + description: Number of seconds to wait before attempting a similar request + format: integer-positive + type: integer + required: + - retryAfterSec + - code + type: object + DNSRecord: + properties: + data: + type: string + name: + format: domain + type: string + port: + description: Service port (SRV only) + maximum: 65535 + minimum: 1 + type: integer + priority: + description: Record priority (MX and SRV only) + format: integer-positive + type: integer + protocol: + description: Service protocol (SRV only) + type: string + service: + description: Service type (SRV only) + type: string + ttl: + format: integer-positive + type: integer + type: + enum: + - A + - AAAA + - CAA + - CNAME + - MX + - NS + - SOA + - SRV + - TXT + type: string + weight: + description: Record weight (SRV only) + format: integer-positive + type: integer + required: + - type + - name + - data + type: object + DNSRecordCreateTypeName: + properties: + data: + type: string + port: + description: Service port (SRV only) + maximum: 65535 + minimum: 1 + type: integer + priority: + description: Record priority (MX and SRV only) + format: integer-positive + type: integer + protocol: + description: Service protocol (SRV only) + type: string + service: + description: Service type (SRV only) + type: string + ttl: + format: integer-positive + type: integer + weight: + description: Record weight (SRV only) + format: integer-positive + type: integer + required: + - data + type: object + DNSRecordCreateType: + properties: + data: + type: string + name: + format: domain + type: string + port: + description: Service port (SRV only) + maximum: 65535 + minimum: 1 + type: integer + priority: + description: Record priority (MX and SRV only) + format: integer-positive + type: integer + protocol: + description: Service protocol (SRV only) + type: string + service: + description: Service type (SRV only) + type: string + ttl: + format: integer-positive + type: integer + weight: + description: Record weight (SRV only) + format: integer-positive + type: integer + required: + - name + - data + type: object + ErrorField: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + - JSONPath referring to a field containing an error + **OR** + - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + DomainForwarding: + properties: + fqdn: + type: string + description: The fqdn (domain or sub domain) to forward (ex somedomain.com or sub.somedomain.com) + type: + type: string + default: REDIRECT_PERMANENT + enum: + - MASKED + - REDIRECT_PERMANENT + - REDIRECT_TEMPORARY + description: |- + The type of forwarding to implement + + - **MASKED** — Prevents the forwarded domain or subdomain URL from displaying in the browser's address bar. + - **REDIRECT_PERMANENT** (default) — Redirects to the url specified in the forwardTo field using a `301 Moved Permanently` HTTP response. Tells user-agents (including search engines) that the location has permanently moved. + - **REDIRECT_TEMPORARY** — Redirects to the url specified in the forwardTo field using a `302 Found` HTTP response. Tells user-agents (including search engines) that the location has temporarily moved. + url: + type: string + format: url + description: Forwards http(s) traffic to this destination url (ex. http://www.somedomain.com/) + mask: + $ref: '#/components/schemas/DomainForwardingMask' + required: + - fqdn + - type + - url + type: object + DomainForwardingCreate: + properties: + type: + type: string + default: REDIRECT_PERMANENT + enum: + - MASKED + - REDIRECT_PERMANENT + - REDIRECT_TEMPORARY + description: |- + The type of forwarding to implement + + - **MASKED** — Prevents the forwarded domain or subdomain URL from displaying in the browser's address bar. + - **REDIRECT_PERMANENT** (default) — Redirects to the url specified in the forwardTo field using a `301 Moved Permanently` HTTP response. Tells user-agents (including search engines) that the location has permanently moved. + - **REDIRECT_TEMPORARY** — Redirects to the url specified in the forwardTo field using a `302 Found` HTTP response. Tells user-agents (including search engines) that the location has temporarily moved. + url: + type: string + format: url + description: Forwards http(s) traffic to this destination url (ex. http://www.somedomain.com/) + mask: + $ref: '#/components/schemas/DomainForwardingMask' + required: + - type + - url + type: object + ErrorField_v2: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + JSONPath referring to a field containing an error, or a field that refers to an + object containing an error (with more detail in `pathRelated`). + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + DomainForwardingMask: + properties: + title: + type: string + description: Displays at the top of the browser window and in search results. + description: + type: string + description: A short description of your website to display in search engine results. + keywords: + type: string + description: A list of comma-separated keywords that describes the content and purpose of your website. + type: object + DNSRecordType: + title: DNS Record Type + description: | + The DNS resource record type. A — IPv4 address record. AAAA — IPv6 address record. CNAME — canonical name alias record; not permitted at the zone apex. MX — mail exchange routing record. TXT — arbitrary text record, used for SPF, DKIM, and domain verification. NS — authoritative name server delegation record. SRV — service locator record. SOA — start of authority record. CAA — certification authority authorization record. + type: string + enum: + - A + - AAAA + - CNAME + - MX + - TXT + - NS + - SRV + - SOA + - CAA + DNSRecords: + title: DNS Records + description: | + Paginated collection of DNS resource records for a zone. HATEOAS links provide navigation to adjacent pages. + type: object + required: + - items + - links + properties: + items: + type: array + description: DNS records for the current page. + items: + $ref: '#/components/schemas/DNSRecord_v3' + totalItems: + type: integer + minimum: 1 + description: | + Total number of records in the zone. Only present when totalRequired=true was passed in the request and the zone contains at least one record. + totalPages: + type: integer + minimum: 1 + description: | + Total number of pages at the requested pageSize. Only present under the same conditions as totalItems. + links: + type: array + items: + $ref: '#/components/schemas/LinkDescription' + description: | + HATEOAS pagination links. rel=self — this page. rel=next — next page (absent on the last page). rel=prev — previous page (absent on the first page). + readOnly: true + DNSRecord_v3: + title: DNS Record + description: A single DNS resource record within a zone. + type: object + required: + - name + - type + - data + - ttl + properties: + recordId: + type: string + description: Server-assigned identifier for this DNS record. Stable across updates. + readOnly: true + example: rec_a1b2c3d4 + name: + type: string + minLength: 1 + maxLength: 255 + description: | + The DNS record name relative to the zone apex. Use @ to represent the zone apex itself (e.g. the bare domain example.com). + example: www + type: + title: DNS Record Type + description: | + The DNS resource record type. A — IPv4 address record. AAAA — IPv6 address record. CNAME — canonical name alias record; not permitted at the zone apex. MX — mail exchange routing record. TXT — arbitrary text record, used for SPF, DKIM, and domain verification. NS — authoritative name server delegation record. SRV — service locator record. SOA — start of authority record. CAA — certification authority authorization record. + type: string + enum: + - A + - AAAA + - CNAME + - MX + - TXT + - NS + - SRV + - SOA + - CAA + data: + type: string + minLength: 1 + maxLength: 512 + description: | + The record value. Format is type-specific — for example, an IPv4 address for A records, or a hostname for CNAME and MX records. + example: 93.184.216.34 + ttl: + type: integer + minimum: 600 + maximum: 86400 + description: Time-to-live in seconds. Controls how long resolvers cache this record. + example: 3600 + priority: + type: integer + minimum: 0 + maximum: 65535 + description: Priority value for MX and SRV records. Lower values are preferred. + service: + type: string + description: Service label for SRV records (e.g. _http). + port: + type: integer + minimum: 0 + maximum: 65535 + description: Port number for SRV records. + weight: + type: integer + minimum: 0 + maximum: 65535 + description: | + Weight for SRV load balancing among records with equal priority. Higher weight increases the probability of selection. + protocol: + type: string + description: Protocol identifier for SRV records (e.g. _tcp, _udp). + flag: + type: integer + minimum: 0 + maximum: 255 + description: | + Flag byte for CAA records. 0 indicates non-critical; 128 indicates critical (the issuer must understand the tag property to proceed). + tag: + type: string + description: | + Tag property for CAA records. Common values: issue, issuewild, iodef. + Uuid: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + LinkDescription: + title: Link Description + type: object + description: A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02). + properties: + href: + description: The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call. + type: string + format: uri + rel: + description: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml). + type: string + title: + description: The link title. + type: string + targetMediaType: + description: The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target. + type: string + targetSchema: + description: The schema that describes the link target. + method: + description: The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`. + type: string + submissionMediaType: + description: The media type with which to submit data with the request. + type: string + default: application/json + submissionSchema: + description: The schema that describes the request data. + required: + - rel + - href + Error_v3: + type: object + title: Error + description: The error information. + properties: + name: + type: string + description: The human-readable, unique name of the error. + correlationId: + type: string + description: Internal identifier used for correlation purposes. + message: + type: string + description: The message that describes the error. + informationLink: + type: string + description: The URI for detailed information related to this error for the developer. + details: + type: array + description: An array of additional details about the error. Required for client-side `4XX` errors. + additionalItems: false + items: + $ref: '#/components/schemas/ErrorDetails' + links: + type: array + description: An array of error-related HATEOAS links. + readOnly: true + items: + $ref: '#/components/schemas/LinkDescription' + readOnly: true + required: + - name + - correlationId + - message + ErrorDetails: + title: Error Details + type: object + description: The error details. Required for client-side `4XX` errors. + properties: + field: + type: string + description: The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors. + value: + type: string + description: The value of the field that caused the error. + location: + type: string + description: The location of the field that caused the error. Value is `body`, `path`, or `query`. + default: body + issue: + type: string + description: The unique fine-grained application-level error code. + description: + type: string + description: The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value. + required: + - issue + parameters: + xRequestId: + name: X-Request-Id + in: header + description: | + Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header. + required: false + schema: + $ref: '#/components/schemas/Uuid' + zonePath: + name: zone + in: path + description: | + The domain name in punycode A-label form (for example, example.com). For IDNs, use the punycode representation. + required: true + schema: + type: string + example: example.com + page: + name: page + in: query + description: | + One-based page number for offset-based pagination. Defaults to 1. + required: false + schema: + type: integer + minimum: 1 + default: 1 + example: 2 + pageSize: + name: pageSize + in: query + description: | + Maximum number of items to return per page. + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 25 + example: 25 + totalRequired: + name: totalRequired + in: query + description: | + When true, the response includes totalItems and totalPages for the current filter when at least one record matches. Both are omitted when the result set is empty. Defaults to false; omitting totals avoids the cost of a count query on large collections. + required: false + schema: + type: boolean + default: false + example: true + fields: + name: fields + in: query + description: | + Comma-separated list of fields to include in each item of the response. Omitted fields are excluded from the payload. When absent, all fields are returned. Field names must match properties defined on the item schema for the operation; any unknown or invalid name returns 400 Bad Request. + required: false + schema: + type: string + example: name,type,data,ttl + recordId: + name: recordId + in: path + description: Server-assigned DNS record identifier within the zone. + required: true + schema: + type: string + example: Aad7oqdXCms9mlJvm_m6UFYqmwjyP20H2KBmQHgttK9kGbF_TuI3knsocArQqIv5I0Kq5C0 + responses: + '400': + description: Malformed request syntax, missing required field, or invalid field type. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '401': + description: Authentication credentials are missing or invalid. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '403': + description: Authenticated identity is not authorized to perform this operation. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '404': + description: The requested resource was not found. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '409': + description: | + Conflict — the request cannot be completed in the current state. Used for quote lifecycle errors (quote_expired, quote_consumed), domain state conflicts such as domain_already_exists, and immutable DNS records (dns_record_not_mutable) such as GoDaddy-managed SOA and NS records. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '422': + description: | + Semantically invalid request — valid structure but violates a business rule, such as an ineligible contact, unsupported TLD, non-renewable domain status, or quote_mismatch (e.g. iscCode or acknowledgedFees that do not match the locked quote). + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '429': + description: Too many requests — rate limit exceeded. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + headers: + xRequestId: + description: Request correlation identifier echoed from the request or server-generated. + schema: + $ref: '#/components/schemas/Uuid' + location: + description: URL of the created or async resource. + schema: + type: string + format: uri + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: 'GoDaddy Personal Access Token (PAT), passed as Authorization: Bearer .' + x-stackQL-resources: + records: + id: godaddy.dns.records + name: records + title: Records (Domains v1) + methods: + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1records/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .records) "string" }}{{ .records }}{{ else }}{{ toJson .records }}{{ end }}' + nativeCasing: camel + replace_all: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1records/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .records) "string" }}{{ .records }}{{ else }}{{ toJson .records }}{{ end }}' + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}~1{name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + config: + queryParamPushdown: + top: + paramName: limit + request: + nativeCasing: camel + replace_by_type_name: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}~1{name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .records) "string" }}{{ .records }}{{ else }}{{ toJson .records }}{{ end }}' + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}~1{name}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + replace_by_type: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .records) "string" }}{{ .records }}{{ else }}{{ toJson .records }}{{ end }}' + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/records/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/records/methods/delete' + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + forwards_v2: + id: godaddy.dns.forwards_v2 + name: forwards_v2 + title: Forwards (Domains v2) + methods: + delete: + operation: + $ref: '#/paths/~1domains~1forwards~1{fqdn}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1domains~1forwards~1{fqdn}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1forwards~1{fqdn}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1forwards~1{fqdn}/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/forwards_v2/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/forwards_v2/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/forwards_v2/methods/replace' + delete: + - $ref: '#/components/x-stackQL-resources/forwards_v2/methods/delete' + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + records_v3: + id: godaddy.dns.records_v3 + name: records_v3 + title: Records (Domains v3) + methods: + list: + operation: + $ref: '#/paths/~1v3~1domains~1zones~1{zone}~1dns-records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.items + config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: $.links[?(@.rel=="next")].href + location: body + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1domains~1zones~1{zone}~1dns-records/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1domains~1zones~1{zone}~1dns-records~1{recordId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v3~1domains~1zones~1{zone}~1dns-records~1{recordId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/records_v3/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/records_v3/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/records_v3/methods/replace' + delete: + - $ref: '#/components/x-stackQL-resources/records_v3/methods/delete' + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. diff --git a/providers/src/godaddy/v00.00.00000/services/domains.yaml b/providers/src/godaddy/v00.00.00000/services/domains.yaml index 01b75cb5..101464ee 100644 --- a/providers/src/godaddy/v00.00.00000/services/domains.yaml +++ b/providers/src/godaddy/v00.00.00000/services/domains.yaml @@ -1,14 +1,21 @@ -openapi: 3.0.0 +openapi: 3.1.1 info: - title: api.godaddy.com - version: 2.4.9 + title: GoDaddy Domains + description: 'Registered domain inventory, settings and lifecycle: domain details, contacts, nameservers, renewal, cancellation, registrant changes, privacy forwarding, pending actions and notifications (Domains v1 and v2), the v3 domain list and asynchronous operations, and monthly API usage.' + version: v00.00.00000 servers: - - url: 'https://api.godaddy.com/' + - url: https://api.godaddy.com + description: GoDaddy production API +security: + - bearerAuth: [] +tags: [] paths: /v1/domains: get: + tags: + - Manage Domain Settings parameters: - - description: Shopper ID whose domains are to be retrieved + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' in: header name: X-Shopper-Id required: false @@ -18,7 +25,10 @@ paths: in: query name: statuses required: false + style: form + explode: false schema: + type: array items: enum: - ACTIVE @@ -214,6 +224,7 @@ paths: - PENDING_TRANSFER_SUBMIT_PREMIUM - PENDING_UNLOCK_DATA_QUALITY - PENDING_UNLOCK_PREMIUM + - PENDING_UPDATE - PENDING_UPDATED_REGISTRANT_DATA_QUALITY - PENDING_UPDATE_ACCOUNT - PENDING_UPDATE_API @@ -246,12 +257,14 @@ paths: - UPDATED_OWNERSHIP - UPDATED_OWNERSHIP_HELD type: string - type: array - description: Only include results with `status` value in any of the specified groups in: query name: statusGroups required: false + style: form + explode: false schema: + type: array items: enum: - INACTIVE @@ -261,15 +274,14 @@ paths: - VERIFICATION_ICANN - VISIBLE type: string - type: array - description: Maximum number of domains to return in: query name: limit required: false schema: - maximum: 1000 - minimum: 1 type: integer + minimum: 1 + maximum: 1000 - description: Marker Domain to use as the offset in results in: query name: marker @@ -280,30 +292,33 @@ paths: in: query name: includes required: false + style: form + explode: false schema: + type: array items: enum: - authCode - contacts - nameServers type: string - type: array - description: Only include results that have been modified since the specified date in: query name: modifiedDate required: false schema: - format: iso-datetime type: string + format: iso-datetime responses: '200': + description: Request was successful content: - application/javascript: + application/json: schema: + type: array items: $ref: '#/components/schemas/DomainSummary' - type: array - application/json: + application/javascript: schema: items: $ref: '#/components/schemas/DomainSummary' @@ -323,13 +338,13 @@ paths: items: $ref: '#/components/schemas/DomainSummary' type: array - description: Request was successful '400': + description: Request was malformed content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -341,13 +356,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -359,13 +374,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid '403': + description: Authenticated user is not allowed access content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -377,13 +392,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '422': + description: Limit must have a value no greater than 1000 content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -395,13 +410,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Limit must have a value no greater than 1000 '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -413,13 +428,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -431,79 +446,48 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] operationId: list summary: Retrieve a list of Domains for the specified Shopper - description: Retrieve a list of Domains for the specified Shopper - x-stackQL-verb: select - /v1/domains/agreements: - get: + description: Returns a paginated list of domains owned by the authenticated account. Supports filtering by status and optional inclusion of contacts, nameservers, and authCode in each record. + /v1/domains/{domain}: + delete: + tags: + - Manage Domain Settings parameters: - - description: Unique identifier of the Market used to retrieve/translate Legal Agreements - in: header - name: X-Market-Id - required: false - schema: - default: en-US - format: bcp-47 - type: string - - description: list of TLDs whose legal agreements are to be retrieved - in: query - name: tlds - required: true - schema: - items: - type: string - type: array - - description: Whether or not privacy has been requested - in: query - name: privacy + - description: Domain to cancel + in: path + name: domain required: true schema: - type: boolean - - description: Whether or not domain tranfer has been requested - in: query - name: forTransfer - required: false - schema: - type: boolean + type: string responses: '200': + description: Request was successful + '400': + description: Request was malformed content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array application/json: schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array + $ref: '#/components/schemas/Error' text/javascript: schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array + $ref: '#/components/schemas/Error' text/xml: schema: - items: - $ref: '#/components/schemas/LegalAgreement' - type: array - description: Request was successful - '400': + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -515,13 +499,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed - '401': + '403': + description: Authenticated user is not allowed access content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -533,13 +517,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': + '404': + description: The domain does not exist content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -551,13 +535,15 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': + '422': + description: | + - Unknown domain error + - At least two apex (aka @) `nameServers` must be specified content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -569,13 +555,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Resource not found '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -587,13 +573,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -605,66 +591,69 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: getAgreement - summary: Retrieve the legal agreement(s) required to purchase the specified TLD and add-ons - description: Retrieve the legal agreement(s) required to purchase the specified TLD and add-ons - x-stackQL-verb: select - /v1/domains/available: + operationId: cancel + summary: Cancel a purchased domain + description: Cancels a purchased domain and initiates a refund if within the cancellation window. This action is irreversible. get: + tags: + - Manage Domain Settings parameters: - - description: Domain name whose availability is to be checked - in: query - name: domain - required: true - schema: - type: string - - description: Optimize for time ('FAST') or accuracy ('FULL') - in: query - name: checkType + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id required: false schema: - default: FAST - enum: - - FAST - - FULL - - fast - - full type: string - - description: 'Whether or not to include domains available for transfer. If set to True, checkType is ignored' - in: query - name: forTransfer - required: false + - description: Domain name whose details are to be retrieved + in: path + name: domain + required: true schema: - default: false - type: boolean + type: string responses: '200': + description: Request was successful content: + application/json: + schema: + $ref: '#/components/schemas/DomainDetail' application/javascript: schema: - $ref: '#/components/schemas/DomainAvailableResponse' + $ref: '#/components/schemas/DomainDetail' + application/xml: + schema: + $ref: '#/components/schemas/DomainDetail' + text/javascript: + schema: + $ref: '#/components/schemas/DomainDetail' + text/xml: + schema: + $ref: '#/components/schemas/DomainDetail' + '203': + description: Request was partially successful, see verifications.status for further detail + content: application/json: schema: - $ref: '#/components/schemas/DomainAvailableResponse' + $ref: '#/components/schemas/DomainDetail' + application/javascript: + schema: + $ref: '#/components/schemas/DomainDetail' application/xml: schema: - $ref: '#/components/schemas/DomainAvailableResponse' + $ref: '#/components/schemas/DomainDetail' text/javascript: schema: - $ref: '#/components/schemas/DomainAvailableResponse' + $ref: '#/components/schemas/DomainDetail' text/xml: schema: - $ref: '#/components/schemas/DomainAvailableResponse' - description: Request was successful + $ref: '#/components/schemas/DomainDetail' '400': + description: Request was malformed content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -676,13 +665,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -694,15 +683,33 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid '403': + description: Authenticated user is not allowed access content: + application/json: + schema: + $ref: '#/components/schemas/Error' application/javascript: schema: $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: application/json: schema: $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' @@ -712,13 +719,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '422': + description: '`domain` must be specified' content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -730,13 +737,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: domain must be specified '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -748,13 +755,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -766,70 +773,84 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: available - summary: Determine whether or not the specified domain is available for purchase - description: Determine whether or not the specified domain is available for purchase - x-stackQL-verb: select - post: + operationId: get + summary: Retrieve details for the specified Domain + description: Returns the full DomainDetail object including status, contacts, nameservers, lock state, privacy flag, and expiration timestamp. + patch: + tags: + - Manage Domain Settings parameters: - - description: Optimize for time ('FAST') or accuracy ('FULL') - in: query - name: checkType + - description: Domain whose details are to be updated + in: path + name: domain + required: true + schema: + type: string + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id required: false schema: - default: FAST - enum: - - FAST - - FULL - - fast - - full type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainAvailableBulk' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainUpdate' + application/xml: + schema: + $ref: '#/components/schemas/DomainUpdate' + text/xml: + schema: + $ref: '#/components/schemas/DomainUpdate' + description: Changes to apply to existing Domain + required: true + responses: + '200': + description: Request was successful + '400': + description: Request was malformed + content: application/json: schema: - $ref: '#/components/schemas/DomainAvailableBulk' + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: - $ref: '#/components/schemas/DomainAvailableBulk' + $ref: '#/components/schemas/Error' text/javascript: schema: - $ref: '#/components/schemas/DomainAvailableBulk' + $ref: '#/components/schemas/Error' text/xml: schema: - $ref: '#/components/schemas/DomainAvailableBulk' - description: Request was successful - '203': + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainAvailableBulkMixed' application/json: schema: - $ref: '#/components/schemas/DomainAvailableBulkMixed' + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: - $ref: '#/components/schemas/DomainAvailableBulkMixed' + $ref: '#/components/schemas/Error' text/javascript: schema: - $ref: '#/components/schemas/DomainAvailableBulkMixed' + $ref: '#/components/schemas/Error' text/xml: schema: - $ref: '#/components/schemas/DomainAvailableBulkMixed' - description: Request was partially successful - '400': + $ref: '#/components/schemas/Error' + '403': + description: Specified Subaccount not owned by authenticated Shopper content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -841,13 +862,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed - '401': + '404': + description: Resource not found content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -859,13 +880,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': + '409': + description: The given domain is not eligible to have its nameservers changed content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -877,13 +898,15 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '422': + description: | + - At least two apex (aka @) `nameServers` must be specified + - Failed to update nameservers content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -895,13 +918,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: domain must be specified '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -913,13 +936,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -931,63 +954,51 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: availableBulk + operationId: update + summary: Update details for the specified Domain + description: Updates one or more fields on the domain. Accepts a partial DomainUpdate body - only fields included are modified. Returns 204 No Content. + /v1/domains/{domain}/contacts: + patch: + tags: + - Manage Domain Settings + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain whose Contacts are to be updated. + in: path + name: domain + required: true + schema: + type: string requestBody: content: application/json: schema: - items: - type: string - maximum: 500 - type: array + $ref: '#/components/schemas/DomainContacts' application/xml: schema: - items: - type: string - maximum: 500 - type: array + $ref: '#/components/schemas/DomainContacts' text/xml: schema: - items: - type: string - maximum: 500 - type: array - description: Domain names for which to check availability + $ref: '#/components/schemas/DomainContacts' + description: Changes to apply to existing Contacts required: true - summary: Determine whether or not the specified domains are available for purchase - description: Determine whether or not the specified domains are available for purchase - /v1/domains/contacts/validate: - post: - parameters: - - description: 'PrivateLabelId to operate as, if different from JWT' - in: header - name: X-Private-Label-Id - required: false - schema: - default: 1 - type: integer - - description: 'MarketId in which the request is being made, and for which responses should be localized' - in: query - name: marketId - required: false - schema: - default: en-US - format: bcp-47 - type: string responses: '200': description: No response was specified '204': description: Request was successful '400': + description: Request was malformed content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -999,49 +1010,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorDomainContactsValidate' - application/json: - schema: - $ref: '#/components/schemas/ErrorDomainContactsValidate' - application/xml: - schema: - $ref: '#/components/schemas/ErrorDomainContactsValidate' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorDomainContactsValidate' - text/xml: - schema: - $ref: '#/components/schemas/ErrorDomainContactsValidate' - description: 'Request body doesn''t fulfill schema, see details in `fields`' - '429': + '401': + description: Authentication info not sent or invalid content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1053,69 +1028,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'All contacts specified in request will be validated against all domains specifed in "domains". As an alternative, you can also pass in tlds, with the exception of `uk`, which requires full domain names' - operationId: ContactsValidate - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DomainsContactsBulk' - application/xml: - schema: - $ref: '#/components/schemas/DomainsContactsBulk' - text/xml: - schema: - $ref: '#/components/schemas/DomainsContactsBulk' - description: An instance document expected for domains contacts validation - required: true - summary: Validate the request body using the Domain Contact Validation Schema for specified domains. - /v1/domains/identityDocuments: - get: - parameters: - - description: Shopper ID of the owner of the identity document. This is only required if you are a Reseller managing identity documents for your customers. Use this header to pass in their subaccount ID - in: header - name: X-Shopper-Id - required: false - schema: - type: string - responses: - '200': + '403': + description: Authenticated user is not allowed access content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentSummary' - type: array application/json: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentSummary' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentSummary' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentSummary' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentSummary' - type: array - description: Request was successful - '400': - content: - application/javascript: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1127,13 +1046,15 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed - '401': + '404': + description: | + - Domain not found + - Identity document not found content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1145,13 +1066,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': + '422': + description: '`domain` is not a valid Domain name' content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1163,13 +1084,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -1181,13 +1102,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1199,48 +1120,84 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: listIdentityDocuments - summary: Get a collection of identity documents the current shopper owns - description: Get a collection of identity documents the current shopper owns - x-stackQL-verb: select - post: - parameters: - - description: Shopper ID of the owner of the identity document. This is only required if you are a Reseller managing identity documents for your customers. Use this header to pass in their subaccount ID - in: header - name: X-Shopper-Id - required: false - schema: - type: string - responses: - '200': + '504': + description: Gateway timeout content: - application/javascript: - schema: - $ref: '#/components/schemas/IdentityDocumentId' application/json: schema: - $ref: '#/components/schemas/IdentityDocumentId' + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: - $ref: '#/components/schemas/IdentityDocumentId' + $ref: '#/components/schemas/Error' text/javascript: schema: - $ref: '#/components/schemas/IdentityDocumentId' + $ref: '#/components/schemas/Error' text/xml: schema: - $ref: '#/components/schemas/IdentityDocumentId' - description: Request was successful - '400': - content: + $ref: '#/components/schemas/Error' + operationId: updateContacts + summary: Update domain + description: Updates domain settings. Only fields included in the request body are modified. Returns 204 No Content. + /v1/domains/{domain}/renew: + post: + tags: + - Register and Renew Domains + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain to renew + in: path + name: domain + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainRenew' + application/xml: + schema: + $ref: '#/components/schemas/DomainRenew' + text/xml: + schema: + $ref: '#/components/schemas/DomainRenew' + description: Options for renewing existing Domain + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' application/javascript: schema: - $ref: '#/components/schemas/Error' + $ref: '#/components/schemas/DomainPurchaseResponse' + application/xml: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + text/javascript: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + text/xml: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + '400': + description: Request was malformed + content: application/json: schema: $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' @@ -1250,13 +1207,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1268,15 +1225,33 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid '403': + description: Authenticated user is not allowed access content: + application/json: + schema: + $ref: '#/components/schemas/Error' application/javascript: schema: $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: application/json: schema: $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' @@ -1286,15 +1261,35 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': + '409': + description: The domain status does not allow performing the operation content: + application/json: + schema: + $ref: '#/components/schemas/Error' application/javascript: schema: $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - End-user must read and consent to all of the following legal agreements + - `domain` must match `sld.tld` + content: application/json: schema: $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' @@ -1304,13 +1299,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: 'Invalid document type for contact. For individuals, choose from DRIVERS_LICENSE, RESIDENT_ID, RESIDENT_ID_TEMPORARY and PASSPORT. For corporations, choose from BUSINESS_LICENSE and ORGANIZATION_CODE_CERTIFICATE' '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -1322,13 +1317,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1340,59 +1335,36 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: createIdentityDocument - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IdentityDocumentCreate' - application/xml: - schema: - $ref: '#/components/schemas/IdentityDocumentCreate' - text/xml: - schema: - $ref: '#/components/schemas/IdentityDocumentCreate' - description: Identity document data - required: true - summary: Create an Identity Document from uploaded image - description: Create an Identity Document from uploaded image - /v1/domains/purchase: + operationId: renew + summary: Renew the specified Domain + description: Renews the domain for the specified period, extending the expiration date. Charges the account's billing method. + /v1/domains/{domain}/verifyRegistrantEmail: post: + tags: + - Manage Domain Settings parameters: - - description: The Shopper for whom the domain should be purchased + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' in: header name: X-Shopper-Id required: false schema: type: string + - description: Domain whose Contact E-mail should be verified. + in: path + name: domain + required: true + schema: + type: string responses: '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/json: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' description: Request was successful '400': + description: Request was malformed content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1404,13 +1376,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1422,13 +1394,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid '403': + description: Authenticated user is not allowed access content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1440,13 +1412,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '404': + description: Resource not found content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1458,13 +1430,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Resource not found '422': + description: '`domain` is not a valid Domain name' content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1476,13 +1448,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: domain must be specified '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/json: + application/javascript: schema: $ref: '#/components/schemas/ErrorLimit' application/xml: @@ -1494,13 +1466,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1512,48 +1484,13 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: purchase - requestBody: - $ref: '#/components/requestBodies/DomainPurchase' - summary: Purchase and register the specified Domain - description: Purchase and register the specified Domain - '/v1/domains/purchase/schema/{tld}': - get: - parameters: - - description: The Top-Level Domain whose schema should be retrieved - in: path - name: tld - required: true - schema: - type: string - responses: - '200': + '504': + description: Gateway timeout content: - application/javascript: - schema: - $ref: '#/components/schemas/JsonSchema' application/json: - schema: - $ref: '#/components/schemas/JsonSchema' - application/xml: - schema: - $ref: '#/components/schemas/JsonSchema' - text/javascript: - schema: - $ref: '#/components/schemas/JsonSchema' - text/xml: - schema: - $ref: '#/components/schemas/JsonSchema' - description: Request was successful - '400': - content: - application/javascript: schema: $ref: '#/components/schemas/Error' - application/json: + application/javascript: schema: $ref: '#/components/schemas/Error' application/xml: @@ -1565,3853 +1502,1849 @@ paths: text/xml: schema: $ref: '#/components/schemas/Error' - description: Request was malformed + operationId: verifyEmail + summary: Re-send Contact E-mail Verification for specified Domain + description: Re-sends the ICANN registrant email verification to the domain's registrant contact. Use when the original verification email was not received or has expired. + /domains/{domain}/changeOfRegistrant: + delete: + tags: + - Manage Domain Settings + summary: Cancel a pending change of registrant request + description: Cancels a pending change of registrant. Returns 202 - poll GET .../actions/CHANGE_OF_REGISTRANT_DELETE until COMPLETED, FAILED, or CANCELLED. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain whose change of registrant is to be cancelled + name: domain + in: path + required: true + schema: + 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 content: - application/javascript: + '*/*': schema: $ref: '#/components/schemas/Error' - application/json: + '403': + description: Authenticated user is not allowed access + content: + '*/*': schema: $ref: '#/components/schemas/Error' - application/xml: + '404': + description: The contact does not exist + content: + '*/*': schema: $ref: '#/components/schemas/Error' - text/javascript: + '409': + description: There is already a similar action processing + content: + '*/*': schema: $ref: '#/components/schemas/Error' - text/xml: + '422': + description: '`domain` must be specified' + content: + '*/*': schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': + '429': + description: Too many requests received within interval content: - application/javascript: + '*/*': schema: - $ref: '#/components/schemas/Error' - application/json: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + '*/*': schema: $ref: '#/components/schemas/Error' - application/xml: + '502': + description: Dependent service unavailable + content: + '*/*': schema: $ref: '#/components/schemas/Error' - text/javascript: + operationId: deleteDomainsByDomainChangeOfRegistrant + get: + tags: + - Manage Domain Settings + summary: Retrieve change of registrant information + description: Returns current change of registrant details including status, requested contacts, and any pending approvals. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain whose change of registrant information is to be retrieved + name: domain + in: path + required: true + schema: + type: string + responses: + '200': + description: Request was successful + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/DomainChangeOfRegistrant' + '401': + description: Authentication info not sent or invalid + content: + application/json: schema: $ref: '#/components/schemas/Error' + '403': description: Authenticated user is not allowed access - '404': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: + '404': + description: The contact does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/xml: + '409': + description: There is already a similar action processing + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Resource not found '422': + description: '`domain` must be specified' content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`tld` must be specified' '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: + '502': + description: Dependent service unavailable + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: schema - summary: Retrieve the schema to be submitted when registering a Domain for the specified TLD - description: Retrieve the schema to be submitted when registering a Domain for the specified TLD - x-stackQL-verb: select - /v1/domains/purchase/validate: - post: + operationId: getDomainsByDomainChangeOfRegistrant + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/nameServers: + put: + tags: + - Manage Domain Settings + summary: Replaces the existing name servers on the domain. + description: Replaces the domain's authoritative nameservers. Returns 202 - poll GET .../actions/DOMAIN_UPDATE_NAME_SERVERS until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain whose name servers are to be replaced + name: domain + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainNameServerUpdateV2' + description: Name server records to replace on the domain + required: true responses: - '200': - description: Request was successful + '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 content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed '401': + description: Request was malformed content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '404': + description: The domain does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '409': + description: There is already a similar action processing + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/xml: + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': + '429': + description: Too many requests received within interval content: - application/javascript: + application/json: schema: - $ref: '#/components/schemas/Error' + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + operationId: putDomainsByDomainNameServers + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}: + get: + tags: + - Manage Domain Settings + summary: Retrieve details for the specified Domain + description: Returns the full DomainDetailV2 object including status, contacts, nameservers, lock state, privacy flag, and expiration timestamp. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain name whose details are to be retrieved + name: domain + in: path + required: true + schema: + type: string + - name: includes + required: false + in: query + description: Optional details to be included in the response + style: form + explode: false + schema: + type: array + items: + enum: + - actions + - contacts + - dnssecRecords + - registryStatusCodes + type: string + responses: + '200': + description: Request was successful + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/javascript: + $ref: '#/components/schemas/DomainDetailV2' + '203': + description: Request was partially successful, but actions, contacts, and/or verifications may not be included. + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/DomainDetailV2' + '401': + description: Authentication info not sent or invalid + content: + application/json: schema: $ref: '#/components/schemas/Error' + '403': description: Authenticated user is not allowed access - '404': content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '404': + description: The contact does not exist + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '422': + description: '`domain` must be specified' + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '429': + description: Too many requests received within interval + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Resource not found - '422': + operationId: getDomainsByDomain + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/privacy/forwarding: + get: + tags: + - Manage Domain Settings + summary: Retrieve privacy email forwarding settings showing where emails are delivered + description: Returns the current privacy email forwarding configuration including target address and forwarding mode. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain name whose details are to be retrieved + name: domain + in: path + required: true + schema: + type: string + responses: + '200': + description: Request was successful content: - application/javascript: + application/json: schema: - $ref: '#/components/schemas/Error' + $ref: '#/components/schemas/DomainPrivacyForwarding' + '401': + description: Authentication info not sent or invalid + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '403': + description: Authenticated user is not allowed access + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '404': + description: The domain does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/xml: + '422': + description: '`domain` must be specified' + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: 'Based on restrictions declared in JSON schema returned by `./schema/{tld}`' '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: getDomainsByDomainPrivacyForwarding + patch: + tags: + - Manage Domain Settings + summary: Update privacy email forwarding settings to determine how emails are delivered + description: Updates privacy email forwarding settings. Only fields included in the request are modified. Returns 202 - poll the actions endpoint for completion. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain name whose details are to be retrieved + name: domain + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPrivacyForwardingUpdate' + description: Update privacy email forwarding settings + required: true + 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 + content: + application/json: schema: $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '404': + description: The domain does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '409': + description: There is already a similar action processing + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/xml: + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: schema: $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': description: Internal server error - security: - - sso_key: [] - operationId: validate - requestBody: - $ref: '#/components/requestBodies/DomainPurchase' - summary: Validate the request body using the Domain Purchase Schema for the specified TLD - description: Validate the request body using the Domain Purchase Schema for the specified TLD - /v1/domains/suggest: + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: patchDomainsByDomainPrivacyForwarding + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/actions: get: + tags: + - Domain Actions + summary: Retrieves a list of the most recent actions for the specified domain + description: Returns a paginated list of recent actions for the domain. Use to track long-running operations or audit domain history. parameters: - - description: Shopper ID for which the suggestions are being generated - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain name or set of keywords for which alternative domain names will be suggested - in: query - name: query - required: false - schema: - type: string - - description: |- - Two-letter ISO country code to be used as a hint for target region - NOTE: These are sample values, there are many - more - in: query - name: country + - name: X-Request-Id required: false + in: header + description: A client provided identifier for tracking this request. schema: - enum: - - AC - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AX - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BM - - BN - - BO - - BQ - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CV - - CW - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KR - - KV - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MG - - MH - - MK - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL - - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - ST - - SV - - SX - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TP - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW - format: iso-country-code type: string - - description: Name of city to be used as a hint for target region - in: query - name: city - required: false + - description: Domain whose actions are to be retrieved + name: domain + in: path + required: true schema: - format: city-name type: string - - description: |- - Sources to be queried - CC_TLD - Varies the TLD using Country Codes - EXTENSION - Varies the TLD - KEYWORD_SPIN - Identifies keywords and then rotates each one - PREMIUM - Includes variations with premium prices - in: query - name: sources - required: false - schema: - items: - enum: - - CC_TLD - - EXTENSION - - KEYWORD_SPIN - - PREMIUM - - cctld - - extension - - keywordspin - - premium - type: string - type: array - - description: |- - Top-level domains to be included in suggestions - NOTE: These are sample values, there are many - more - in: query - name: tlds - required: false - schema: - items: - type: string - type: array - - description: Maximum length of second-level domain - in: query - name: lengthMax - required: false - schema: - type: integer - - description: Minimum length of second-level domain - in: query - name: lengthMin - required: false - schema: - type: integer - - description: Maximum number of suggestions to return - in: query - name: limit - required: false - schema: - type: integer - - description: |- - Maximum amount of time, in milliseconds, to wait for responses - If elapses, return the results compiled up to that point - in: query - name: waitMs - required: false - schema: - default: 1000 - format: integer-positive - type: integer responses: '200': + description: Request was successful content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/DomainSuggestion' - type: array application/json: schema: - items: - $ref: '#/components/schemas/DomainSuggestion' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/DomainSuggestion' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/DomainSuggestion' type: array - text/xml: - schema: items: - $ref: '#/components/schemas/DomainSuggestion' - type: array - description: Request was successful - '400': + $ref: '#/components/schemas/Action' + '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '404': + description: The domain does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '429': + description: Too many requests received within interval + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Request was malformed + operationId: getDomainsByDomainActions + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/actions/{type}: + delete: + tags: + - Domain Actions + summary: Cancel the most recent user action for the specified domain + description: Cancels the most recent user-initiated action if it is still in a cancellable state. Returns 202 Accepted. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain whose action is to be cancelled + name: domain + in: path + required: true + schema: + type: string + - name: type + description: The type of action to cancel + in: path + required: true + schema: + type: string + enum: + - AUTH_CODE_REGENERATE + - CHANGE_OF_REGISTRANT_DELETE + - DOMAIN_DELETE + - DOMAIN_UPDATE + - DOMAIN_UPDATE_CONTACTS + - DOMAIN_UPDATE_NAME_SERVERS + - PRIVACY_FORWARDING_UPDATE + - REGISTER + - TRANSFER + - TRANSFER_IN + - TRANSFER_IN_ACCEPT + - TRANSFER_IN_CANCEL + - TRANSFER_IN_RESTART + - TRANSFER_IN_RETRY + - TRANSFER_OUT + - TRANSFER_OUT_ACCEPT + - TRANSFER_OUT_REJECT + - TRANSFER_OUT_REQUESTED + responses: + '204': + description: Request was successful '401': + description: Authentication info not sent or invalid content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid '403': + description: Authenticated user is not allowed access content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '404': + description: The domain does not exist content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': + '409': + description: The action status does not allow performing the operation content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`query` must be specified' '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: + operationId: deleteDomainsByDomainActionsByType + get: + tags: + - Domain Actions + summary: Retrieves the most recent action for the specified domain + description: Returns the most recent action of the specified type including status, timestamps, and any error details. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain whose action is to be retrieved + name: domain + in: path + required: true + schema: + type: string + - name: type + description: The type of action to retrieve + in: path + required: true + schema: + type: string + enum: + - AUTH_CODE_REGENERATE + - CHANGE_OF_REGISTRANT_DELETE + - DOMAIN_DELETE + - DOMAIN_UPDATE + - DOMAIN_UPDATE_CONTACTS + - DOMAIN_UPDATE_NAME_SERVERS + - PRIVACY_FORWARDING_UPDATE + - REGISTER + - TRANSFER + - TRANSFER_IN + - TRANSFER_IN_ACCEPT + - TRANSFER_IN_CANCEL + - TRANSFER_IN_RESTART + - TRANSFER_IN_RETRY + - TRANSFER_OUT + - TRANSFER_OUT_ACCEPT + - TRANSFER_OUT_REJECT + - TRANSFER_OUT_REQUESTED + responses: + '200': + description: Request was successful + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/Action' + '401': + description: Authentication info not sent or invalid + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Internal server error - '504': + '403': + description: Authenticated user is not allowed access content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '404': + description: The domain does not exist + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '409': + description: The domain status does not allow performing the operation + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '429': + description: Too many requests received within interval + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: suggest - summary: 'Suggest alternate Domain names based on a seed Domain, a set of keywords, or the shopper''s purchase history' - description: 'Suggest alternate Domain names based on a seed Domain, a set of keywords, or the shopper''s purchase history' - x-stackQL-verb: select - /v1/domains/tlds: + operationId: getDomainsByDomainActionsByType + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/notifications: get: + tags: + - Domain Notifications + summary: Retrieve the next domain notification + description: Returns the next unacknowledged domain notification. Returns 200 with a Notification body, or 204 if no notifications are pending. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string responses: '200': + description: Request was successful content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/TldSummary' - type: array application/json: schema: - items: - $ref: '#/components/schemas/TldSummary' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/TldSummary' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/TldSummary' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/TldSummary' - type: array - description: Request was successful - '400': + $ref: '#/components/schemas/DomainNotification' + '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '404': + description: The customer does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '429': + description: Too many requests received within interval + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Request was malformed + operationId: getDomainsNotifications + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/notifications/optIn: + get: + tags: + - Domain Notifications + summary: Retrieve a list of notification types that are opted in + description: Returns the notification types the account is currently opted in to receive. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + responses: + '200': + description: Request was successful + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DomainNotification' '401': + description: Authentication info not sent or invalid content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '404': + description: The customer does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '429': + description: Too many requests received within interval + content: + application/json: schema: - $ref: '#/components/schemas/Error' - text/xml: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: schema: $ref: '#/components/schemas/Error' + operationId: getDomainsNotificationsOptIn + put: + tags: + - Domain Notifications + summary: Opt in to receive notifications for the submitted notification types + description: Opts the account in to receiving the specified notification types. Returns 204 No Content. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - name: types + description: The notification types that should be opted in + in: query + required: true + style: form + explode: false + schema: + type: array + items: + type: string + enum: + - AUTH_CODE_REGENERATE + - AUTO_RENEWAL + - CHANGE_OF_REGISTRANT_DELETE + - DOMAIN_DELETE + - DOMAIN_UPDATE + - DOMAIN_UPDATE_NAME_SERVERS + - PRIVACY_FORWARDING_UPDATE + - REGISTER + - TRANSFER + - TRANSFER_IN + - TRANSFER_IN_ACCEPT + - TRANSFER_IN_CANCEL + - TRANSFER_IN_RESTART + - TRANSFER_IN_RETRY + - TRANSFER_OUT + - TRANSFER_OUT_ACCEPT + - TRANSFER_OUT_REJECT + responses: + '204': + description: Command successful + '401': description: Authentication info not sent or invalid - '403': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '403': + description: Authenticated user is not allowed access + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + '404': + description: The customer does not exist + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/xml: + '422': + description: '`type` must be specified' + content: + application/json: schema: $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: tlds - summary: Retrieves a list of TLDs supported and enabled for sale - description: Retrieves a list of TLDs supported and enabled for sale - x-stackQL-verb: select - '/v1/domains/{domain}': - delete: + operationId: putDomainsNotificationsOptIn + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/notifications/schemas/{type}: + get: + tags: + - Domain Notifications + summary: Retrieve the schema for the notification data for the specified notification type + description: Returns the JSON schema for a specific notification type's data payload. Use to validate or parse notification data before processing. parameters: - - description: Domain to cancel + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: The notification type whose schema should be retrieved + name: type in: path - name: domain required: true schema: type: string + enum: + - AUTH_CODE_REGENERATE + - AUTO_RENEWAL + - CHANGE_OF_REGISTRANT_DELETE + - DOMAIN_DELETE + - DOMAIN_UPDATE + - DOMAIN_UPDATE_NAME_SERVERS + - PRIVACY_FORWARDING_UPDATE + - REGISTER + - TRANSFER + - TRANSFER_IN + - TRANSFER_IN_ACCEPT + - TRANSFER_IN_CANCEL + - TRANSFER_IN_RESTART + - TRANSFER_IN_RETRY + - TRANSFER_OUT + - TRANSFER_OUT_ACCEPT + - TRANSFER_OUT_REJECT responses: '200': description: Request was successful - '400': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed + $ref: '#/components/schemas/JsonSchema' '401': + description: Authentication info not sent or invalid content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid '403': + description: Authenticated user is not allowed access content: - application/javascript: + application/json: schema: $ref: '#/components/schemas/Error' + '404': + description: The schema type does not exist + content: application/json: schema: $ref: '#/components/schemas/Error' - application/xml: + '422': + description: '`type` must be specified' + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': + '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: - $ref: '#/components/schemas/Error' - application/xml: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/javascript: + operationId: getDomainsNotificationsSchemasByType + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/notifications/{notificationId}/acknowledge: + post: + tags: + - Domain Notifications + summary: Acknowledge a domain notification + description: Acknowledges a domain notification, removing it from the notification queue. Returns 204 No Content. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - name: notificationId + description: The notification ID to acknowledge + in: path + required: true + schema: + type: string + responses: + '204': + description: Message acknowledged + '401': + description: Authentication info not sent or invalid + content: + application/json: schema: $ref: '#/components/schemas/Error' - text/xml: + '403': + description: Authenticated user is not allowed access + content: + application/json: schema: $ref: '#/components/schemas/Error' + '404': description: The domain does not exist - '422': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Unknown domain error '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: cancel - summary: Cancel a purchased domain - description: Cancel a purchased domain + operationId: postDomainsNotificationsByNotificationIdAcknowledge + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /v2/domains/usage/{yyyymm}: get: + tags: + - Domains API Usage + summary: Retrieve api usage request counts for a specific year/month. The data is retained for a period of three months. + description: Returns monthly API request counts for the account. Data is retained for three months. parameters: - - description: Shopper ID expected to own the specified domain - in: header - name: X-Shopper-Id + - name: X-Request-Id required: false + in: header + description: A client provided identifier for tracking this request. schema: type: string - - description: Domain name whose details are to be retrieved + - name: yyyymm + description: The year/month timeframe for the request counts (in the format yyyy-mm) in: path - name: domain required: true schema: type: string + pattern: ^\d{4}-\d{2}$ + - name: includes + required: false + in: query + description: Determines if the detail records (grouped by request path) are included in the response + style: form + explode: false + schema: + type: array + items: + enum: + - details + type: string responses: '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainDetail' - application/json: - schema: - $ref: '#/components/schemas/DomainDetail' - application/xml: - schema: - $ref: '#/components/schemas/DomainDetail' - text/javascript: - schema: - $ref: '#/components/schemas/DomainDetail' - text/xml: - schema: - $ref: '#/components/schemas/DomainDetail' description: Request was successful - '203': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainDetail' - application/json: - schema: - $ref: '#/components/schemas/DomainDetail' - application/xml: - schema: - $ref: '#/components/schemas/DomainDetail' - text/javascript: - schema: - $ref: '#/components/schemas/DomainDetail' - text/xml: - schema: - $ref: '#/components/schemas/DomainDetail' - description: 'Request was partially successful, see verifications.status for further detail' - '400': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed + $ref: '#/components/schemas/UsageMonthly' '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' description: Authentication info not sent or invalid - '403': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' + '403': description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` must be specified' '429': + description: Too many requests received within interval content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' application/json: schema: $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval '500': + description: Internal server error content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: get - summary: Retrieve details for the specified Domain - description: Retrieve details for the specified Domain - x-stackQL-verb: select - patch: + operationId: getDomainsUsageByYyyymm + /v3/domains/domain-names: + get: + operationId: listDomains + tags: + - Domains + summary: List registered domains + description: | + Returns a paginated collection of domain names owned by the authenticated account. Supports filtering by statuses and cursor-based pagination. The statuses and lifecycleGroups parameters are mutually exclusive; supplying both returns 400 Bad Request. An unrecognized value for statuses or lifecycleGroups returns 400 Bad Request. parameters: - - description: Domain whose details are to be updated - in: path - name: domain - required: true + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/pageToken' + - $ref: '#/components/parameters/pageTokenDirection' + - name: pageSize + in: query + required: false + description: | + Maximum number of domains in the response. Defaults to 100 when omitted. Offset-based "page" parameter is not supported, only cursor-based "pageToken". schema: - type: string - - description: 'Shopper for whom Domain is to be updated. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id + type: integer + minimum: 1 + maximum: 200 + default: 100 + - name: statuses + in: query required: false + description: | + Filter results to domains with one or more lifecycle statuses. Supply multiple values as a single comma-separated list, e.g. `?statuses=ACTIVE,EXPIRED`. Multiple values are combined with logical OR — returns domains matching ANY of the specified statuses. See DomainStatus for accepted values (ACTIVE, EXPIRED, PENDING_REGISTRATION, etc.). Cannot be combined with the lifecycleGroups parameter. Use this for precise filtering on specific known status values; for coarse lifecycle phases, consider lifecycleGroups. + style: form + explode: false schema: - type: string + type: array + maxItems: 50 + items: + $ref: '#/components/schemas/DomainStatus' + example: + - ACTIVE + - EXPIRED + - name: lifecycleGroups + in: query + required: false + description: | + Filter results to domains belonging to one or more status groups. Supply multiple values as a single comma-separated list, e.g. `?lifecycleGroups=REGISTERED,PENDING`. Multiple values are combined with logical OR. Cannot be combined with the statuses parameter. Use this for coarse lifecycle phases that remain stable as new statuses are added; for precise filtering, use statuses. + style: form + explode: false + schema: + type: array + items: + $ref: '#/components/schemas/DomainLifecycleGroup' + example: + - REGISTERED + - PENDING + - name: updatedAfter + in: query + required: false + description: | + Return only domains last updated after this timestamp (exclusive). Must be a valid RFC 3339 date-time. + schema: + type: string + format: date-time + example: '2026-01-01T00:00:00Z' + - name: expiresBefore + in: query + required: false + description: | + Return only domains whose registration expires before this timestamp (exclusive). Must be a valid RFC 3339 date-time. + schema: + type: string + format: date-time + example: '2027-01-01T00:00:00Z' + security: + - bearerAuth: [] responses: '200': - description: Request was successful + description: Paginated list of domains owned by the account. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/DomainCollection' + examples: + paginated: + summary: First page of active domains with totals + value: + items: + - domain: example.com + status: ACTIVE + expiresAt: '2027-06-12T10:02:10Z' + createdAt: '2026-06-12T10:02:10Z' + autoRenew: true + privacy: false + transferLock: true + nameServers: + - ns01.domaincontrol.com + - ns02.domaincontrol.com + links: + - rel: self + href: /v3/domains/domain-names/example.com + - domain: mysite.net + status: ACTIVE + expiresAt: '2027-08-01T00:00:00Z' + createdAt: '2025-08-01T00:00:00Z' + autoRenew: false + privacy: true + transferLock: true + nameServers: + - ns01.domaincontrol.com + - ns02.domaincontrol.com + links: + - rel: self + href: /v3/domains/domain-names/mysite.net + links: + - rel: self + href: /v3/domains/domain-names?statuses=ACTIVE&pageSize=25 + - rel: next + href: /v3/domains/domain-names?statuses=ACTIVE&pageSize=25&pageToken=eyJkb21haW4iOiJteXNpdGUubmV0In0 '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed + $ref: '#/components/responses/400' '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid + $ref: '#/components/responses/401' '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Specified Subaccount not owned by authenticated Shopper - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '409': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: The given domain is not eligible to have its nameservers changed + $ref: '#/components/responses/403' '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Failed to update nameservers + $ref: '#/components/responses/422' '429': + $ref: '#/components/responses/429' + /v3/domains/domain-names/{domain_name}: + get: + operationId: getDomain + tags: + - Domains + summary: Get a registered domain + description: | + Returns the management view of a single registered domain owned by the authenticated account, including status, nameservers, privacy and auto-renew preferences, and expiry date. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/domainNamePath' + security: + - bearerAuth: [] + responses: + '200': + description: Domain found. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: update + $ref: '#/components/schemas/Domain' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '429': + $ref: '#/components/responses/429' + /v3/domains/domain-names/{domain_name}/nameservers: + put: + operationId: updateNameservers + tags: + - Domain Management + summary: Replace the nameservers for a domain + description: | + Replaces the authoritative nameservers for the domain with the provided list. Minimum 2, maximum 13. Returns a DomainOperation; propagation to the registry is asynchronous. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/domainNamePath' + - $ref: '#/components/parameters/idempotencyKey' requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/DomainUpdate' - application/xml: - schema: - $ref: '#/components/schemas/DomainUpdate' - text/xml: - schema: - $ref: '#/components/schemas/DomainUpdate' - description: Changes to apply to existing Domain - required: true - summary: Update details for the specified Domain - description: Update details for the specified Domain - '/v1/domains/{domain}/contacts': - patch: - parameters: - - description: 'Shopper for whom domain contacts are to be updated. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose Contacts are to be updated. - in: path - name: domain - required: true - schema: - type: string + type: object + required: + - nameServers + properties: + nameServers: + $ref: '#/components/schemas/NameServers' + description: Ordered list of authoritative nameserver hostnames (the request body array). + examples: + nameservers: + value: + - ns1.example.com + - ns2.example.com + security: + - bearerAuth: [] responses: - '200': - description: No response was specified - '204': - description: Request was successful - '400': + '202': + description: Nameserver update accepted; poll the operation for completion. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + Location: + $ref: '#/components/headers/location' + Retry-After: + $ref: '#/components/headers/retryAfter' content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' application/json: schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed + $ref: '#/components/schemas/DomainOperation' + '400': + $ref: '#/components/responses/400' '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid + $ref: '#/components/responses/401' '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access + $ref: '#/components/responses/403' '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Identity document not found + $ref: '#/components/responses/404' '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` is not a valid Domain name' + $ref: '#/components/responses/422' '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: updateContacts - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DomainContacts' - application/xml: - schema: - $ref: '#/components/schemas/DomainContacts' - text/xml: - schema: - $ref: '#/components/schemas/DomainContacts' - description: Changes to apply to existing Contacts - required: true - summary: Update domain - description: Update domain - '/v1/domains/{domain}/privacy': - delete: + $ref: '#/components/responses/429' + /v3/domains/operations/{operationId}: + get: + operationId: getOperation + tags: + - Operations + summary: Poll an async domain operation + description: | + Universal poll endpoint for all asynchronous domain mutations. Returns + the current state of the operation. Non-terminal responses include a + `Retry-After` header. + + Terminal statuses: + - `COMPLETED` — operation succeeded; `result` contains the final outcome. + - `FAILED` — operation terminated with an error; `error` contains detail. + + While status is non-terminal (`CONFIRMED`, `EXECUTING`), neither + `result` nor `error` is present. Poll until a terminal status is reached. + + The poll URL is provided in the `Location` header of the initiating 202 + response and in `links[rel=self]`. Clients must not construct this URL + independently. parameters: - - description: Shopper ID of the owner of the domain - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose privacy is to be cancelled - in: path - name: domain - required: true - schema: - type: string + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/operationId' + security: + - bearerAuth: [] responses: '200': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed + description: Current operation state. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + Retry-After: + $ref: '#/components/headers/retryAfter' + content: + application/json: + schema: + $ref: '#/components/schemas/DomainOperation' + examples: + executing: + summary: Operation in progress + value: + operationId: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + type: REGISTER + domain: example.com + status: EXECUTING + createdAt: '2026-06-12T10:02:05Z' + updatedAt: '2026-06-12T10:02:07Z' + links: + - rel: self + href: https://api.godaddy.com/v3/domains/operations/9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + completed: + summary: Registration completed + value: + operationId: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + type: REGISTER + domain: example.com + status: COMPLETED + result: + expiresAt: '2027-06-12T10:02:10Z' + orderId: ord_xyz789 + createdAt: '2026-06-12T10:02:05Z' + updatedAt: '2026-06-12T10:02:10Z' + links: + - rel: self + href: https://api.godaddy.com/v3/domains/operations/9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + - rel: domain + href: https://api.godaddy.com/v3/domains/domain-names/example.com '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid + $ref: '#/components/responses/401' '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access + $ref: '#/components/responses/403' '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: The domain does not exist - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Unknown domain error + $ref: '#/components/responses/404' '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: cancelPrivacy - summary: Submit a privacy cancellation request for the given domain - description: Submit a privacy cancellation request for the given domain - '/v1/domains/{domain}/privacy/purchase': - post: - parameters: - - description: Shopper ID of the owner of the domain - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain for which to purchase privacy - in: path - name: domain - required: true - schema: - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/json: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '409': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: The domain status does not allow performing the operation - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` must match `sld.tld`' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: purchasePrivacy - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/PrivacyPurchase' - application/xml: - schema: - $ref: '#/components/schemas/PrivacyPurchase' - text/xml: - schema: - $ref: '#/components/schemas/PrivacyPurchase' - description: Options for purchasing privacy - required: true - summary: Purchase privacy for a specified domain - description: Purchase privacy for a specified domain - '/v1/domains/{domain}/records': - patch: - parameters: - - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose DNS Records are to be augmented - in: path - name: domain - required: true - schema: - type: string - responses: - '200': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` is not a valid Domain name' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: recordAdd - requestBody: - content: - application/json: - schema: - items: {} - type: array - application/xml: - schema: - items: {} - type: array - text/xml: - schema: - items: {} - type: array - description: DNS Records to add to whatever currently exists - required: true - summary: Add the specified DNS Records to the specified Domain - description: Add the specified DNS Records to the specified Domain - put: - parameters: - - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose DNS Records are to be replaced - in: path - name: domain - required: true - schema: - type: string - responses: - '200': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`record` does not fulfill the schema' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: recordReplace - requestBody: - content: - application/json: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - description: DNS Records to replace whatever currently exists - required: true - summary: Replace all DNS Records for the specified Domain - description: Replace all DNS Records for the specified Domain - '/v1/domains/{domain}/records/{type}': - put: - parameters: - - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose DNS Records are to be replaced - in: path - name: domain - required: true - schema: - type: string - - description: DNS Record Type for which DNS Records are to be replaced - in: path - name: type - required: true - schema: - enum: - - A - - AAAA - - CNAME - - MX - - NS - - SOA - - SRV - - TXT - type: string - responses: - '200': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`record` does not fulfill the schema' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: recordReplaceType - requestBody: - content: - application/json: - schema: - items: - $ref: '#/components/schemas/DNSRecordCreateType' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecordCreateType' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecordCreateType' - type: array - description: DNS Records to replace whatever currently exists - required: true - summary: Replace all DNS Records for the specified Domain with the specified Type - description: Replace all DNS Records for the specified Domain with the specified Type - get: - parameters: - - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose DNS Records are to be retrieved - in: path - name: domain - required: true - schema: - type: string - - description: DNS Record Type for which DNS Records are to be retrieved - in: path - name: type - required: true - schema: - enum: - - A - - AAAA - - CNAME - - MX - - NS - - SOA - - SRV - - TXT - type: string - - description: Number of results to skip for pagination - in: query - name: offset - required: false - schema: - type: integer - - description: Maximum number of items to return - in: query - name: limit - required: false - schema: - type: integer - responses: - '200': - content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - application/json: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecord' - type: array - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` is not a valid Domain name' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: recordGet - summary: 'Retrieve DNS Records for the specified Domain, optionally with the specified Type and/or Name' - description: 'Retrieve DNS Records for the specified Domain, optionally with the specified Type and/or Name' - x-stackQL-verb: select - '/v1/domains/{domain}/records/{type}/{name}': - put: - parameters: - - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose DNS Records are to be replaced - in: path - name: domain - required: true - schema: - type: string - - description: DNS Record Type for which DNS Records are to be replaced - in: path - name: type - required: true - schema: - enum: - - A - - AAAA - - CNAME - - MX - - NS - - SOA - - SRV - - TXT - type: string - - description: DNS Record Name for which DNS Records are to be replaced - in: path - name: name - required: true - schema: - type: string - responses: - '200': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`record` does not fulfill the schema' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: recordReplaceTypeName - requestBody: - content: - application/json: - schema: - items: - $ref: '#/components/schemas/DNSRecordCreateTypeName' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecordCreateTypeName' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/DNSRecordCreateTypeName' - type: array - description: DNS Records to replace whatever currently exists - required: true - summary: Replace all DNS Records for the specified Domain with the specified Type and Name - description: Replace all DNS Records for the specified Domain with the specified Type and Name - '/v1/domains/{domain}/renew': - post: - parameters: - - description: 'Shopper for whom Domain is to be renewed. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain to renew - in: path - name: domain - required: true - schema: - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/json: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '409': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: The domain status does not allow performing the operation - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` must match `sld.tld`' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: renew - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DomainRenew' - application/xml: - schema: - $ref: '#/components/schemas/DomainRenew' - text/xml: - schema: - $ref: '#/components/schemas/DomainRenew' - description: Options for renewing existing Domain - summary: Renew the specified Domain - description: Renew the specified Domain - '/v1/domains/{domain}/transfer': - post: - parameters: - - description: The Shopper to whom the domain should be transfered - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain to transfer in - in: path - name: domain - required: true - schema: - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/json: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - application/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/javascript: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - text/xml: - schema: - $ref: '#/components/schemas/DomainPurchaseResponse' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '409': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` (domain) isn''t available for transfer' - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: domain must be specified - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: transferIn - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DomainTransferIn' - application/xml: - schema: - $ref: '#/components/schemas/DomainTransferIn' - text/xml: - schema: - $ref: '#/components/schemas/DomainTransferIn' - description: Details for domain transfer purchase - required: true - summary: Purchase and start or restart transfer process - description: Purchase and start or restart transfer process - '/v1/domains/{domain}/verifyRegistrantEmail': - post: - parameters: - - description: 'Shopper for whom domain contact e-mail should be verified. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account. For instance, if you''re a Reseller, but purchased a Domain via http://www.godaddy.com' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Domain whose Contact E-mail should be verified. - in: path - name: domain - required: true - schema: - type: string - responses: - '200': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`domain` is not a valid Domain name' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: verifyEmail - summary: Re-send Contact E-mail Verification for specified Domain - description: Re-send Contact E-mail Verification for specified Domain - '/v1/domains/identityDocuments/{identity_document_id}/verifications': - get: - parameters: - - description: Shopper ID of the owner of the identity document. This is only required if you are a Reseller managing identity documents for your customers. Use this header to pass in their subaccount ID - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Unique identifier of the current identity document - in: path - name: identity_document_id - required: true - schema: - type: string - - description: An array of TLDs for which to retrieve identity document verification jobs. Alternately you can specify the whole domain from which the TLD will be extracted - in: query - name: tlds - required: false - schema: - items: - type: string - type: array - responses: - '200': - content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - application/json: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Identity document not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: One or more supplied domain/tld are invalid - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: getIdentityDocumentVerification - summary: Retrieve a list of Verifications for the specified Identity Document - description: Retrieve a list of Verifications for the specified Identity Document - x-stackQL-verb: select - post: - parameters: - - description: Shopper ID of the owner of the identity document. This is only required if you are a Reseller managing identity documents for your customers. Use this header to pass in their subaccount ID - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Unique id of an identity document - in: path - name: identity_document_id - required: true - schema: - type: string - - description: An array of TLDs for which the verification was started. Alternately you can specify the whole domain from which the TLD will be extracted - in: query - name: tlds - required: true - schema: - items: - type: string - type: array - responses: - '200': - content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - application/json: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/IdentityDocumentVerification' - type: array - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Identity document not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`identityDocumentVerification` does not fulfill the schema' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'Only one verification job is needed for one TLD, Top Level Domain, per identity document. Sending in request(s) with multiple domains for the same TLD, will not create multiple verification jobs. We accept domain names for the convenience of our customers so that they don''t need to worry about parsing TLDs out of domain names' - operationId: createVerification - summary: Initiate verifications for the specified Domains + $ref: '#/components/responses/429' components: - requestBodies: - DomainPurchase: - content: - application/json: - schema: - $ref: '#/components/schemas/DomainPurchase' - application/xml: - schema: - $ref: '#/components/schemas/DomainPurchase' - text/xml: - schema: - $ref: '#/components/schemas/DomainPurchase' - description: 'An instance document expected to match the JSON schema returned by `./schema/{tld}`' - required: true schemas: + DomainSummary: + properties: + authCode: + description: Authorization code for transferring the Domain + type: string + contactAdmin: + $ref: '#/components/schemas/Contact' + contactBilling: + $ref: '#/components/schemas/Contact' + contactRegistrant: + $ref: '#/components/schemas/Contact' + contactTech: + $ref: '#/components/schemas/Contact' + createdAt: + description: Date and time when this domain was created + format: date-time + type: string + deletedAt: + description: Date and time when this domain was deleted + format: date-time + type: string + transferAwayEligibleAt: + description: Date and time when this domain is eligible to transfer + format: date-time + type: string + domain: + description: Name of the domain + type: string + domainId: + description: Unique identifier for this Domain + format: double + type: number + expirationProtected: + description: Whether or not the domain is protected from expiration + type: boolean + expires: + description: Date and time when this domain will expire + format: date-time + type: string + exposeWhois: + description: Whether or not the domain contact details should be shown in the WHOIS + type: boolean + holdRegistrar: + description: Whether or not the domain is on-hold by the registrar + type: boolean + locked: + description: Whether or not the domain is locked to prevent transfers + type: boolean + nameServers: + description: Fully-qualified domain names for DNS servers + items: + format: host-name + type: string + type: array + privacy: + description: Whether or not the domain has privacy protection + type: boolean + registrarCreatedAt: + type: string + format: iso-datetime + description: Date and time when this domain was created by the registrar + renewAuto: + description: Whether or not the domain is configured to automatically renew + type: boolean + renewDeadline: + description: Date the domain must renew on + format: date-time + type: string + renewable: + description: Whether or not the domain is eligble for renewal based on status + type: boolean + status: + description: |- + Processing status of the domain + - **ACTIVE** — All is well. + - **AWAITING*** — System is waiting for the end-user to complete an action. + - **CANCELLED*** — Domain has been cancelled, and may or may not be reclaimable. + - **CONFISCATED** — Domain has been confiscated, usually for abuse, chargeback, or fraud. + - **DISABLED*** — Domain has been disabled. + - **EXCLUDED*** — Domain has been excluded from Firehose registration. + - **EXPIRED*** — Domain has expired. + - **FAILED*** — Domain has failed a required action, and the system is no longer retrying. + - **HELD*** — Domain has been placed on hold, and likely requires intervention from Support. + - **LOCKED*** — Domain has been locked, and likely requires intervention from Support. + - **PARKED*** — Domain has been parked, and likely requires intervention from Support. + - **PENDING*** — Domain is working its way through an automated workflow. + - **RESERVED*** — Domain is reserved, and likely requires intervention from Support. + - **REVERTED** — Domain has been reverted, and likely requires intervention from Support. + - **SUSPENDED*** — Domain has been suspended, and likely requires intervention from Support. + - **TRANSFERRED*** — Domain has been transferred out. + - **UNKNOWN** — Domain is in an unknown state. + - **UNLOCKED*** — Domain has been unlocked, and likely requires intervention from Support. + - **UNPARKED*** — Domain has been unparked, and likely requires intervention from Support. + - **UPDATED*** — Domain ownership has been transferred to another account. + type: string + transferProtected: + description: Whether or not the domain is protected from transfer + type: boolean + required: + - domainId + - domain + - status + - expirationProtected + - holdRegistrar + - locked + - v1-privacy + - renewAuto + - renewDeadline + - v1-transferProtected + - createdAt + - contactRegistrant + type: object + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + required: + - code + type: object + ErrorLimit: + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + retryAfterSec: + description: Number of seconds to wait before attempting a similar request + format: integer-positive + type: integer + required: + - retryAfterSec + - code + type: object + DomainDetail: + properties: + authCode: + description: Authorization code for transferring the Domain + type: string + contactAdmin: + $ref: '#/components/schemas/Contact' + contactBilling: + $ref: '#/components/schemas/Contact' + contactRegistrant: + $ref: '#/components/schemas/Contact' + contactTech: + $ref: '#/components/schemas/Contact' + createdAt: + description: Date and time when this domain was created + format: date-time + type: string + deletedAt: + description: Date and time when this domain was deleted + format: date-time + type: string + transferAwayEligibleAt: + description: Date and time when this domain is eligible to transfer + format: date-time + type: string + domain: + description: Name of the domain + type: string + domainId: + description: Unique identifier for this Domain + format: double + type: number + expirationProtected: + description: Whether or not the domain is protected from expiration + type: boolean + expires: + description: Date and time when this domain will expire + format: date-time + type: string + exposeRegistrantOrganization: + type: boolean + description: Whether or not the domain registrant contact organization field should be shown in the WHOIS + exposeWhois: + description: Whether or not the domain contact details should be shown in the WHOIS + type: boolean + holdRegistrar: + description: Whether or not the domain is on-hold by the registrar + type: boolean + locked: + description: Whether or not the domain is locked to prevent transfers + type: boolean + nameServers: + description: Fully-qualified domain names for DNS servers + items: + format: host-name + type: string + type: array + privacy: + description: Whether or not the domain has privacy protection + type: boolean + registrarCreatedAt: + type: string + format: iso-datetime + description: Date and time when this domain was created by the registrar + renewAuto: + description: Whether or not the domain is configured to automatically renew + type: boolean + renewDeadline: + description: Date the domain must renew on + format: date-time + type: string + status: + description: |- + Processing status of the domain + - **ACTIVE** — All is well + - **AWAITING*** — System is waiting for the end-user to complete an action + - **CANCELLED*** — Domain has been cancelled, and may or may not be reclaimable + - **CONFISCATED** — Domain has been confiscated, usually for abuse, chargeback, or fraud + - **DISABLED*** — Domain has been disabled + - **EXCLUDED*** — Domain has been excluded from Firehose registration + - **EXPIRED*** — Domain has expired + - **FAILED*** — Domain has failed a required action, and the system is no longer retrying + - **HELD*** — Domain has been placed on hold, and likely requires intervention from Support + - **LOCKED*** — Domain has been locked, and likely requires intervention from Support + - **PARKED*** — Domain has been parked, and likely requires intervention from Support + - **PENDING*** — Domain is working its way through an automated workflow + - **RESERVED*** — Domain is reserved, and likely requires intervention from Support + - **REVERTED** — Domain has been reverted, and likely requires intervention from Support + - **SUSPENDED*** — Domain has been suspended, and likely requires intervention from Support + - **TRANSFERRED*** — Domain has been transferred out + - **UNKNOWN** — Domain is in an unknown state + - **UNLOCKED*** — Domain has been unlocked, and likely requires intervention from Support + - **UNPARKED*** — Domain has been unparked, and likely requires intervention from Support + - **UPDATED*** — Domain ownership has been transferred to another account + type: string + subaccountId: + description: Reseller subaccount shopperid who can manage the domain + type: string + transferProtected: + description: Whether or not the domain is protected from transfer + type: boolean + verifications: + $ref: '#/components/schemas/VerificationsDomain' + required: + - domainId + - domain + - status + - expirationProtected + - holdRegistrar + - locked + - v1-privacy + - renewAuto + - renewDeadline + - v1-transferProtected + - createdAt + - authCode + - nameServers + - contactRegistrant + - contactBilling + - contactAdmin + - contactTech + type: object + DomainUpdate: + properties: + locked: + description: Whether or not the domain should be locked to prevent transfers + type: boolean + nameServers: + description: Fully-qualified domain names for Name Servers to associate with the domain + items: + format: host-name + type: array + renewAuto: + description: Whether or not the domain should be configured to automatically renew + type: boolean + subaccountId: + description: Reseller subaccount shopperid who can manage the domain + type: string + exposeRegistrantOrganization: + type: boolean + description: Whether or not the domain registrant contact organization field should be shown in the WHOIS + exposeWhois: + description: Whether or not the domain contact details should be shown in the WHOIS + type: boolean + consent: + $ref: '#/components/schemas/ConsentDomainUpdate' + type: object + DomainContacts: + properties: + contactAdmin: + $ref: '#/components/schemas/Contact' + contactBilling: + $ref: '#/components/schemas/Contact' + contactRegistrant: + $ref: '#/components/schemas/Contact' + contactTech: + $ref: '#/components/schemas/Contact' + required: + - contactRegistrant + type: object + DomainRenew: + properties: + period: + description: Number of years to extend the Domain. Must not exceed maximum for TLD. When omitted, defaults to `period` specified during original purchase + format: integer-positive + maximum: 10 + minimum: 1 + type: integer + type: object + DomainPurchaseResponse: + properties: + currency: + default: USD + description: Currency in which the `total` is listed + format: iso-currency-code + type: string + itemCount: + description: Number items included in the order + format: integer-positive + type: integer + orderId: + description: Unique identifier of the order processed to purchase the domain + format: integer-positive + type: integer + total: + description: Total cost of the domain and any selected add-ons + format: currency-micro-unit + type: integer + required: + - orderId + - itemCount + - total + type: object + Contact: + properties: + addressMailing: + $ref: '#/components/schemas/Address' + email: + format: email + type: string + fax: + format: phone + type: string + jobTitle: + type: string + nameFirst: + format: person-name + type: string + nameLast: + format: person-name + type: string + nameMiddle: + type: string + organization: + format: organization-name + type: string + phone: + format: phone + type: string + required: + - nameFirst + - nameLast + - email + - phone + - addressMailing + type: object + ErrorField: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + - JSONPath referring to a field containing an error + **OR** + - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + VerificationsDomain: + properties: + domainName: + $ref: '#/components/schemas/VerificationDomainName' + realName: + $ref: '#/components/schemas/VerificationRealName' + type: object + ConsentDomainUpdate: + properties: + agreedAt: + description: Timestamp indicating when the end-user consented to these agreements + format: iso-datetime + type: string + agreedBy: + description: Originating client IP address of the end-user's computer when they consented to the agreements + type: string + agreementKeys: + description: |- + Unique identifiers of the agreements to which the end-user has agreed, as required by the elements being updated: + + - **EXPOSE_REGISTRANT_ORGANIZATION** — Required when the exposeRegistrantOrganization field is updated to true + - **EXPOSE_WHOIS** — Required when the exposeWhois field is updated to true + items: + enum: + - EXPOSE_REGISTRANT_ORGANIZATION + - EXPOSE_WHOIS + type: string + type: array + required: + - agreementKeys + - agreedBy + - agreedAt + type: object Address: properties: address1: @@ -5667,568 +3600,313 @@ components: - VI - VN - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW - format: iso-country-code - type: string - postalCode: - description: Postal or zip code - format: postal-code - type: string - state: - description: State or province or territory - format: state-province-territory - type: string - required: - - address1 - - city - - state - - postalCode - - country - type: object - Consent: - properties: - agreedAt: - description: Timestamp indicating when the end-user consented to these legal agreements - format: iso-datetime - type: string - agreedBy: - description: Originating client IP address of the end-user's computer when they consented to these legal agreements - type: string - agreementKeys: - description: 'Unique identifiers of the legal agreements to which the end-user has agreed, as returned from the/domains/agreements endpoint' - items: - type: string - type: array - required: - - agreementKeys - - agreedBy - - agreedAt - type: object - Contact: - properties: - addressMailing: - $ref: '#/components/schemas/Address' - email: - format: email - type: string - fax: - format: phone - type: string - jobTitle: - type: string - nameFirst: - format: person-name - type: string - nameLast: - format: person-name - type: string - nameMiddle: - type: string - organization: - format: organization-name - type: string - phone: - format: phone - type: string - required: - - nameFirst - - nameLast - - email - - phone - - addressMailing - type: object - DNSRecord: - properties: - data: - type: string - name: - format: domain - type: string - port: - description: Service port (SRV only) - maximum: 65535 - minimum: 1 - type: integer - priority: - description: Record priority (MX and SRV only) - format: integer-positive - type: integer - protocol: - description: Service protocol (SRV only) - type: string - service: - description: Service type (SRV only) - type: string - ttl: - format: integer-positive - type: integer - type: - enum: - - A - - AAAA - - CNAME - - MX - - NS - - SOA - - SRV - - TXT - type: string - weight: - description: Record weight (SRV only) - format: integer-positive - type: integer - required: - - type - - name - - data - type: object - DNSRecordCreateType: - properties: - data: - type: string - name: - format: domain - type: string - port: - description: Service port (SRV only) - maximum: 65535 - minimum: 1 - type: integer - priority: - description: Record priority (MX and SRV only) - format: integer-positive - type: integer - protocol: - description: Service protocol (SRV only) - type: string - service: - description: Service type (SRV only) - type: string - ttl: - format: integer-positive - type: integer - weight: - description: Record weight (SRV only) - format: integer-positive - type: integer - required: - - name - - data - type: object - DNSRecordCreateTypeName: - properties: - data: - type: string - port: - description: Service port (SRV only) - maximum: 65535 - minimum: 1 - type: integer - priority: - description: Record priority (MX and SRV only) - format: integer-positive - type: integer - protocol: - description: Service protocol (SRV only) - type: string - service: - description: Service type (SRV only) - type: string - ttl: - format: integer-positive - type: integer - weight: - description: Record weight (SRV only) - format: integer-positive - type: integer - required: - - data - type: object - DomainAvailableBulk: - properties: - domains: - description: Domain available response array - items: - $ref: '#/components/schemas/DomainAvailableResponse' - type: array - required: - - domains - type: object - DomainAvailableBulkMixed: - properties: - domains: - description: Domain available response array - items: - $ref: '#/components/schemas/DomainAvailableResponse' - type: array - errors: - description: Errors encountered while performing a domain available check - items: - $ref: '#/components/schemas/DomainAvailableError' - type: array - required: - - domains - type: object - DomainAvailableError: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - domain: - description: Domain name - type: string - message: - description: 'Human-readable, English description of the error' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + format: iso-country-code type: string - status: - description: HTTP status code that would return for a single check - type: integer - required: - - code - - domain - - path - - status - type: object - DomainAvailableResponse: - properties: - available: - description: Whether or not the domain name is available - type: boolean - currency: - default: USD - description: Currency in which the `price` is listed. Only returned if tld is offered - format: iso-currency-code + postalCode: + description: Postal or zip code + format: postal-code type: string - definitive: - description: Whether or not the `available` answer has been definitively verified with the registry - type: boolean - domain: - description: Domain name + state: + description: State or province or territory + format: state-province-territory type: string - period: - description: Number of years included in the price. Only returned if tld is offered - format: integer-positive - type: integer - price: - description: Price of the domain excluding taxes or fees. Only returned if tld is offered - format: currency-micro-unit - type: integer - required: - - domain - - available - - definitive - type: object - DomainContacts: - properties: - contactAdmin: - $ref: '#/components/schemas/Contact' - contactBilling: - $ref: '#/components/schemas/Contact' - contactRegistrant: - $ref: '#/components/schemas/Contact' - contactTech: - $ref: '#/components/schemas/Contact' required: - - contactRegistrant + - address1 + - city + - state + - postalCode + - country type: object - DomainDetail: + VerificationDomainName: properties: - authCode: - description: Authorization code for transferring the Domain - type: string - contactAdmin: - $ref: '#/components/schemas/Contact' - description: Administrative contact for the domain registration - contactBilling: - $ref: '#/components/schemas/Contact' - description: Billing contact for the domain registration - contactRegistrant: - $ref: '#/components/schemas/Contact' - description: Registration contact for the domain - contactTech: - $ref: '#/components/schemas/Contact' - description: Technical contact for the domain registration - createdAt: - description: Date and time when this domain was created - format: date-time - type: string - deletedAt: - description: Date and time when this domain was deleted - format: date-time - type: string - domain: - description: Name of the domain - type: string - domainId: - description: Unique identifier for this Domain - format: double - type: number - expirationProtected: - description: Whether or not the domain is protected from expiration - type: boolean - expires: - description: Date and time when this domain will expire - format: date-time - type: string - holdRegistrar: - description: Whether or not the domain is on-hold by the registrar - type: boolean - locked: - description: Whether or not the domain is locked to prevent transfers - type: boolean - nameServers: - description: Fully-qualified domain names for DNS servers - items: - format: host-name - type: string - type: array - privacy: - description: Whether or not the domain has privacy protection - type: boolean - renewAuto: - description: Whether or not the domain is configured to automatically renew - type: boolean - renewDeadline: - description: Date the domain must renew on - format: date-time - type: string status: - description: | - Processing status of the domain - ACTIVE - All is well - AWAITING* - System is waiting for the end-user to complete an action - CANCELLED* - Domain has been cancelled, and may or may not be reclaimable - CONFISCATED - Domain has been confiscated, usually for abuse, chargeback, or fraud - DISABLED* - Domain has been disabled - EXCLUDED* - Domain has been excluded from Firehose registration - EXPIRED* - Domain has expired - FAILED* - Domain has failed a required action, and the system is no longer retrying - HELD* - Domain has been placed on hold, and likely requires intervention from Support - LOCKED* - Domain has been locked, and likely requires intervention from Support - PARKED* - Domain has been parked, and likely requires intervention from Support - PENDING* - Domain is working its way through an automated workflow - RESERVED* - Domain is reserved, and likely requires intervention from Support - REVERTED - Domain has been reverted, and likely requires intervention from Support - SUSPENDED* - Domain has been suspended, and likely requires intervention from Support - TRANSFERRED* - Domain has been transferred out - UNKNOWN - Domain is in an unknown state - UNLOCKED* - Domain has been unlocked, and likely requires intervention from Support - UNPARKED* - Domain has been unparked, and likely requires intervention from Support - UPDATED* - Domain ownership has been transferred to another account - type: string - subaccountId: - description: Reseller subaccount shopperid who can manage the domain + description: Status of the domain name verification + enum: + - APPROVED + - PENDING + - REJECTED + - UNABLE_TO_RETRIEVE_STATUS type: string - transferProtected: - description: Whether or not the domain is protected from transfer - type: boolean - verifications: - $ref: '#/components/schemas/VerificationsDomain' - description: Progress and status for each of the verification processes requested for this domain required: - - domainId - - domain - status - - expirationProtected - - holdRegistrar - - locked - - privacy - - renewAuto - - renewDeadline - - transferProtected - - createdAt - - authCode - - nameServers - - contactRegistrant - - contactBilling - - contactAdmin - - contactTech type: object - DomainPurchase: + VerificationRealName: properties: - consent: - $ref: '#/components/schemas/Consent' - contactAdmin: - $ref: '#/components/schemas/Contact' - contactBilling: - $ref: '#/components/schemas/Contact' - contactRegistrant: - $ref: '#/components/schemas/Contact' - contactTech: - $ref: '#/components/schemas/Contact' - domain: - description: 'For internationalized domain names with non-ascii characters, the domain name is converted to punycode before format and pattern validation rules are checked' - format: domain + status: + description: |- + Status of the real name verification: + + - **APPROVED** — All is well. + - **PENDING** — Real name verification is working its way through the workflow. + - **REJECTED_DOCUMENT_OUTDATED** — Local government verification shows there is a newer version of your document. Upload the latest version of the document and retry real name verification. + - **REJECTED_EXPIRED_BUSINESS_LICENSE** — Business license is expired. + - **REJECTED_EXPIRED_ORGANIZATION_CODE** — Organization code certificate number has expired. + - **REJECTED_ILLEGIBLE_DOCUMENT_NAME** — There isn’t a clear name on your uploaded document, please upload a different document to retry real name verification. + - **REJECTED_ILLEGIBLE_IDENTIFICATION** — Registrant identification is not clear. Upload a better image to retry. + - **REJECTED_INCOMPLETE_IDENTIFICATION** — Registrant identification is incomplete. + - **REJECTED_INCOMPLETE_REGISTRATION_LETTER** — Registration letter is incomplete. + - **REJECTED_INCONSISTENT_IDENTITY_CARD** — Provided identity card is inconsistent with the identity card on record. + - **REJECTED_INCONSISTENT_ORGANIZATION_CODE** — Provided organization information is inconsistent with the results obtained using the submitted organization code. + - **REJECTED_INCONSISTENT_REGISTRANT_NAME** — Name on the registrant identification does not match the name in the system. + - **REJECTED_INVALID_BUSINESS_LICENSE_OR_ORGANIZATION_CODE** — Your document contains an invalid business license or organization code certificate number. + - **REJECTED_INVALID_DOCUMENT** — Document is invalid. Please upload another document to retry real name verification. + - **REJECTED_MISMATCH_BUSINESS_ID** — Business id does not match the business id in the document. + - **REJECTED_MISMATCH_BUSINESS_NAME** — Business name does not match the business name in the document. + - **REJECTED_MISMATCH_DOCUMENT_ID** — Document id does not match the id in the document. + - **REJECTED_MISMATCH_DOCUMENT_NAME** — Document name does not match the name in the document. + - **REJECTED_MISMATCH_DOCUMENT_TYPE** — Document type does not match the document. + - **REJECTED_MISMATCH_REGISTRANT_INFO** — The information provided for the registrant does not match the document. + - **REJECTED_MISMATCH_REGISTRANT_LOCALITY** — Registrant region is overseas, but a local identity document was provided. + - **REJECTED_MISMATCH_REGISTRANT_NAME** — Registrant name has been changed, so the request must be resubmitted. + - **REJECTED_UNABLE_TO_OPEN** — Registrant identification could not be opened. Please upload the document again to retry real name verification. + - **REJECTED_UNABLE_TO_VERIFY** — Unable to initiate verification. Please upload the document again to retry real name verification. + - **REJECTED_UNKNOWN_ERROR** — Document was rejected due to an unknown error. For more information, contact customer support. + - **UNABLE_TO_RETRIEVE_STATUS** — Unable to retrieve status for the real name verification process. Retry, if this status persists, contact customer support. + enum: + - APPROVED + - PENDING + - REJECTED_DOCUMENT_OUTDATED + - REJECTED_EXPIRED_BUSINESS_LICENSE + - REJECTED_EXPIRED_ORGANIZATION_CODE + - REJECTED_ILLEGIBLE_DOCUMENT_NAME + - REJECTED_ILLEGIBLE_IDENTIFICATION + - REJECTED_INCOMPLETE_IDENTIFICATION + - REJECTED_INCOMPLETE_REGISTRATION_LETTER + - REJECTED_INCONSISTENT_IDENTITY_CARD + - REJECTED_INCONSISTENT_ORGANIZATION_CODE + - REJECTED_INCONSISTENT_REGISTRANT_NAME + - REJECTED_INVALID_BUSINESS_LICENSE_OR_ORGANIZATION_CODE + - REJECTED_INVALID_DOCUMENT + - REJECTED_MISMATCH_BUSINESS_ID + - REJECTED_MISMATCH_BUSINESS_NAME + - REJECTED_MISMATCH_DOCUMENT_ID + - REJECTED_MISMATCH_DOCUMENT_NAME + - REJECTED_MISMATCH_DOCUMENT_TYPE + - REJECTED_MISMATCH_REGISTRANT_INFO + - REJECTED_MISMATCH_REGISTRANT_LOCALITY + - REJECTED_MISMATCH_REGISTRANT_NAME + - REJECTED_UNABLE_TO_OPEN + - REJECTED_UNABLE_TO_VERIFY + - REJECTED_UNKNOWN_ERROR + - UNABLE_TO_RETRIEVE_STATUS type: string - nameServers: - items: - format: host-name - type: string - maxItems: 2 - minItems: 0 - type: array - period: - default: 1 - format: integer-positive - maximum: 10 - minimum: 1 - type: integer - privacy: - default: false - type: boolean - renewAuto: - default: true - type: boolean required: - - domain - - consent + - status type: object - DomainPurchaseResponse: + DomainChangeOfRegistrant: properties: - currency: - default: USD - description: Currency in which the `total` is listed - format: iso-currency-code + createDate: type: string - itemCount: - description: Number items included in the order - format: integer-positive + format: iso-datetime + gainingContact: + $ref: '#/components/schemas/ContactRegistrantChange' + losingContact: + $ref: '#/components/schemas/ContactRegistrantChange' + otherDomainsAffected: type: integer - orderId: - description: Unique identifier of the order processed to purchase the domain format: integer-positive - type: integer - total: - description: Total cost of the domain and any selected add-ons - format: currency-micro-unit - type: integer + shopperEmail: + type: string + format: email required: - - orderId - - itemCount - - total - type: object - DomainRenew: - properties: - period: - description: 'Number of years to extend the Domain. Must not exceed maximum for TLD. When omitted, defaults to `period` specified during original purchase' - format: integer-positive - maximum: 10 - minimum: 1 - type: integer + - createDate + - gainingContact + - losingContact type: object - DomainSuggestion: + DomainNameServerUpdateV2: + additionalProperties: false properties: - domain: - description: Suggested domain name - type: string - required: - - domain + nameServers: + type: array + items: + type: string + description: Fully-qualified domain names for name servers to associate with the domain type: object - DomainSummary: + DomainDetailV2: + additionalProperties: false properties: - authCode: - description: Authorization code for transferring the Domain - type: string - contactAdmin: - $ref: '#/components/schemas/Contact' - description: Administrative contact for the domain registration - contactBilling: - $ref: '#/components/schemas/Contact' - description: Billing contact for the domain registration - contactRegistrant: - $ref: '#/components/schemas/Contact' - description: Registration contact for the domain - contactTech: - $ref: '#/components/schemas/Contact' - description: Technical contact for the domain registration - createdAt: - description: Date and time when this domain was created - format: date-time - type: string - deletedAt: - description: Date and time when this domain was deleted - format: date-time + domainId: type: string + description: Unique identifier for this Domain domain: + type: string description: Name of the domain + format: domain + subaccountId: type: string - domainId: - description: Unique identifier for this Domain - format: double - type: number + description: Reseller subaccount shopperid who can manage the domain + status: + type: string + description: |- + The current status of the domain + + - **ACTIVE** — Domain has been registered and is active. + - **CANCELLED** — Domain has been cancelled by the user or system, and is not reclaimable. + - **DELETED_REDEEMABLE** — Domain is deleted but is redeemable. + - **EXPIRED** — Domain has expired. + - **FAILED** — Domain registration or transfer error. + - **LOCKED_REGISTRAR** — Domain is locked at the registrar - this is usually the result of a spam, abuse, etc. + - **PARKED** — Domain has been parked. + - **HELD_REGISTRAR** — Domain is held at the registrar and cannot be transferred or modified - this is usually the result of a dispute. + - **OWNERSHIP_CHANGED** — Domain has been moved to another account. + - **PENDING_TRANSFER** — Domain transfer has been requested and is pending the transfer process. + - **PENDING_REGISTRATION** — Domain is pending setup at the registry. + - **REPOSSESSED** — Domain has been confiscated - this is usually the result of a chargeback, fraud, abuse, etc.). + - **SUSPENDED** — Domain is in violation and has been suspended. + - **TRANSFERRED** — Domain has been transferred to another registrar. + enum: + - ACTIVE + - CANCELLED + - DELETED_REDEEMABLE + - EXPIRED + - FAILED + - LOCKED_REGISTRAR + - PARKED + - HELD_REGISTRAR + - OWNERSHIP_CHANGED + - PENDING_TRANSFER + - PENDING_REGISTRATION + - REPOSSESSED + - SUSPENDED + - TRANSFERRED + expiresAt: + type: string + format: iso-datetime + description: Date and time when this domain will expire expirationProtected: - description: Whether or not the domain is protected from expiration type: boolean - expires: - description: Date and time when this domain will expire - format: date-time - type: string + description: Whether or not the domain is protected from expiration holdRegistrar: - description: Whether or not the domain is on-hold by the registrar type: boolean + description: Whether or not the domain is on-hold by the registrar locked: - description: Whether or not the domain is locked to prevent transfers type: boolean - nameServers: - description: Fully-qualified domain names for DNS servers - items: - format: host-name - type: string - type: array + description: Whether or not the domain is locked to prevent transfers privacy: - description: Whether or not the domain has privacy protection type: boolean + description: Whether or not the domain has privacy protection + registrarCreatedAt: + type: string + format: iso-datetime + description: Date and time when this domain was created by the registrar renewAuto: - description: Whether or not the domain is configured to automatically renew type: boolean + description: Whether or not the domain is configured to automatically renew renewDeadline: - description: Date the domain must renew on - format: date-time - type: string - renewable: - description: Whether or not the domain is eligble for renewal based on status - type: boolean - status: - description: | - Processing status of the domain - ACTIVE - All is well - AWAITING* - System is waiting for the end-user to complete an action - CANCELLED* - Domain has been cancelled, and may or may not be reclaimable - CONFISCATED - Domain has been confiscated, usually for abuse, chargeback, or fraud - DISABLED* - Domain has been disabled - EXCLUDED* - Domain has been excluded from Firehose registration - EXPIRED* - Domain has expired - FAILED* - Domain has failed a required action, and the system is no longer retrying - HELD* - Domain has been placed on hold, and likely requires intervention from Support - LOCKED* - Domain has been locked, and likely requires intervention from Support - PARKED* - Domain has been parked, and likely requires intervention from Support - PENDING* - Domain is working its way through an automated workflow - RESERVED* - Domain is reserved, and likely requires intervention from Support - REVERTED - Domain has been reverted, and likely requires intervention from Support - SUSPENDED* - Domain has been suspended, and likely requires intervention from Support - TRANSFERRED* - Domain has been transferred out - UNKNOWN - Domain is in an unknown state - UNLOCKED* - Domain has been unlocked, and likely requires intervention from Support - UNPARKED* - Domain has been unparked, and likely requires intervention from Support - UPDATED* - Domain ownership has been transferred to another account type: string + format: iso-datetime + description: Date the domain must renew on transferProtected: - description: Whether or not the domain is protected from transfer type: boolean + description: Whether or not the domain is protected from transfer + createdAt: + type: string + format: iso-datetime + description: Date and time when this domain was created + deletedAt: + type: string + format: iso-datetime + description: Date and time when this domain was deleted + modifiedAt: + type: string + format: iso-datetime + description: Date and time when this domain was last modified + transferAwayEligibleAt: + type: string + format: iso-datetime + description: Date and time when this domain is eligible to transfer + authCode: + type: string + description: Authorization code for transferring the Domain + nameServers: + type: array + items: + type: string + format: host-name + description: Fully-qualified domain names for DNS servers + hostnames: + type: array + items: + type: string + format: host-name + description: Hostnames owned by the domain + renewal: + $ref: '#/components/schemas/RenewalDetails' + verifications: + $ref: '#/components/schemas/VerificationsDomainV2' + contacts: + $ref: '#/components/schemas/DomainContactsV2' + actions: + type: array + items: + $ref: '#/components/schemas/Action' + description: List of current actions in progress for this domain + dnssecRecords: + type: array + items: + $ref: '#/components/schemas/DomainDnssec' + description: List of active DNSSEC records for this domain + registryStatusCodes: + type: array + items: + type: string + enum: + - ADD_PERIOD + - AUTO_RENEW_PERIOD + - CLIENT_DELETE_PROHIBITED + - CLIENT_HOLD + - CLIENT_RENEW_PROHIBITED + - CLIENT_TRANSFER_PROHIBITED + - CLIENT_UPDATE_PROHIBITED + - INACTIVE + - OK + - PENDING_CREATE + - PENDING_DELETE + - PENDING_RENEW + - PENDING_RESTORE + - PENDING_TRANSFER + - PENDING_UPDATE + - REDEMPTION_PERIOD + - RENEW_PERIOD + - SERVER_DELETE_PROHIBITED + - SERVER_HOLD + - SERVER_RENEW_PROHIBITED + - SERVER_TRANSFER_PROHIBITED + - SERVER_UPDATE_PROHIBITED + - TRANSFER_PERIOD + description: |- + The current registry status codes of the domain + + - **ADD_PERIOD** — This grace period is provided after the initial registration of a domain name. + - **AUTO_RENEW_PERIOD** — This grace period is provided after a domain name registration period expires and is extended (renewed) automatically by the registry. + - **CLIENT_DELETE_PROHIBITED** — This status code tells your domain's registry to reject requests to delete the domain. + - **CLIENT_HOLD** — This status code tells your domain's registry to not activate your domain in the DNS and as a consequence, it will not resolve. + - **CLIENT_RENEW_PROHIBITED** — This status code tells your domain's registry to reject requests to renew your domain. + - **CLIENT_TRANSFER_PROHIBITED** — This status code tells your domain's registry to reject requests to transfer the domain from your current registrar to another. + - **CLIENT_UPDATE_PROHIBITED** — This status code tells your domain's registry to reject requests to update the domain. + - **INACTIVE** — This status code indicates that delegation information (name servers) has not been associated with your domain. + - **OK** — This is the standard status for a domain, meaning it has no pending operations or prohibitions. + - **PENDING_CREATE** — This status code indicates that a request to create your domain has been received and is being processed. + - **PENDING_DELETE** — This status code indicates that the domain is either in a redemption period if combined with either REDEMPTION_PERIOD or PENDING_RESTORE, if not combined with these, then indicates that the redemption period for the domain has ended and domain will be be purged and dropped from the registry database. + - **PENDING_RENEW** — This status code indicates that a request to renew your domain has been received and is being processed. + - **PENDING_RESTORE** — This status code indicates that your registrar has asked the registry to restore your domain that was in REDEMPTION_PERIOD status + - **PENDING_TRANSFER** — This status code indicates that a request to transfer your domain to a new registrar has been received and is being processed. + - **PENDING_UPDATE** — This status code indicates that a request to update your domain has been received and is being processed. + - **REDEMPTION_PERIOD** — This status code indicates that your registrar has asked the registry to delete your domain. + - **RENEW_PERIOD** — This grace period is provided after a domain name registration period is explicitly extended (renewed) by the registrar. + - **SERVER_DELETE_PROHIBITED** — This status code prevents your domain from being deleted. + - **SERVER_HOLD** — This status code is set by your domain's Registry Operator. Your domain is not activated in the DNS. + - **SERVER_RENEW_PROHIBITED** — This status code indicates your domain's Registry Operator will not allow your registrar to renew your domain. + - **SERVER_TRANSFER_PROHIBITED** — This status code prevents your domain from being transferred from your current registrar to another. + - **SERVER_UPDATE_PROHIBITED** — This status code locks your domain preventing it from being updated. + - **TRANSFER_PERIOD** — This grace period is provided after the successful transfer of a domain name from one registrar to another. required: - domainId - domain @@ -6241,511 +3919,737 @@ components: - renewDeadline - transferProtected - createdAt - - contactRegistrant + - authCode + - nameServers + - contacts type: object - DomainTransferIn: + DomainPrivacyForwarding: properties: - authCode: - description: Authorization code from registrar for transferring a domain + privateEmail: type: string - consent: - $ref: '#/components/schemas/Consent' - description: Required agreements can be retrieved via the GET ./domains/agreements endpoint - period: - default: 1 - description: Can be more than 1 but no more than 10 years total including current registration length - format: integer-positive - maximum: 10 - minimum: 1 - type: integer - privacy: - default: false - description: Whether or not privacy has been requested - type: boolean - renewAuto: - default: true - description: Whether or not the domain should be configured to automatically renew - type: boolean - required: - - authCode - - consent + description: The private email + forwardingEmail: + type: string + description: The email that it forwards to + emailPreference: + type: string + enum: + - EMAIL_FILTER + - EMAIL_SEND_ALL + - EMAIL_SEND_NONE + description: |- + The email forwarding preference for the domain + + - **EMAIL_FILTER** — Filter for spam and forward email. + - **EMAIL_SEND_ALL** — Forward all email. + - **EMAIL_SEND_NONE** — Don't forward email. type: object - DomainUpdate: + DomainPrivacyForwardingUpdate: properties: - locked: - description: Whether or not the domain should be locked to prevent transfers - type: boolean - nameServers: - description: Fully-qualified domain names for Name Servers to associate with the domain - items: - format: host-name - type: array - renewAuto: - description: Whether or not the domain should be configured to automatically renew - type: boolean - subaccountId: - description: Reseller subaccount shopperid who can manage the domain + privateEmailType: + type: string + enum: + - DEFAULT + - RANDOM + description: |- + The private email type + + - **DEFAULT** — Use default email address (example: domainname.com@domainsbyproxy.com) + - **RANDOM** — Randomize email address, we’ll create a private email address using random characters to further protect you from unwanted spam. (5f9e6c9368a64565bf2@domainsbyproxy.com) + forwardingEmail: + type: string + description: The email that it forwards to + emailPreference: type: string + enum: + - EMAIL_FILTER + - EMAIL_SEND_ALL + - EMAIL_SEND_NONE + description: |- + The email forwarding preference for the domain + + - **EMAIL_FILTER** — Filter for spam and forward email. + - **EMAIL_SEND_ALL** — Forward all email. + - **EMAIL_SEND_NONE** — Don't forward email. + required: + - privateEmailType + - emailPreference type: object - DomainsContactsBulk: + Action: properties: - contactAdmin: - $ref: '#/components/schemas/Contact' - contactBilling: - $ref: '#/components/schemas/Contact' - contactPresence: - $ref: '#/components/schemas/Contact' - contactRegistrant: - $ref: '#/components/schemas/Contact' - contactTech: - $ref: '#/components/schemas/Contact' - domains: - description: 'An array of domain names to be validated against. Alternatively, you can specify the extracted tlds. However, full domain names are required if the tld is `uk`''' - items: - format: domain - type: string - minItems: 1 - type: array - entityType: - description: Canadian Presence Requirement (CA) + type: + type: string + description: |- + The type of action being performed + + - **AUTH_CODE_PURCHASE** — Request for an auth code for a .de domain via POST /v2/customers/{customerId}/domains/{domain}/purchaseAuthCode. + - **AUTH_CODE_REGENERATE** — Request to regenerate the authCode for a domain via POST /v2/customers/{customerId}/domains/{domain}/regenerateAuthCode + - **AUTO_RENEWAL** — A Domain Auto Renew is in progress. + - **BACKORDER_PURCHASE** — Request to purchase a domain backorder via POST /v2/customers/{customerId}/domains/backorders/purchase. + - **BACKORDER_DELETE** — Request to cancel the current domain backorder via DELETE /v2/customers/{customerId}/domains/backorders/{domain}. + - **BACKORDER_UPDATE** — Request update the current domain backorder via PATCH /v2/customers/{customerId}/domains/backorders/{domain}. + - **CHANGE_OF_REGISTRANT_DELETE** — Request to delete a change of registrant request via DELETE /v2/customers/{customerId}/domains/{domain}/changeOfRegistrant. + - **CONTACT_CREATE** — Request to create a contact via POST /v2/customers/{customerId}/domains/contacts. + - **CONTACT_DELETE** — Request to delete a contact via DELETE /v2/customers/{customerId}/domains/contacts/{contactId} + - **CONTACT_UPDATE** — Request to update a contact via PATCH /v2/customers/{customerId}/domains/contacts/{contactId} + - **DNS_VERIFICATION** — Domain requires zone file setup. + - **DNSSEC_CREATE** — Request to create DNSSEC record for the domain via PATCH /v2/customers/{customerId}/domains/{domain}/dnssecRecords. + - **DNSSEC_DELETE** — Request to delete DNSSEC record for the domain via DELETE /v2/customers/{customerId}/domains/{domain}/dnssecRecords. + - **DOMAIN_DELETE** — Request to delete the domain via DELETE /v2/customers/{customerId}/domains/{domain} + - **DOMAIN_UPDATE** — Request to update the domain via PATCH /v2/customers/{customerId}/domains/{domain} + - **DOMAIN_UPDATE_CONTACTS** — Request to update the domain contacts via PATCH /v2/customers/{customerId}/domains/{domain}/contacts + - **DOMAIN_UPDATE_NAME_SERVERS** — Request to update the domain name servers via PUT /v2/customers/{customerId}/domains/{domain}/nameServers + - **EXPIRY** — A Domain Expiration is in progress. + - **HOST_CREATE** — Request to create a hostname via PUT /v2/customers/{customerId}/domains/{domain}/hosts/{hostname} + - **HOST_DELETE** — Request to delete a hostname via DELETE /v2/customers/{customerId}/domains/{domain}/hosts/{hostname} + - **ICANN_VERIFICATION** — Domain requires registrant verification for ICANN. + - **PREMIUM** — Premium Domain domain sale is in progress. + - **PRIVACY_FORWARDING_UPDATE** — Request to update privacy forwarding information via PATCH /v2/customers/{customerId}/domains/{domain}/privacy/forwarding. + - **PRIVACY_PURCHASE** — Request to purchase privacy for a domain via POST /v2/customers/{customerId}/domains/{domain}/privacy/purchase + - **PRIVACY_DELETE** — Request to remove privacy from a domain via DELETE /v2/customers/{customerId}/domains/{domain}/privacy + - **REDEEM** — Request to redeem a domain via POST /v2/customers/{customerId}/domains/{domain}/redeem + - **REGISTER** — Request to register a domain via POST /v2/customers/{customerId}/domains/{domain}/register + - **RENEW** — Request to renew a domain via POST /v2/customers/{customerId}/domains/{domain}/renew + - **RENEW_UNDO** — Request to undo a renewal for a uk domain via POST /v2/customers/{customerId}/domains/{domain}/undoRenew + - **TRADE** — A domain trade request is in progress + - **TRADE_CANCEL** — Request to cancel a trade for a domain via POST /v2/customers/{customerId}/domains/{domain}/tradeCancel + - **TRADE_PURCHASE** — Request to purchase a trade for a domain via POST /v2/customers/{customerId}/domains/{domain}/tradePurchase + - **TRADE_PURCHASE_AUTH_TEXT_MESSAGE** — Request for a trade purchase text message for a domain via POST /v2/customers/{customerId}/domains/{domain}/tradePurchaseAuthorizationTextMessage + - **TRADE_RESEND_AUTH_EMAIL** — Request to resend the trade auth email message for a domain via POST /v2/customers/{customerId}/domains/{domain}/tradeResendAuthorizationEmail + - **TRANSFER** — Request to transfer a domain via POST /v2/customers/{customerId}/domains/{domain}/transfer + - **TRANSFER_IN** — A domain transfer in request is in progress. + - **TRANSFER_IN_ACCEPT** — Request to accept a domain transfer in via POST /v2/customers/{customerId}/domains/{domain}/transferInAccept + - **TRANSFER_IN_CANCEL** — Request to cancel a domain transfer via POST /v2/customers/{customerId}/domains/{domain}/transferInCancel + - **TRANSFER_IN_RESTART** — Request to restart a domain transfer in via POST /v2/customers/{customerId}/domains/{domain}/transferInRestart + - **TRANSFER_IN_RETRY** — Request to retry a domain transfer in via POST /v2/customers/{customerId}/domains/{domain}/transferInRetry + - **TRANSFER_OUT** — A domain transfer out request is in progress. + - **TRANSFER_OUT_ACCEPT** — Request to accept a transfer out request for a domain via POST /v2/customers/{customerId}/domains/{domain}/transferOutAccept + - **TRANSFER_OUT_REJECT** — Request to reject a transfer out request for a domain via POST /v2/customers/{customerId}/domains/{domain}/transferOutReject + - **TRANSFER_OUT_REQUESTED** — Request to transfer out for a domain (.de) via POST /v2/customers/{customerId}/domains/{domain}/transferOut + - **TRANSIT** — Request to transit a de or at domain at the registry via POST /v2/customers/{customerId}/domains/{domain}/transit enum: - - ABORIGINAL - - ASSOCIATION - - CITIZEN - - CORPORATION - - EDUCATIONAL - - GOVERNMENT - - HOSPITAL - - INDIAN_BAND - - LEGAL_REPRESENTATIVE - - LIBRARY_ARCHIVE_MUSEUM - - MARK_REGISTERED - - MARK_TRADE - - PARTNERSHIP - - POLITICAL_PARTY - - RESIDENT_PERMANENT - - TRUST - - UNION + - AUTH_CODE_PURCHASE + - AUTH_CODE_REGENERATE + - AUTO_RENEWAL + - BACKORDER_PURCHASE + - BACKORDER_DELETE + - BACKORDER_UPDATE + - CHANGE_OF_REGISTRANT_DELETE + - CONTACT_CREATE + - CONTACT_DELETE + - CONTACT_UPDATE + - DNS_VERIFICATION + - DNSSEC_CREATE + - DNSSEC_DELETE + - DOMAIN_DELETE + - DOMAIN_UPDATE + - DOMAIN_UPDATE_CONTACTS + - DOMAIN_UPDATE_NAME_SERVERS + - EXPIRY + - HOST_CREATE + - HOST_DELETE + - ICANN_VERIFICATION + - MIGRATE + - MIGRATE_IN + - PREMIUM + - PRIVACY_PURCHASE + - PRIVACY_DELETE + - REDEEM + - REGISTER + - RENEW + - RENEW_UNDO + - TRADE + - TRADE_CANCEL + - TRADE_PURCHASE + - TRADE_PURCHASE_AUTH_TEXT_MESSAGE + - TRADE_RESEND_AUTH_EMAIL + - TRANSFER + - TRANSFER_IN + - TRANSFER_IN_ACCEPT + - TRANSFER_IN_CANCEL + - TRANSFER_IN_RESTART + - TRANSFER_IN_RETRY + - TRANSFER_OUT + - TRANSFER_OUT_ACCEPT + - TRANSFER_OUT_REJECT + - TRANSFER_OUT_REQUESTED + - TRANSIT + origination: + type: string + enum: + - USER + - SYSTEM + description: |- + The origination of the action + + - **USER** — These are user requests. + - **SYSTEM** — These are system processing actions. + createdAt: + type: string + format: iso-datetime + description: Timestamp indicating when the action was created + startedAt: + type: string + format: iso-datetime + description: Timestamp indicating when the action was started + completedAt: + type: string + format: iso-datetime + description: Timestamp indicating when the action was completed + modifiedAt: + type: string + format: iso-datetime + description: Timestamp indicating when the action was last modified + status: + type: string + default: ACCEPTED + enum: + - ACCEPTED + - AWAITING + - CANCELLED + - FAILED + - PENDING + - SUCCESS + description: |- + The current status of the action + + - **ACCEPTED** — The action has been queued; processing has not started. + - **AWAITING** — The action is waiting on user input. + - **CANCELLED** — The action has been cancelled by the user. + - **FAILED** — An error occurred while the action was processing; no more processing will be performed. + - **PENDING** — The action is being processed. + - **SUCCESS** — The action has completed; no additional processing is required. + reason: + $ref: '#/components/schemas/ActionReason' + requestId: type: string + description: A client provided identifier (via X-Request-Id header) used for tracking individual requests required: - - domains + - type + - origination + - createdAt + - status type: object - Error: + DomainNotification: properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant + notificationId: + description: The notification ID to be used in POST /v2/customers/{customerId}/domains/notifications to acknowledge the notification + default: '' type: string - fields: - description: 'List of the specific fields, and the errors found with their contents' - items: - $ref: '#/components/schemas/ErrorField' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' + type: + description: The type of action the notification relates to + enum: + - AUTH_CODE_REGENERATE + - AUTO_RENEWAL + - CHANGE_OF_REGISTRANT_DELETE + - DOMAIN_DELETE + - DOMAIN_UPDATE + - DOMAIN_UPDATE_NAME_SERVERS + - PRIVACY_FORWARDING_UPDATE + - REGISTER + - TRANSFER + - TRANSFER_IN + - TRANSFER_IN_ACCEPT + - TRANSFER_IN_CANCEL + - TRANSFER_IN_RESTART + - TRANSFER_IN_RETRY + - TRANSFER_OUT + - TRANSFER_OUT_ACCEPT + - TRANSFER_OUT_REJECT + type: string + resource: + description: The resource the notification pertains to. + default: '' + type: string + resourceType: + description: The type of resource the notification relates to + enum: + - CONTACT + - DOMAIN + - HOST + type: string + status: + type: string + enum: + - AWAITING + - CANCELLED + - FAILED + - PENDING + - SUCCESS + description: The resulting status of the action. + addedAt: + description: The date the notification was added + default: '' + type: string + format: iso-datetime + requestId: + type: string + description: A client provided identifier (via X-Request-Id header) indicating the request this notification is for + metadata: + description: The notification data for the given type as specified by GET /v2/customers/{customerId}/domains/notifications/schema (opaque JSON object) + default: '' type: string required: - - code + - notificationId + - type + - resource + - resourceType + - status + - addedAt type: object - ErrorDomainContactsValidate: + JsonSchema: properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant + id: type: string - fields: - description: 'List of the specific fields, and the errors found with their contents' - items: - $ref: '#/components/schemas/ErrorFieldDomainContactsValidate' - minItems: 1 + models: type: array - message: - description: 'Human-readable, English description of the error' - type: string - stack: - description: 'Stack trace indicating where the error occurred. NOTE: This attribute MAY be included for Development and Test environments. However, it MUST NOT be exposed from OTE nor Production systems' items: type: string - minItems: 1 + description: Nested schema model (opaque JSON object) + properties: + type: array + items: + $ref: '#/components/schemas/JsonProperty' + required: type: array + items: + type: string required: - - code + - id + - properties + - required + - models type: object - ErrorField: + UsageMonthly: + additionalProperties: false properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path - type: string - pathRelated: - description: 'JSONPath referring to a field containing an error, which is referenced by `path`' - format: json-path + details: + type: array + items: + $ref: '#/components/schemas/UsageMonthlyDetail' + description: List of total request counts per endpoint. + quota: + type: integer + description: The total number of allowed requests in the month. See https://developer.godaddy.com/getstarted for more information on api quotas and access limits. + total: + type: integer + description: The total number of requests in the month. + yyyymm: type: string + description: The year/month timeframe for the request counts (in the format yyyy-mm) required: - - path - - code + - total + - yyyymm type: object - ErrorFieldDomainContactsValidate: + ErrorField_v2: properties: code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' + description: Short identifier for the error, suitable for indicating the specific error within client code format: constant type: string - domains: - description: 'An array of domain names the error is for. If tlds are specified in the request, `domains` will contain tlds. For example, if `domains` in request is ["test1.com", "test2.uk", "net"], and the field is invalid for com and net, then one of the `fields` in response will have ["test1.com", "net"] as `domains`' - items: - type: string - type: array message: - description: 'Human-readable, English description of the problem with the contents of the field' + description: Human-readable, English description of the problem with the contents of the field type: string path: - description: 1) JSONPath referring to the field within the data containing an erroror2) JSONPath referring to an object containing an error + description: |- + JSONPath referring to a field containing an error, or a field that refers to an + object containing an error (with more detail in `pathRelated`). format: json-path type: string pathRelated: - description: JSONPath referring to the field on the object referenced by `path` containing an error + description: JSONPath referring to a field containing an error, which is referenced by `path` format: json-path type: string required: - - code - - domains - path + - code type: object - ErrorLimit: + ContactRegistrantChange: properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant + email: type: string - fields: - description: 'List of the specific fields, and the errors found with their contents' - items: - $ref: '#/components/schemas/ErrorField' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' + format: email + maxLength: 80 + firstName: type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - required: - - retryAfterSec - - code + format: person-name + maxLength: 30 + lastName: + type: string + format: person-name + maxLength: 30 + organization: + type: string + format: organization-name + maxLength: 100 + required: + - email + - firstName + - lastName type: object - IdentityDocumentCreate: + RenewalDetails: properties: - contact: - $ref: '#/components/schemas/Contact' - identificationCountry: - description: 'Two-letter ISO country code to be used as a hint for target region NOTE: These are sample values, there are many more' - enum: - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AX - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BL - - BM - - BN - - BO - - BQ - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CU - - CV - - CW - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IR - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KP - - KR - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MF - - MG - - MH - - MK - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL - - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SD - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - SS - - ST - - SV - - SX - - SY - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW - format: iso-country-code + renewable: + type: boolean + description: Whether or not the domain is eligble for renewal based on status + price: + type: integer + format: currency-micro-unit + description: Price for the domain renewal excluding taxes or fees + currency: + type: string + format: iso-currency-code + default: USD + pattern: ^[A-Z][A-Z][A-Z]$ + description: Currency in which the `price` is listed + required: + - price + - currency + type: object + VerificationsDomainV2: + additionalProperties: false + properties: + icann: + type: string + enum: + - COMPLETED + - PENDING + - UNABLE_TO_RETRIEVE_STATUS + description: |- + Status of the ICANN verification of domain registrant contact by completing email and/or phone verification + + - **COMPLETED** — ICANN verification has been completed. + - **PENDING** — ICANN verification has not been completed. + - **UNABLE_TO_RETRIEVE_STATUS** — ICANN verification not supported for specified TLD. + realName: + type: string + enum: + - APPROVED + - PENDING + - REJECTED_DOCUMENT_OUTDATED + - REJECTED_EXPIRED_BUSINESS_LICENSE + - REJECTED_EXPIRED_ORGANIZATION_CODE + - REJECTED_ILLEGIBLE_DOCUMENT_NAME + - REJECTED_ILLEGIBLE_IDENTIFICATION + - REJECTED_INCOMPLETE_IDENTIFICATION + - REJECTED_INCOMPLETE_REGISTRATION_LETTER + - REJECTED_INCONSISTENT_IDENTITY_CARD + - REJECTED_INCONSISTENT_ORGANIZATION_CODE + - REJECTED_INCONSISTENT_REGISTRANT_NAME + - REJECTED_INVALID_BUSINESS_LICENSE_OR_ORGANIZATION_CODE + - REJECTED_INVALID_DOCUMENT + - REJECTED_MISMATCH_BUSINESS_ID + - REJECTED_MISMATCH_BUSINESS_NAME + - REJECTED_MISMATCH_DOCUMENT_ID + - REJECTED_MISMATCH_DOCUMENT_NAME + - REJECTED_MISMATCH_DOCUMENT_TYPE + - REJECTED_MISMATCH_REGISTRANT_INFO + - REJECTED_MISMATCH_REGISTRANT_LOCALITY + - REJECTED_MISMATCH_REGISTRANT_NAME + - REJECTED_UNABLE_TO_OPEN + - REJECTED_UNABLE_TO_VERIFY + - REJECTED_UNKNOWN_ERROR + - UNABLE_TO_RETRIEVE_STATUS + description: |- + Status of the real name verification of an identity by comparing registration data against government issued documents + + - **APPROVED** — All is well + - **PENDING** — Real name verification is working its way through the workflow + - **REJECTED_DOCUMENT_OUTDATED** — Local government verification shows there is a newer version of your document. Upload the latest version of the document and retry real name verification + - **REJECTED_EXPIRED_BUSINESS_LICENSE** — Business license is expired + - **REJECTED_EXPIRED_ORGANIZATION_CODE** — Organization code certificate number has expired + - **REJECTED_ILLEGIBLE_DOCUMENT_NAME** — There isn’t a clear name on your uploaded document, please upload a different document to retry real name verification + - **REJECTED_ILLEGIBLE_IDENTIFICATION** — Registrant identification is not clear. Upload a better image to retry + - **REJECTED_INCOMPLETE_IDENTIFICATION** — Registrant identification is incomplete + - **REJECTED_INCOMPLETE_REGISTRATION_LETTER** — Registration letter is incomplete + - **REJECTED_INCONSISTENT_IDENTITY_CARD** — Provided identity card is inconsistent with the identity card on record + - **REJECTED_INCONSISTENT_ORGANIZATION_CODE** — Provided organization information is inconsistent with the results obtained using the submitted organization code + - **REJECTED_INCONSISTENT_REGISTRANT_NAME** — Name on the registrant identification does not match the name in the system + - **REJECTED_INVALID_BUSINESS_LICENSE_OR_ORGANIZATION_CODE** — Your document contains an invalid business license or organization code certificate number + - **REJECTED_INVALID_DOCUMENT** — Document is invalid. Please upload another document to retry real name verification + - **REJECTED_MISMATCH_BUSINESS_ID** — Business id does not match the business id in the document + - **REJECTED_MISMATCH_BUSINESS_NAME** — Business name does not match the business name in the document + - **REJECTED_MISMATCH_DOCUMENT_ID** — Document id does not match the id in the document + - **REJECTED_MISMATCH_DOCUMENT_NAME** — Document name does not match the name in the document + - **REJECTED_MISMATCH_DOCUMENT_TYPE** — Document type does not match the document + - **REJECTED_MISMATCH_REGISTRANT_INFO** — The information provided for the registrant does not match the document + - **REJECTED_MISMATCH_REGISTRANT_LOCALITY** — Registrant region is overseas, but a local identity document was provided + - **REJECTED_MISMATCH_REGISTRANT_NAME** — Registrant name has been changed, so the request must be resubmitted + - **REJECTED_UNABLE_TO_OPEN** — Registrant identification could not be opened. Please upload the document again to retry real name verification + - **REJECTED_UNABLE_TO_VERIFY** — Unable to initiate verification. Please upload the document again to retry real name verification + - **REJECTED_UNKNOWN_ERROR** — Document was rejected due to an unknown error. For more information, contact customer support + - **UNABLE_TO_RETRIEVE_STATUS** — Unable to retrieve status for the real name verification process. Retry, if this status persists, contact customer support + domainName: + type: string + enum: + - APPROVED + - PENDING + - REJECTED + - UNABLE_TO_RETRIEVE_STATUS + description: Status of the verification of the domain name against a prohibited list maintained by the government + type: object + DomainContactsV2: + additionalProperties: false + properties: + registrant: + $ref: '#/components/schemas/ContactDomain' + admin: + $ref: '#/components/schemas/ContactDomain' + tech: + $ref: '#/components/schemas/ContactDomain' + billing: + $ref: '#/components/schemas/ContactDomain' + type: object + DomainDnssec: + properties: + algorithm: + description: |- + This identifies the cryptographic algorithm used to generate the signature + + - **RSAMD5** — [01] DRSA/MD5 + - **DSA** — [03] DSA/SHA1 + - **RSASHA1** — [05] RSA/SHA-1 + - **DSA_NSEC3_SHA1** — [06] DSA-NSEC3-SHA1 + - **RSASHA1_NSEC3_SHA1** — [07] RSASHA1-NSEC3-SHA1 + - **RSASHA256** — [08] RSA/SHA-256 + - **RSASHA512** — [10] RSA/SHA-512 + - **ECC_GOST** — [12] GOST R 34.10-2001 + - **ECDSAP256SHA256** — [13] ECDSA Curve P-256 with SHA-256 + - **ECDSAP384SHA384** — [14] ECDSA Curve P-384 with SHA-384 + - **ED25519** — [15] Ed25519 + - **ED448** — [16] Ed448 + enum: + - RSAMD5 + - DH + - DSA + - RSASHA1 + - DSA_NSEC3_SHA1 + - RSASHA1_NSEC3_SHA1 + - RSASHA256 + - RSASHA512 + - ECC_GOST + - ECDSAP256SHA256 + - ECDSAP384SHA384 + - ED25519 + - ED448 + - PRIVATEDNS + - PRIVATEOID + type: string + keyTag: + description: This is an integer value less than 65536 used to identify the DNSSEC record for the domain name. + type: integer + format: integer-positive + maximum: 65536 + digestType: + description: |- + This identifies the algorithm used to construct the digest + + - **SHA1** — [01] SHA-1 + - **SHA256** — [02] SHA-256 + - **GOST** — [03] GOST R 34.11-94 + - **SHA384** — [04] SHA-384 + enum: + - SHA1 + - SHA256 + - GOST + - SHA384 type: string - identificationNumber: - description: Individual or business identification number written on the document. Must match image exactly + digest: type: string - identificationType: - description: Type of the identity document + description: The digest is an alpha-numeric value + flags: + description: |- + This identifies the key type; either a Zone-Signing Key or a Key-Signing Key + + - **ZSK** — [256] Zone-Signing Key + - **KSK** — [257] Key-Signing Key enum: - - BUSINESS_LICENSE - - DRIVERS_LICENSE - - ORGANIZATION_CODE_CERTIFICATE - - PASSPORT - - RESIDENT_ID - - RESIDENT_ID_TEMPORARY + - ZSK + - KSK + type: string + publicKey: + type: string + description: Registries use this value to encrypt DS records. Decryption requires a matching public key + maxSignatureLife: + type: integer + format: integer-positive + description: This specifies the validity period for the signature. The value is expressed in seconds. You can use any integer value larger than zero + required: + - algorithm + type: object + ActionReason: + additionalProperties: false + properties: + code: + type: string + format: constant + pattern: ^[A-Z_][A-Z0-9_]*$ + description: Short identifier, suitable for indicating the reason for the current status and how to handle within client code + message: + type: string + description: Human-readable, English description of the code + fields: + type: array + items: + $ref: '#/components/schemas/ErrorField_v2' + description: List of the specific fields, and the errors found with their contents + required: + - code + type: object + JsonProperty: + properties: + defaultValue: + type: string + format: type: string - image: - description: 'The base64 encoded string of the document image. The document image size must be between 4KB and 10MB. Supported formats are bmp, jpg/jpeg, jfif, png, gif, and tiff' + items: + type: array + items: + $ref: '#/components/schemas/JsonDataType' + maxItems: + type: integer + maximum: + type: integer + minItems: + type: integer + minimum: + type: integer + pattern: type: string - legalEntityName: - description: Individual or business name written on the document. Must match image exactly + required: + type: boolean + type: type: string required: - - contact - - identificationCountry - - identificationNumber - - identificationType - - image - - legalEntityName + - type + - required type: object - IdentityDocumentId: + UsageMonthlyDetail: + additionalProperties: false properties: - identityDocumentId: - description: The unique identifier of an identity document + path: type: string + description: The api path for the requests + total: + type: integer + description: The total number of requests in the month for the request path. required: - - identityDocumentId + - path + - total type: object - IdentityDocumentSummary: + ContactDomain: properties: - contact: - $ref: '#/components/schemas/Contact' - identificationCountry: - description: 'Two-letter ISO country code to be used as a hint for target region NOTE: These are sample values, there are many more ' + contactId: + type: string + description: Unique identifier for this Contact + encoding: + type: string + default: ASCII + enum: + - ASCII + - UTF-8 + description: |- + The encoding of the contact data + + - **ASCII** — Data contains only ASCII characters that are not region or language specific. + - **UTF-8** — Data contains characters that are specific to a region or language. + nameFirst: + type: string + format: person-name + maxLength: 30 + nameMiddle: + type: string + nameLast: + type: string + format: person-name + maxLength: 30 + organization: + type: string + format: organization-name + maxLength: 100 + jobTitle: + type: string + email: + type: string + format: email + maxLength: 80 + phone: + type: string + format: phone + maxLength: 17 + fax: + type: string + format: phone + maxLength: 17 + addressMailing: + $ref: '#/components/schemas/Address_v2' + exposeRegistrantOrganization: + type: boolean + description: Whether or not the domain registrant contact organization field should be shown in the WHOIS + exposeWhois: + type: boolean + description: Whether or not the contact details should be shown in the WHOIS + metadata: + type: string + description: The contact eligibility data fields as specified by GET /v2/customers/{customerId}/domains/contacts/schema/{tld} (opaque JSON object) + tlds: + type: array + description: The tlds that this contact can be assigned to + items: + type: string + _createdAt: + type: string + format: iso-datetime + description: Timestamp indicating when the contact was created + _modifiedAt: + type: string + format: iso-datetime + description: Timestamp indicating when the contact was last modified + _deleted: + type: boolean + description: Flag indicating if the contact has been logically deleted in the system + _revision: + type: integer + description: The current revision number of the contact. + required: + - nameFirst + - nameLast + - email + - phone + - addressMailing + - exposeWhois + - exposeRegistrantOrganization + type: object + JsonDataType: + properties: + format: + type: string + pattern: + type: string + type: + type: string + required: + - type + - $ref + type: object + Address_v2: + properties: + address1: + format: street-address + type: string + address2: + format: street-address2 + type: string + city: + format: city-name + type: string + country: + default: US + description: |- + Two-letter ISO country code to be used as a hint for target region. + NOTE: These are sample values; see [ISO country codes](http://www.iso.org/iso/country_codes.htm). enum: + - AC - AD - AE - AF @@ -6771,7 +4675,6 @@ components: - BH - BI - BJ - - BL - BM - BN - BO @@ -6796,7 +4699,6 @@ components: - CN - CO - CR - - CU - CV - CW - CX @@ -6853,7 +4755,6 @@ components: - IN - IO - IQ - - IR - IS - IT - JE @@ -6866,8 +4767,8 @@ components: - KI - KM - KN - - KP - KR + - KV - KW - KY - KZ @@ -6886,7 +4787,6 @@ components: - MC - MD - ME - - MF - MG - MH - MK @@ -6941,7 +4841,6 @@ components: - SA - SB - SC - - SD - SE - SG - SH @@ -6953,11 +4852,9 @@ components: - SN - SO - SR - - SS - ST - SV - SX - - SY - SZ - TC - TD @@ -6970,6 +4867,7 @@ components: - TM - TN - TO + - TP - TR - TT - TV @@ -6997,251 +4895,578 @@ components: - ZW format: iso-country-code type: string - identificationNumber: - description: Individual or business identification number written on the document. Must match image exactly + postalCode: + description: Postal or zip code + format: postal-code + type: string + state: + description: State or province or territory + format: state-province-territory + type: string + required: + - address1 + - city + - state + - postalCode + - country + type: object + DomainStatus: + title: Domain Status + description: | + The lifecycle state of a registered domain. ACTIVE — domain is registered and resolving normally. EXPIRED — domain has passed its expiration date; renewal still possible during the grace period. CANCELLED — domain registration has been cancelled and released. CANCELLED_REDEEMABLE — cancelled domain still within the redemption grace period. PENDING_TRANSFER — inbound transfer from another registrar is in progress. TRANSFERRED_OUT — domain was transferred to another registrar. LOCKED — domain has a registry-level administrative lock applied. + type: string + enum: + - ACTIVE + - EXPIRED + - CANCELLED + - CANCELLED_REDEEMABLE + - PENDING_TRANSFER + - TRANSFERRED_OUT + - LOCKED + DomainLifecycleGroup: + title: Domain Lifecycle Group + description: | + A logical grouping of domain lifecycle statuses for filtering purposes. PENDING — domain setup is in progress (e.g. PENDING_REGISTRATION). REGISTERED — domain is actively registered and operational (e.g. ACTIVE, PARKED). PENDING_TERMINAL — domain is approaching a terminal state (e.g. PENDING_TRANSFER, EXPIRED). TERMINAL — domain has reached a terminal state and is no longer manageable (e.g. CANCELLED, DELETED_REDEEMABLE, TRANSFERRED, REPOSSESSED). + type: string + examples: + - PENDING + - REGISTERED + - PENDING_TERMINAL + - TERMINAL + DomainCollection: + title: DomainCollection + description: | + A paginated collection of registered domains owned by the authenticated account. Supports filtering by status and cursor-based pagination. + type: object + required: + - items + - links + properties: + items: + type: array + description: Domains for the current page. + items: + $ref: '#/components/schemas/Domain' + links: + type: array + items: + $ref: '#/components/schemas/LinkDescription' + description: | + HATEOAS pagination links. May include rel=self (current page), rel=prev is present when more items are available before the current page. and rel=next is present when more items are available beyond the current page. + readOnly: true + Domain: + title: Domain + description: | + Full management state for a registered domain owned by the authenticated account. Includes registration metadata, expiration timestamps, lifecycle settings, current nameservers, and HATEOAS links for sub-resource navigation. + type: object + required: + - domain + - status + - expiresAt + - createdAt + - autoRenew + - privacy + properties: + domain: + type: string + description: The domain name in punycode A-label form. + readOnly: true + example: example.com + idnDomain: + type: string + description: | + The internationalized (U-label) representation of the domain name. Only present for internationalized domain names (IDNs). + readOnly: true + example: 例え.jp + status: + title: Domain Status + description: | + The lifecycle state of a registered domain. ACTIVE — domain is registered and resolving normally. EXPIRED — domain has passed its expiration date; renewal still possible during the grace period. CANCELLED — domain registration has been cancelled and released. CANCELLED_REDEEMABLE — cancelled domain still within the redemption grace period. PENDING_TRANSFER — inbound transfer from another registrar is in progress. TRANSFERRED_OUT — domain was transferred to another registrar. LOCKED — domain has a registry-level administrative lock applied. type: string - identificationType: - description: Type of the identity document enum: - - BUSINESS_LICENSE - - DRIVERS_LICENSE - - ORGANIZATION_CODE_CERTIFICATE - - PASSPORT - - RESIDENT_ID - - RESIDENT_ID_TEMPORARY + - ACTIVE + - EXPIRED + - CANCELLED + - CANCELLED_REDEEMABLE + - PENDING_TRANSFER + - TRANSFERRED_OUT + - LOCKED + readOnly: true + expiresAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + createdAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + renewBy: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + updatedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + autoRenew: + type: boolean + description: Whether the domain will be renewed automatically before expiration. + privacy: + type: boolean + description: Whether WHOIS privacy protection is currently enabled on the domain. + transferLock: + type: boolean + description: | + Whether the registry transfer-lock (clientTransferProhibited) is engaged. When true, outbound transfers to another registrar are blocked at the registry. + readOnly: true + nameServers: + title: Name Servers + description: | + Ordered list of authoritative nameserver hostnames for a domain. The first entry is primary; subsequent entries are secondaries. A minimum of two nameservers is required; the maximum is thirteen. + type: array + minItems: 2 + maxItems: 13 + items: + $ref: '#/components/schemas/NameserverHostname' + example: + - ns1.domaincontrol.com + - ns2.domaincontrol.com + links: + type: array + items: + $ref: '#/components/schemas/LinkDescription' + description: | + HATEOAS links for domain sub-resources. rel=self — canonical URL for this domain resource. rel=nameservers — nameserver management sub-resource. rel=contacts — contact management sub-resource. rel=privacy — privacy toggle sub-resource. + readOnly: true + NameServers: + title: Name Servers + description: | + Ordered list of authoritative nameserver hostnames for a domain. The first entry is primary; subsequent entries are secondaries. A minimum of two nameservers is required; the maximum is thirteen. + type: array + minItems: 2 + maxItems: 13 + items: + $ref: '#/components/schemas/NameserverHostname' + example: + - ns1.domaincontrol.com + - ns2.domaincontrol.com + DomainOperation: + title: Domain Operation + description: | + The abstract operation envelope for all domain mutations, returned by the universal GET /operations/{operationId} endpoint. Concrete specializations — Registration, Renewal, and Transfer — are returned directly by their respective POST endpoints and carry the same operationId. Developers who do not need the abstract view can poll the concrete resource (GET /registrations/{id}, etc.) and ignore this type entirely. + Operation IDs are unique across all concrete types, so either poll path works for any given operation. + Async state machine: + status tracks where the operation is in its lifecycle. Non-terminal values + (CONFIRMED, EXECUTING) are transient — poll until a terminal value is reached. + result and error are mutually exclusive terminal payloads: + COMPLETED — operation succeeded; result contains the final outcome data. + FAILED — operation terminated; error contains failure detail. + Neither result nor error is present while status is non-terminal. + type: object + required: + - operationId + - type + - status + properties: + operationId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + readOnly: true + example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + type: + title: Domain Operation Type + description: | + The type of asynchronous domain operation. Used to distinguish which workflow is being polled on the /operations/{operationId} endpoint. REGISTER — new domain registration. + type: string + readOnly: true + domain: + type: string + description: The domain name this operation applies to. + readOnly: true + example: example.com + status: + title: Domain Operation Status + description: | + The execution state of an asynchronous domain operation. CONFIRMED — operation has been accepted and is queued for execution. EXECUTING — operation is actively being processed by the registry or downstream systems. COMPLETED — operation finished successfully; result data is available. FAILED — operation terminated with an unrecoverable error; error detail is attached. type: string - identityDocumentId: - description: The unique identifier of an identity document + readOnly: true + result: + readOnly: true + title: Domain Operation Result + description: | + The terminal success payload for a completed domain operation. Returned on the parent DomainOperation when status is COMPLETED. Absent for non-terminal statuses (CONFIRMED, EXECUTING) and for FAILED operations. + Once status reaches COMPLETED it is terminal: result is populated, remains available on subsequent polls, and status does not revert. Interpret the fields present in result using the parent operation's type: + REGISTER — expiresAt, orderId. + type: object + properties: + expiresAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + orderId: + type: string + description: | + The commerce order ID associated with the charge. Present for commercial operations (REGISTER, RENEW, TRANSFER_IN). + example: ord_abc123 + updatedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + error: + readOnly: true + type: object + title: Error + description: The error information. + properties: + name: + type: string + description: The human-readable, unique name of the error. + correlationId: + type: string + description: Internal identifier used for correlation purposes. + message: + type: string + description: The message that describes the error. + informationLink: + type: string + description: The URI for detailed information related to this error for the developer. + details: + type: array + description: An array of additional details about the error. Required for client-side `4XX` errors. + additionalItems: false + items: + $ref: '#/components/schemas/ErrorDetails' + links: + type: array + description: An array of error-related HATEOAS links. + readOnly: true + items: + $ref: '#/components/schemas/LinkDescription' + readOnly: true + required: + - name + - correlationId + - message + links: + type: array + items: + $ref: '#/components/schemas/LinkDescription' + description: | + HATEOAS link relations for this operation. rel=self — the canonical URL for this abstract operation view. rel=registration, rel=renewal, or rel=transfer — the same resource viewed through its concrete typed collection. rel=domain — the domain-name resource affected by this operation. + readOnly: true + createdAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' type: string - legalEntityName: - description: Individual or business name written on the document. Must match image exactly + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + updatedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' type: string - required: - - contact - - identificationCountry - - identificationNumber - - identificationType - - identityDocumentId - - legalEntityName + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + Uuid: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + LinkDescription: + title: Link Description type: object - IdentityDocumentVerification: + description: A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02). properties: - createdAt: - description: Timestamp indicating when the user created the identity document verification job - format: iso-datetime - type: string - status: - enum: - - APPROVED - - REJECTED - - PENDING + href: + description: The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call. type: string - tld: - description: Top level domain the current identity document verification is for + format: uri + rel: + description: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml). type: string - required: - - createdAt - - status - - tld - type: object - JsonDataType: - properties: - $ref: + title: + description: The link title. type: string - format: + targetMediaType: + description: The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target. type: string - pattern: + targetSchema: + description: The schema that describes the link target. + method: + description: The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`. type: string - type: + submissionMediaType: + description: The media type with which to submit data with the request. type: string + default: application/json + submissionSchema: + description: The schema that describes the request data. required: - - type - - $ref + - rel + - href + Error_v3: type: object - JsonProperty: + title: Error + description: The error information. properties: - $ref: - type: string - defaultValue: - type: string - format: + name: type: string - items: - items: - $ref: '#/components/schemas/JsonDataType' - type: object - maxItems: - type: integer - maximum: - type: integer - minItems: - type: integer - minimum: - type: integer - pattern: + description: The human-readable, unique name of the error. + correlationId: type: string - required: - type: boolean - type: + description: Internal identifier used for correlation purposes. + message: type: string - required: - - type - - $ref - - required - type: object - JsonSchema: - properties: - id: + description: The message that describes the error. + informationLink: type: string - models: - items: - $ref: '#/components/schemas/JsonSchema' - type: object - properties: - items: - $ref: '#/components/schemas/JsonProperty' - type: object - required: + description: The URI for detailed information related to this error for the developer. + details: + type: array + description: An array of additional details about the error. Required for client-side `4XX` errors. + additionalItems: false items: - type: string + $ref: '#/components/schemas/ErrorDetails' + links: type: array + description: An array of error-related HATEOAS links. + readOnly: true + items: + $ref: '#/components/schemas/LinkDescription' + readOnly: true required: - - id - - properties - - required - - models + - name + - correlationId + - message + DateTime: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + NameserverHostname: + title: Nameserver Hostname + description: A fully qualified domain name for an authoritative nameserver. + type: string + minLength: 1 + maxLength: 253 + example: ns1.domaincontrol.com + DomainOperationType: + title: Domain Operation Type + description: | + The type of asynchronous domain operation. Used to distinguish which workflow is being polled on the /operations/{operationId} endpoint. REGISTER — new domain registration. + type: string + DomainOperationStatus: + title: Domain Operation Status + description: | + The execution state of an asynchronous domain operation. CONFIRMED — operation has been accepted and is queued for execution. EXECUTING — operation is actively being processed by the registry or downstream systems. COMPLETED — operation finished successfully; result data is available. FAILED — operation terminated with an unrecoverable error; error detail is attached. + type: string + DomainOperationResult: + title: Domain Operation Result + description: | + The terminal success payload for a completed domain operation. Returned on the parent DomainOperation when status is COMPLETED. Absent for non-terminal statuses (CONFIRMED, EXECUTING) and for FAILED operations. + Once status reaches COMPLETED it is terminal: result is populated, remains available on subsequent polls, and status does not revert. Interpret the fields present in result using the parent operation's type: + REGISTER — expiresAt, orderId. type: object - LegalAgreement: + readOnly: true properties: - agreementKey: - description: Unique identifier for the legal agreement + expiresAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' type: string - content: - description: 'Contents of the legal agreement, suitable for embedding' - type: string - title: - description: Title of the legal agreement + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + orderId: type: string - url: - description: URL to a page containing the legal agreement - format: url + description: | + The commerce order ID associated with the charge. Present for commercial operations (REGISTER, RENEW, TRANSFER_IN). + example: ord_abc123 + updatedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' type: string - required: - - agreementKey - - title - - content - type: object - PrivacyPurchase: - properties: - consent: - $ref: '#/components/schemas/Consent' - description: Specify agreement `DNPA`. Required agreements can be retrieved via the GET ./domains/agreements endpoint - required: - - consent + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + ErrorDetails: + title: Error Details type: object - RealNameValidation: + description: The error details. Required for client-side `4XX` errors. properties: - status: - enum: - - APPROVED - - PENDING - - PENDING_ASSOCIATION_WITH_DOMAIN - - PENDING_SUBMISSION_TO_VERIFICATION_SERVICE - - PENDING_VERIFICATION_SERVICE_REPLY - - PENDING_SUBMISSION_TO_REGISTRY - - PENDING_REGISTRY_REPLY - - PENDING_DOMAIN_UPDATE - - REJECTED + field: type: string - type: object - TldSummary: - properties: - name: - description: Name of the top-level domain - format: tld + description: The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors. + value: type: string - type: - default: GENERIC - description: Type of the top-level domain - enum: - - COUNTRY_CODE - - GENERIC + description: The value of the field that caused the error. + location: type: string - required: - - name - - type - type: object - VerificationDomainName: - properties: - status: - description: Status of the domain name verification - enum: - - APPROVED - - PENDING - - REJECTED - - UNABLE_TO_RETRIEVE_STATUS + description: The location of the field that caused the error. Value is `body`, `path`, or `query`. + default: body + issue: type: string - required: - - status - type: object - VerificationRealName: - properties: - status: - description: 'Status of the real name verification APPROVED - All is well PENDING - Real name verification is working its way through the workflow REJECTED_DOCUMENT_OUTDATED - Local government verification shows there is a newer version of your document. Upload the latest version of the document and retry real name verification REJECTED_EXPIRED_BUSINESS_LICENSE - Business license is expired REJECTED_EXPIRED_ORGANIZATION_CODE - Organization code certificate number has expired REJECTED_ILLEGIBLE_DOCUMENT_NAME - There isn’t a clear name on your uploaded document, please upload a different document to retry real name verification REJECTED_ILLEGIBLE_IDENTIFICATION - Registrant identification is not clear. Upload a better image to retry REJECTED_INCOMPLETE_IDENTIFICATION - Registrant identification is incomplete REJECTED_INCOMPLETE_REGISTRATION_LETTER - Registration letter is incomplete REJECTED_INCONSISTENT_IDENTITY_CARD - Provided identity card is inconsistent with the identity card on record REJECTED_INCONSISTENT_ORGANIZATION_CODE - Provided organization information is inconsistent with the results obtained using the submitted organization code REJECTED_INCONSISTENT_REGISTRANT_NAME - Name on the registrant identification does not match the name in the system REJECTED_INVALID_BUSINESS_LICENSE_OR_ORGANIZATION_CODE - Your document contains an invalid business license or organization code certificate number REJECTED_INVALID_DOCUMENT - Document is invalid. Please upload another document to retry real name verification REJECTED_MISMATCH_BUSINESS_ID - Business id does not match the business id in the document REJECTED_MISMATCH_BUSINESS_NAME - Business name does not match the business name in the document REJECTED_MISMATCH_DOCUMENT_ID - Document id does not match the id in the document REJECTED_MISMATCH_DOCUMENT_NAME - Document name does not match the name in the document REJECTED_MISMATCH_DOCUMENT_TYPE - Document type does not match the document REJECTED_MISMATCH_REGISTRANT_INFO - The information provided for the registrant does not match the document REJECTED_MISMATCH_REGISTRANT_LOCALITY - Registrant region is overseas, but a local identity document was provided REJECTED_MISMATCH_REGISTRANT_NAME - Registrant name has been changed, so the request must be resubmitted REJECTED_UNABLE_TO_OPEN - Registrant identification could not be opened. Please upload the document again to retry real name verification REJECTED_UNABLE_TO_VERIFY - Unable to initiate verification. Please upload the document again to retry real name verification REJECTED_UNKNOWN_ERROR - Document was rejected due to an unknown error. For more information, contact customer support UNABLE_TO_RETRIEVE_STATUS - Unable to retrieve status for the real name verification process. Retry, if this status persists, contact customer support ' - enum: - - APPROVED - - PENDING - - REJECTED_DOCUMENT_OUTDATED - - REJECTED_EXPIRED_BUSINESS_LICENSE - - REJECTED_EXPIRED_ORGANIZATION_CODE - - REJECTED_ILLEGIBLE_DOCUMENT_NAME - - REJECTED_ILLEGIBLE_IDENTIFICATION - - REJECTED_INCOMPLETE_IDENTIFICATION - - REJECTED_INCOMPLETE_REGISTRATION_LETTER - - REJECTED_INCONSISTENT_IDENTITY_CARD - - REJECTED_INCONSISTENT_ORGANIZATION_CODE - - REJECTED_INCONSISTENT_REGISTRANT_NAME - - REJECTED_INVALID_BUSINESS_LICENSE_OR_ORGANIZATION_CODE - - REJECTED_INVALID_DOCUMENT - - REJECTED_MISMATCH_BUSINESS_ID - - REJECTED_MISMATCH_BUSINESS_NAME - - REJECTED_MISMATCH_DOCUMENT_ID - - REJECTED_MISMATCH_DOCUMENT_NAME - - REJECTED_MISMATCH_DOCUMENT_TYPE - - REJECTED_MISMATCH_REGISTRANT_INFO - - REJECTED_MISMATCH_REGISTRANT_LOCALITY - - REJECTED_MISMATCH_REGISTRANT_NAME - - REJECTED_UNABLE_TO_OPEN - - REJECTED_UNABLE_TO_VERIFY - - REJECTED_UNKNOWN_ERROR - - UNABLE_TO_RETRIEVE_STATUS + description: The unique fine-grained application-level error code. + description: type: string + description: The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value. required: - - status - type: object - VerificationsDomain: - properties: - domainName: - $ref: '#/components/schemas/VerificationDomainName' - description: Verification of domain name against a prohibited list maintained by the government - realName: - $ref: '#/components/schemas/VerificationRealName' - description: Verification of identity by comparing registration data against government issued documents - type: object - domain: - properties: - id: - format: double - type: number - type: object + - issue + parameters: + xRequestId: + name: X-Request-Id + in: header + description: | + Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header. + required: false + schema: + $ref: '#/components/schemas/Uuid' + pageToken: + name: pageToken + in: query + description: | + Opaque cursor from the links[rel=next or rel=prev] href of the previous page. When present, the response begins immediately after the item that produced the token. Omit to start from the beginning of the collection. + required: false + schema: + type: string + example: eyJkb21haW4iOiJleGFtcGxlLmNvbSJ9 + pageTokenDirection: + name: pageTokenDirection + in: query + description: | + Optional token direction when `pageToken` is set; ignored otherwise. + required: false + schema: + type: string + enum: + - backward + - forward + domainNamePath: + name: domain_name + in: path + description: | + The domain name in punycode A-label form (e.g., example.com). For IDNs, use the punycode representation. + required: true + schema: + type: string + example: example.com + idempotencyKey: + name: Idempotency-Key + in: header + description: | + Client-generated unique key (UUID recommended). Retrying a mutating request with the same Idempotency-Key returns the original response without creating a duplicate side effect. Required on all execute endpoints. + required: true + schema: + type: string + minLength: 16 + maxLength: 64 + example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + operationId: + name: operationId + in: path + description: | + The server-assigned operation identifier returned in the 202 response of any async domain mutation. + required: true + schema: + $ref: '#/components/schemas/Uuid' + example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + responses: + '400': + description: Malformed request syntax, missing required field, or invalid field type. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '401': + description: Authentication credentials are missing or invalid. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '403': + description: Authenticated identity is not authorized to perform this operation. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '404': + description: The requested resource was not found. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '422': + description: | + Semantically invalid request — valid structure but violates a business rule, such as an ineligible contact, unsupported TLD, non-renewable domain status, or quote_mismatch (e.g. iscCode or acknowledgedFees that do not match the locked quote). + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '429': + description: Too many requests — rate limit exceeded. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + headers: + xRequestId: + description: Request correlation identifier echoed from the request or server-generated. + schema: + $ref: '#/components/schemas/Uuid' + location: + description: URL of the created or async resource. + schema: + type: string + format: uri + retryAfter: + description: | + Suggested number of seconds before the client should poll again. Present on 202 responses and non-terminal operation poll responses. + schema: + type: integer + example: 5 securitySchemes: - sso_key: - type: apiKey + bearerAuth: + type: http + scheme: bearer + description: 'GoDaddy Personal Access Token (PAT), passed as Authorization: Bearer .' x-stackQL-resources: domains: id: godaddy.domains.domains name: domains - title: Domains + title: Domains (Domains v1) methods: list: operation: @@ -7249,262 +5474,390 @@ components: response: mediaType: application/json openAPIDocKey: '200' - contacts_validate: - operation: - $ref: '#/paths/~1v1~1domains~1contacts~1validate/post' - response: - mediaType: application/json - openAPIDocKey: '200' - purchase: - operation: - $ref: '#/paths/~1v1~1domains~1purchase/post' - response: - mediaType: application/json - openAPIDocKey: '200' - validate: - operation: - $ref: '#/paths/~1v1~1domains~1purchase~1validate/post' - response: - mediaType: application/json - openAPIDocKey: '200' + config: + pagination: + requestToken: + key: marker + location: query + responseToken: + key: $[-1:].domain + location: body + request: + nativeCasing: camel cancel: operation: $ref: '#/paths/~1v1~1domains~1{domain}/delete' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel get: operation: $ref: '#/paths/~1v1~1domains~1{domain}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1domains~1{domain}/patch' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel update_contacts: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1domains~1{domain}~1contacts/patch' response: mediaType: application/json openAPIDocKey: '200' - cancel_privacy: + request: + nativeCasing: camel + renew: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1privacy/delete' + $ref: '#/paths/~1v1~1domains~1{domain}~1renew/post' response: mediaType: application/json openAPIDocKey: '200' - purchase_privacy: + request: + nativeCasing: camel + verify_registrant_email: operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1privacy~1purchase/post' + $ref: '#/paths/~1v1~1domains~1{domain}~1verifyRegistrantEmail/post' response: mediaType: application/json openAPIDocKey: '200' - renew: + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get' + - $ref: '#/components/x-stackQL-resources/domains/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/domains/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/cancel' + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + registrant_changes_v2: + id: godaddy.domains.registrant_changes_v2 + name: registrant_changes_v2 + title: Registrant Changes (Domains v2) + methods: + cancel: operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1renew/post' + $ref: '#/paths/~1domains~1{domain}~1changeOfRegistrant/delete' response: mediaType: application/json - openAPIDocKey: '200' - transfer_in: + openAPIDocKey: '202' + request: + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1transfer/post' + $ref: '#/paths/~1domains~1{domain}~1changeOfRegistrant/get' response: mediaType: application/json openAPIDocKey: '200' - verify_email: + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/registrant_changes_v2/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/registrant_changes_v2/methods/cancel' + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + domains_v2: + id: godaddy.domains.domains_v2 + name: domains_v2 + title: Domains (Domains v2) + methods: + update_nameservers: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1verifyRegistrantEmail/post' + $ref: '#/paths/~1domains~1{domain}~1nameServers/put' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1domains~1{domain}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/domains/methods/get' - - $ref: '#/components/x-stackQL-resources/domains/methods/list' + - $ref: '#/components/x-stackQL-resources/domains_v2/methods/get' insert: [] update: [] delete: [] - agreements: - id: godaddy.domains.agreements - name: agreements - title: Agreements + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + privacy_forwarding_v2: + id: godaddy.domains.privacy_forwarding_v2 + name: privacy_forwarding_v2 + title: Privacy Forwarding (Domains v2) methods: - get_agreement: + get: operation: - $ref: '#/paths/~1v1~1domains~1agreements/get' + $ref: '#/paths/~1domains~1{domain}~1privacy~1forwarding/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1{domain}~1privacy~1forwarding/patch' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/agreements/methods/get_agreement' + - $ref: '#/components/x-stackQL-resources/privacy_forwarding_v2/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/privacy_forwarding_v2/methods/update' delete: [] - available: - id: godaddy.domains.available - name: available - title: Available + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + actions_v2: + id: godaddy.domains.actions_v2 + name: actions_v2 + title: Actions (Domains v2) methods: - available: + list: operation: - $ref: '#/paths/~1v1~1domains~1available/get' + $ref: '#/paths/~1domains~1{domain}~1actions/get' response: mediaType: application/json openAPIDocKey: '200' - available_bulk: + request: + nativeCasing: camel + cancel: + operation: + $ref: '#/paths/~1domains~1{domain}~1actions~1{type}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1domains~1available/post' + $ref: '#/paths/~1domains~1{domain}~1actions~1{type}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/available/methods/available' + - $ref: '#/components/x-stackQL-resources/actions_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/actions_v2/methods/list' insert: [] update: [] - delete: [] - identity_documents: - id: godaddy.domains.identity_documents - name: identity_documents - title: Identity Documents + delete: + - $ref: '#/components/x-stackQL-resources/actions_v2/methods/cancel' + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + notifications_v2: + id: godaddy.domains.notifications_v2 + name: notifications_v2 + title: Notifications (Domains v2) methods: - list_identity_documents: + get: operation: - $ref: '#/paths/~1v1~1domains~1identityDocuments/get' + $ref: '#/paths/~1domains~1notifications/get' response: mediaType: application/json openAPIDocKey: '200' - create_identity_document: + request: + nativeCasing: camel + acknowledge: operation: - $ref: '#/paths/~1v1~1domains~1identityDocuments/post' + $ref: '#/paths/~1domains~1notifications~1{notificationId}~1acknowledge/post' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/identity_documents/methods/list_identity_documents' - insert: - - $ref: '#/components/x-stackQL-resources/identity_documents/methods/create_identity_document' + - $ref: '#/components/x-stackQL-resources/notifications_v2/methods/get' + insert: [] update: [] delete: [] - purchase_schema: - id: godaddy.domains.purchase_schema - name: purchase_schema - title: Purchase Schema + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + notification_opt_ins_v2: + id: godaddy.domains.notification_opt_ins_v2 + name: notification_opt_ins_v2 + title: Notification Opt Ins (Domains v2) methods: - schema: + list: operation: - $ref: '#/paths/~1v1~1domains~1purchase~1schema~1{tld}/get' + $ref: '#/paths/~1domains~1notifications~1optIn/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel + replace: + operation: + $ref: '#/paths/~1domains~1notifications~1optIn/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/purchase_schema/methods/schema' + - $ref: '#/components/x-stackQL-resources/notification_opt_ins_v2/methods/list' insert: [] update: [] delete: [] - suggest: - id: godaddy.domains.suggest - name: suggest - title: Suggest + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + notification_schemas_v2: + id: godaddy.domains.notification_schemas_v2 + name: notification_schemas_v2 + title: Notification Schemas (Domains v2) methods: - suggest: + get: operation: - $ref: '#/paths/~1v1~1domains~1suggest/get' + $ref: '#/paths/~1domains~1notifications~1schemas~1{type}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/suggest/methods/suggest' + - $ref: '#/components/x-stackQL-resources/notification_schemas_v2/methods/get' insert: [] update: [] delete: [] - tlds: - id: godaddy.domains.tlds - name: tlds - title: Tlds + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + api_usage_v2: + id: godaddy.domains.api_usage_v2 + name: api_usage_v2 + title: Api Usage (Domains v2) methods: - tlds: + get: operation: - $ref: '#/paths/~1v1~1domains~1tlds/get' + $ref: '#/paths/~1v2~1domains~1usage~1{yyyymm}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tlds/methods/tlds' + - $ref: '#/components/x-stackQL-resources/api_usage_v2/methods/get' insert: [] update: [] delete: [] - records: - id: godaddy.domains.records - name: records - title: Records + replace: [] + description: GoDaddy Domains v2 API (account-level, not customer-scoped). Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + domains_v3: + id: godaddy.domains.domains_v3 + name: domains_v3 + title: Domains (Domains v3) methods: - record_add: - operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1records/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - record_replace: + list: operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1records/put' + $ref: '#/paths/~1v3~1domains~1domain-names/get' response: mediaType: application/json openAPIDocKey: '200' - record_replace_type: + objectKey: $.items + config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: $.links[?(@.rel=="next")].href + location: body + request: + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}/put' + $ref: '#/paths/~1v3~1domains~1domain-names~1{domain_name}/get' response: mediaType: application/json openAPIDocKey: '200' - record_get: + request: + nativeCasing: camel + update_nameservers: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}/get' + $ref: '#/paths/~1v3~1domains~1domain-names~1{domain_name}~1nameservers/put' response: mediaType: application/json - openAPIDocKey: '200' - record_replace_type_name: - operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1records~1{type}~1{name}/put' - response: + openAPIDocKey: '202' + request: mediaType: application/json - openAPIDocKey: '200' + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .nameServers) "string" }}{{ .nameServers }}{{ else }}{{ toJson .nameServers }}{{ end }}' + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/records/methods/record_get' + - $ref: '#/components/x-stackQL-resources/domains_v3/methods/get' + - $ref: '#/components/x-stackQL-resources/domains_v3/methods/list' insert: [] update: [] delete: [] - identity_documents_verifications: - id: godaddy.domains.identity_documents_verifications - name: identity_documents_verifications - title: Identity Documents Verifications + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. + operations_v3: + id: godaddy.domains.operations_v3 + name: operations_v3 + title: Operations (Domains v3) methods: - get_identity_document_verification: - operation: - $ref: '#/paths/~1v1~1domains~1identityDocuments~1{identity_document_id}~1verifications/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_verification: + get: operation: - $ref: '#/paths/~1v1~1domains~1identityDocuments~1{identity_document_id}~1verifications/post' + $ref: '#/paths/~1v3~1domains~1operations~1{operationId}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/identity_documents_verifications/methods/get_identity_document_verification' - insert: - - $ref: '#/components/x-stackQL-resources/identity_documents_verifications/methods/create_verification' + - $ref: '#/components/x-stackQL-resources/operations_v3/methods/get' + insert: [] update: [] delete: [] + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. diff --git a/providers/src/godaddy/v00.00.00000/services/orders.yaml b/providers/src/godaddy/v00.00.00000/services/orders.yaml deleted file mode 100644 index 1cda7988..00000000 --- a/providers/src/godaddy/v00.00.00000/services/orders.yaml +++ /dev/null @@ -1,1156 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: 0.0.4 -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/orders: - get: - parameters: - - description: Start of range indicating what time-frame should be returned. Inclusive - in: query - name: periodStart - required: false - schema: - type: string - - description: End of range indicating what time-frame should be returned. Inclusive - in: query - name: periodEnd - required: false - schema: - type: string - - description: Domain name to use as the filter of results - in: query - name: domain - required: false - schema: - type: string - - description: Product group id to use as the filter of results - in: query - name: productGroupId - required: false - schema: - type: integer - - description: Payment profile id to use as the filter of results - in: query - name: paymentProfileId - required: false - schema: - type: integer - - description: Parent order id to use as the filter of results - in: query - name: parentOrderId - required: false - schema: - type: string - - description: Number of results to skip for pagination - in: query - name: offset - required: false - schema: - default: 0 - type: integer - - description: Maximum number of items to return - in: query - name: limit - required: false - schema: - default: 25 - maximum: 10000 - minimum: 1 - type: integer - - description: Property name that will be used to sort results. '-' indicates descending - in: query - name: sort - required: false - schema: - default: '-createdAt' - enum: - - createdAt - - '-createdAt' - - orderId - - '-orderId' - - pricing.total - - '-pricing.total' - type: string - - description: 'Shopper ID to be operated on, if different from JWTReseller subaccounts are not supported' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Unique identifier of the Market in which the request is happening - in: header - name: X-Market-Id - required: false - schema: - default: en-US - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/OrderList' - application/json: - schema: - $ref: '#/components/schemas/OrderList' - application/xml: - schema: - $ref: '#/components/schemas/OrderList' - text/javascript: - schema: - $ref: '#/components/schemas/OrderList' - text/xml: - schema: - $ref: '#/components/schemas/OrderList' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - description: API ResellersThis endpoint does not support subaccounts and therefore API Resellers should not supply an X-Shopper-Id header - operationId: list - summary: Retrieve a list of orders for the authenticated shopper. Only one filter may be used at a time - '/v1/orders/{order_id}': - get: - parameters: - - description: Order id whose details are to be retrieved - in: path - name: order_id - required: true - schema: - type: string - - description: 'Shopper ID to be operated on, if different from JWTReseller subaccounts are not supported' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Unique identifier of the Market in which the request is happening - in: header - name: X-Market-Id - required: false - schema: - default: en-US - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Order' - application/json: - schema: - $ref: '#/components/schemas/Order' - application/xml: - schema: - $ref: '#/components/schemas/Order' - text/javascript: - schema: - $ref: '#/components/schemas/Order' - text/xml: - schema: - $ref: '#/components/schemas/Order' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - description: API ResellersThis endpoint does not support subaccounts and therefore API Resellers should not supply an X-Shopper-Id header - operationId: get - summary: Retrieve details for specified order -components: - schemas: - Address: - properties: - address1: - format: street-address - type: string - address2: - format: street-address2 - type: string - city: - format: city-name - type: string - country: - default: US - description: |- - Two-letter ISO country code to be used as a hint for target region - NOTE: These are sample values, there are many - more - enum: - - AC - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AX - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BM - - BN - - BO - - BQ - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CV - - CW - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KR - - KV - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MG - - MH - - MK - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL - - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - ST - - SV - - SX - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TP - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW - format: iso-country-code - type: string - postalCode: - description: Postal or zip code - format: postal-code - type: string - state: - description: State or province or territory - format: state-province-territory - type: string - required: - - address1 - - city - - state - - postalCode - - country - type: object - BillTo: - properties: - contact: - $ref: '#/components/schemas/Contact' - description: Billing contact - taxId: - description: Tax id used for calculating the tax the customer is required to pay - type: string - required: - - contact - type: object - Contact: - properties: - addressMailing: - $ref: '#/components/schemas/Address' - email: - format: email - type: string - fax: - format: phone - type: string - jobTitle: - type: string - nameFirst: - format: person-name - type: string - nameLast: - format: person-name - type: string - nameMiddle: - type: string - organization: - format: organization-name - type: string - phone: - format: phone - type: string - required: - - nameFirst - - nameLast - - email - - phone - - addressMailing - type: object - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path - type: string - pathRelated: - description: 'JSONPath referring to a field containing an error, which is referenced by `path`' - format: json-path - type: string - required: - - path - - code - type: object - ErrorLimit: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - required: - - retryAfterSec - - code - type: object - LineItem: - properties: - domains: - description: A collection of domain names purchased if the current product is domain - items: - type: string - type: array - label: - description: Human readable description of the current product - type: string - period: - default: 1 - format: double - type: number - periodUnit: - default: MONTH - description: The unit of time that periodCount is measured in - enum: - - MONTH - - QUARTER - - SEMI_ANNUAL - - YEAR - - ONE_TIME - type: string - pfid: - description: Unique identifier of the current product - type: integer - pricing: - $ref: '#/components/schemas/LineItemPricing' - description: Pricing information of the current line item - quantity: - description: Number of the current product included in the specified order - format: integer-positive - type: integer - taxCollector: - $ref: '#/components/schemas/LineItemTaxCollector' - description: Company that collects taxes on the sale of the product - required: - - label - - quantity - - pricing - type: object - LineItemPricing: - properties: - discount: - description: Discount off of sale price for given `quantity` and `period` `discount` = `sale` - `subtotal` - format: currency-micro-unit - type: integer - fees: - $ref: '#/components/schemas/OrderFee' - description: Fees for given `quantity` and `period` - list: - description: List price for given `quantity` and `period` - format: currency-micro-unit - type: integer - sale: - description: Actual price for the current product - format: currency-micro-unit - type: integer - savings: - description: Savings off of list price for given `quantity` and `period` `savings` = `list` - `subtotal` - format: currency-micro-unit - type: integer - subtotal: - description: Price with any discounts and without taxes or fees for given `quantity` and `period` - format: currency-micro-unit - type: integer - taxes: - description: Taxes for given `quantity` and `period` - format: currency-micro-unit - type: integer - unit: - description: Pricing for a single unit of the given item - type: object - required: - - subtotal - - list - - savings - - sale - - discount - - taxes - - fees - - unit - type: object - LineItemSummary: - properties: - label: - description: Product label of the current line item - type: string - required: - - label - type: object - LineItemTaxCollector: - properties: - taxCollectorId: - description: Unique identifier for the company - format: integer-positive - type: integer - required: - - taxCollectorId - type: object - LineItemUnitPricing: - properties: - discount: - description: Discount without consideration of `quantity` and `period` - format: currency-micro-unit - type: integer - fees: - $ref: '#/components/schemas/OrderFee' - description: Fees without consideration of `quantity` and `period` - list: - description: List price without consideration of `quantity` and `period` - format: currency-micro-unit - type: integer - sale: - description: Sale price without consideration of `quantity` and `period` - format: currency-micro-unit - type: integer - savings: - description: Savings without consideration of `quantity` and `period` - format: currency-micro-unit - type: integer - taxes: - description: Taxes without consideration of `quantity` and `period` - format: currency-micro-unit - type: integer - required: - - discount - - fees - - list - - sale - - savings - - taxes - type: object - Order: - properties: - billTo: - $ref: '#/components/schemas/BillTo' - description: The billing contact information that was used at the time of purchase - createdAt: - description: Date and time when the current order is created on - format: iso-datetime - type: string - currency: - description: Currency in which the order has been placed - format: iso-currency-code - type: string - items: - items: - $ref: '#/components/schemas/LineItem' - type: array - orderId: - description: Unique identifier of current order - type: string - parentOrderId: - description: |- - Unique identifier of the parent order. All refund/chargeback orders are tied to the original order. - The orginal order's `orderId` is the `parentOrderId` of refund/chargeback orders - type: string - payments: - items: - $ref: '#/components/schemas/Payment' - type: array - pricing: - $ref: '#/components/schemas/OrderPricing' - description: Pricing information for current order - required: - - orderId - - currency - - createdAt - - pricing - - billTo - - payments - - items - type: object - OrderFee: - properties: - icann: - description: Domain registration transaction fee charged by ICANN - format: currency-micro-unit - type: integer - total: - description: Sum of all fees - format: currency-micro-unit - type: integer - required: - - total - type: object - OrderList: - properties: - orders: - description: A collection of orders - items: - $ref: '#/components/schemas/OrderSummary' - type: array - pagination: - $ref: '#/components/schemas/Pagination' - description: Pagination information - required: - - orders - - pagination - type: object - OrderPricing: - properties: - discount: - description: Discount from promotional pricing - format: currency-micro-unit - type: integer - fees: - $ref: '#/components/schemas/OrderFee' - description: Fees for the entire cart - id: - format: double - type: number - list: - description: Sum of list prices for the entire cart - format: currency-micro-unit - type: integer - savings: - description: Savings off of list price `savings` = `list` - `subtotal` - format: currency-micro-unit - type: integer - subtotal: - description: Price with `discount` and without taxes or fees - format: currency-micro-unit - type: integer - taxes: - description: Taxes for the entire cart - format: currency-micro-unit - type: integer - total: - description: Price the customer pays `total` = `subtotal` + `taxes` + `fees.total` - format: currency-micro-unit - type: integer - required: - - total - - subtotal - - list - - savings - - discount - - taxes - - fees - type: object - OrderSummary: - properties: - createdAt: - description: Date and time when the current order was created - format: iso-datetime - type: string - currency: - description: Currency in which the order was placed - format: iso-currency-code - type: string - items: - description: Sets of two or more line items in current order - items: - $ref: '#/components/schemas/LineItemSummary' - type: array - orderId: - description: Unique identifier of the current order - type: integer - parentOrderId: - description: |- - Unique identifier of the parent order. All refund/chargeback orders are tied to the original order. - The orginal order's `orderId` is the `parentOrderId` of refund/chargeback orders - type: string - pricing: - $ref: '#/components/schemas/OrderSummaryPricing' - description: Pricing information of the current order - required: - - orderId - - currency - - createdAt - - pricing - - items - type: object - OrderSummaryPricing: - properties: - total: - description: Total amount charged for the current order. Negative for Refund and Chargeback - format: currency-micro-unit - type: string - required: - - total - type: object - Pagination: - properties: - first: - description: URI to access the first page - type: string - last: - description: URI to access the last page - type: string - next: - description: URI to access the next page - type: string - previous: - description: URI to access the previous page - type: string - total: - description: Number of records available - type: integer - type: object - Payment: - properties: - amount: - description: Amount paid by the current payment - format: currency-micro-unit - type: integer - category: - description: The category of payment method used at the time of purchase. Most common values are listed in the enum. - enum: - - CREDIT_CARD - - PAYPAL - - ACH - - GIFT_CARD - - IN_STORE_CREDIT - - PREPAID - type: string - paymentProfileId: - description: Unique identifier of the payment profile used by current payment - type: string - subcategory: - description: 'The subcategory of payment method used at the time of purchase. This field is only set for certain payment categories, such as ACH and CREDIT_CARD. Most common values are listed in the enum.' - enum: - - CHECKING_PERSONAL - - CHECKING_BUSINESS - - VISA - - MASTER_CARD - - AMEX - - JCB - - UNIONPAY - type: string - required: - - paymentProfileId - - amount - - category - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - orders: - id: godaddy.orders.orders - name: orders - title: Orders - methods: - list: - operation: - $ref: '#/paths/~1v1~1orders/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orders - _list: - operation: - $ref: '#/paths/~1v1~1orders/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get: - operation: - $ref: '#/paths/~1v1~1orders~1{order_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/orders/methods/get' - - $ref: '#/components/x-stackQL-resources/orders/methods/list' - insert: [] - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/registration.yaml b/providers/src/godaddy/v00.00.00000/services/registration.yaml new file mode 100644 index 00000000..3dabf55e --- /dev/null +++ b/providers/src/godaddy/v00.00.00000/services/registration.yaml @@ -0,0 +1,7093 @@ +openapi: 3.1.1 +info: + title: GoDaddy Registration + description: 'Finding and registering domains: availability checks, suggestions, TLDs, legal agreements, purchase schemas and validation (Domains v1), asynchronous registration (Domains v2), and the quote-then-register model with registration status (Domains v3).' + version: v00.00.00000 +servers: + - url: https://api.godaddy.com + description: GoDaddy production API +security: + - bearerAuth: [] +tags: [] +paths: + /v1/domains/agreements: + get: + tags: + - Register and Renew Domains + parameters: + - description: Unique identifier of the Market used to retrieve/translate Legal Agreements + in: header + name: X-Market-Id + required: false + schema: + type: string + format: bcp-47 + default: en-US + - description: list of TLDs whose legal agreements are to be retrieved + in: query + name: tlds + required: true + style: form + explode: false + schema: + type: array + items: + type: string + - description: Whether or not privacy has been requested + in: query + name: privacy + required: true + schema: + type: boolean + - description: Whether or not domain tranfer has been requested + in: query + name: forTransfer + required: false + schema: + type: boolean + responses: + '200': + description: Request was successful + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/LegalAgreement' + application/javascript: + schema: + items: + $ref: '#/components/schemas/LegalAgreement' + type: array + application/xml: + schema: + items: + $ref: '#/components/schemas/LegalAgreement' + type: array + text/javascript: + schema: + items: + $ref: '#/components/schemas/LegalAgreement' + type: array + text/xml: + schema: + items: + $ref: '#/components/schemas/LegalAgreement' + type: array + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: getAgreement + summary: Retrieve the legal agreement(s) required to purchase the specified TLD and add-ons + description: Returns the TLD-specific legal agreements that must be accepted before purchase or transfer. The agreementKeys from this response are required in the consent object. + /v1/domains/available: + get: + tags: + - Find Domains + parameters: + - description: Domain name whose availability is to be checked + in: query + name: domain + required: true + schema: + type: string + - description: Optimize for time ('FAST') or accuracy ('FULL') + in: query + name: checkType + required: false + schema: + type: string + enum: + - FAST + - FULL + - fast + - full + default: FAST + - description: Whether or not to include domains available for transfer. If set to True, checkType is ignored + in: query + name: forTransfer + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/DomainAvailableResponse' + application/javascript: + schema: + $ref: '#/components/schemas/DomainAvailableResponse' + application/xml: + schema: + $ref: '#/components/schemas/DomainAvailableResponse' + text/javascript: + schema: + $ref: '#/components/schemas/DomainAvailableResponse' + text/xml: + schema: + $ref: '#/components/schemas/DomainAvailableResponse' + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - Cannot convert domain label error + - Domain is missing IDN script + - Domain segment ends with dash + - Domain starts with dash + - Domain uses unsupported IDN script + - FQDN fails generic validity regex + - Invalid character(s) error + - Invalid tld error + - Non-IDN domain name must not have dashes at the third and fourth position + - Reserved name error + - domain must be specified + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: available + summary: Determine whether or not the specified domain is available for purchase + description: Checks whether a single domain is available to register and returns the current price in currency-micro-unit format. The definitive flag indicates whether the result came from a live registry query. + post: + tags: + - Find Domains + parameters: + - description: Optimize for time ('FAST') or accuracy ('FULL') + in: query + name: checkType + required: false + schema: + type: string + enum: + - FAST + - FULL + - fast + - full + default: FAST + requestBody: + content: + application/json: + schema: + type: object + required: + - domains + properties: + domains: + items: + type: string + maximum: 500 + type: array + description: Domain names to check (the request body array). + application/xml: + schema: + type: object + required: + - domains + properties: + domains: + items: + type: string + maximum: 500 + type: array + description: Domain names to check (the request body array). + text/xml: + schema: + type: object + required: + - domains + properties: + domains: + items: + type: string + maximum: 500 + type: array + description: Domain names to check (the request body array). + description: Domain names for which to check availability + required: true + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/DomainAvailableBulk' + application/javascript: + schema: + $ref: '#/components/schemas/DomainAvailableBulk' + application/xml: + schema: + $ref: '#/components/schemas/DomainAvailableBulk' + text/javascript: + schema: + $ref: '#/components/schemas/DomainAvailableBulk' + text/xml: + schema: + $ref: '#/components/schemas/DomainAvailableBulk' + '203': + description: Request was partially successful + content: + application/json: + schema: + $ref: '#/components/schemas/DomainAvailableBulkMixed' + application/javascript: + schema: + $ref: '#/components/schemas/DomainAvailableBulkMixed' + application/xml: + schema: + $ref: '#/components/schemas/DomainAvailableBulkMixed' + text/javascript: + schema: + $ref: '#/components/schemas/DomainAvailableBulkMixed' + text/xml: + schema: + $ref: '#/components/schemas/DomainAvailableBulkMixed' + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - Cannot convert domain label error + - Domain is missing IDN script + - Domain segment ends with dash + - Domain starts with dash + - Domain uses unsupported IDN script + - FQDN fails generic validity regex + - Invalid character(s) error + - Invalid tld error + - Non-IDN domain name must not have dashes at the third and fourth position + - Reserved name error + - domain must be specified + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: availableBulk + summary: Determine whether or not the specified domains are available for purchase + description: Checks availability for multiple domains in a single request. Returns an array of availability and pricing results, one per domain queried. + /v1/domains/contacts/validate: + post: + tags: + - Manage Domain Settings + parameters: + - description: MarketId in which the request is being made, and for which responses should be localized + in: query + name: marketId + required: false + schema: + type: string + format: bcp-47 + default: en-US + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainsContactsBulk' + application/xml: + schema: + $ref: '#/components/schemas/DomainsContactsBulk' + text/xml: + schema: + $ref: '#/components/schemas/DomainsContactsBulk' + description: An instance document expected for domains contacts validation + required: true + responses: + '200': + description: No response was specified + '204': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorDomainContactsValidate' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorDomainContactsValidate' + application/xml: + schema: + $ref: '#/components/schemas/ErrorDomainContactsValidate' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorDomainContactsValidate' + text/xml: + schema: + $ref: '#/components/schemas/ErrorDomainContactsValidate' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + description: All contacts specified in request will be validated against all domains specified in "domains". As an alternative, you can also pass in tlds, with the exception of `uk`, which requires full domain names + operationId: ContactsValidate + summary: Validate the request body using the Domain Contact Validation Schema for specified domains. + /v1/domains/purchase: + post: + tags: + - Register and Renew Domains + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + requestBody: + $ref: '#/components/requestBodies/DomainPurchase' + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + application/javascript: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + application/xml: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + text/javascript: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + text/xml: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - domain must be specified + - Based on restrictions declared in JSON schema returned by `./schema/{tld}` + - Cannot convert domain label error + - Domain is missing IDN script + - Domain segment ends with dash + - Domain starts with dash + - Domain uses unsupported IDN script + - FQDN fails generic validity regex + - Invalid character(s) error + - Invalid tld error + - Non-IDN domain name must not have dashes at the third and fourth position + - Reserved name error + - `body` must be specified + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: purchase + summary: Purchase and register the specified Domain + description: Registers the specified domain. Requires a consent object with agreement keys from GET /v1/domains/agreements. Charges the account's billing method. + /v1/domains/purchase/schema/{tld}: + get: + tags: + - Register and Renew Domains + parameters: + - description: The Top-Level Domain whose schema should be retrieved + in: path + name: tld + required: true + schema: + type: string + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/JsonSchema' + application/javascript: + schema: + $ref: '#/components/schemas/JsonSchema' + application/xml: + schema: + $ref: '#/components/schemas/JsonSchema' + text/javascript: + schema: + $ref: '#/components/schemas/JsonSchema' + text/xml: + schema: + $ref: '#/components/schemas/JsonSchema' + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`tld` must be specified' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: schema + summary: Retrieve the schema to be submitted when registering a Domain for the specified TLD + description: Returns the JSON schema for the domain purchase request body for the specified TLD. Fetch before purchasing to identify required fields and TLD-specific constraints. + /v1/domains/purchase/validate: + post: + tags: + - Register and Renew Domains + requestBody: + $ref: '#/components/requestBodies/DomainPurchase' + responses: + '200': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Based on restrictions declared in JSON schema returned by `./schema/{tld}` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: validate + summary: Validate the request body using the Domain Purchase Schema for the specified TLD + description: Validates a purchase request body against the TLD schema with no side effects and no charge. Returns 200 on success. + /v1/domains/suggest: + get: + tags: + - Find Domains + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain name or set of keywords for which alternative domain names will be suggested + in: query + name: query + required: false + schema: + type: string + - description: |- + Two-letter ISO country code to be used as a hint for target region + NOTE: These are sample values, there are many + more + in: query + name: country + required: false + schema: + type: string + format: iso-country-code + enum: + - AC + - AD + - AE + - AF + - AG + - AI + - AL + - AM + - AO + - AQ + - AR + - AS + - AT + - AU + - AW + - AX + - AZ + - BA + - BB + - BD + - BE + - BF + - BG + - BH + - BI + - BJ + - BM + - BN + - BO + - BQ + - BR + - BS + - BT + - BV + - BW + - BY + - BZ + - CA + - CC + - CD + - CF + - CG + - CH + - CI + - CK + - CL + - CM + - CN + - CO + - CR + - CV + - CW + - CX + - CY + - CZ + - DE + - DJ + - DK + - DM + - DO + - DZ + - EC + - EE + - EG + - EH + - ER + - ES + - ET + - FI + - FJ + - FK + - FM + - FO + - FR + - GA + - GB + - GD + - GE + - GF + - GG + - GH + - GI + - GL + - GM + - GN + - GP + - GQ + - GR + - GS + - GT + - GU + - GW + - GY + - HK + - HM + - HN + - HR + - HT + - HU + - ID + - IE + - IL + - IM + - IN + - IO + - IQ + - IS + - IT + - JE + - JM + - JO + - JP + - KE + - KG + - KH + - KI + - KM + - KN + - KR + - KV + - KW + - KY + - KZ + - LA + - LB + - LC + - LI + - LK + - LR + - LS + - LT + - LU + - LV + - LY + - MA + - MC + - MD + - ME + - MG + - MH + - MK + - ML + - MM + - MN + - MO + - MP + - MQ + - MR + - MS + - MT + - MU + - MV + - MW + - MX + - MY + - MZ + - NA + - NC + - NE + - NF + - NG + - NI + - NL + - 'NO' + - NP + - NR + - NU + - NZ + - OM + - PA + - PE + - PF + - PG + - PH + - PK + - PL + - PM + - PN + - PR + - PS + - PT + - PW + - PY + - QA + - RE + - RO + - RS + - RU + - RW + - SA + - SB + - SC + - SE + - SG + - SH + - SI + - SJ + - SK + - SL + - SM + - SN + - SO + - SR + - ST + - SV + - SX + - SZ + - TC + - TD + - TF + - TG + - TH + - TJ + - TK + - TL + - TM + - TN + - TO + - TP + - TR + - TT + - TV + - TW + - TZ + - UA + - UG + - UM + - US + - UY + - UZ + - VA + - VC + - VE + - VG + - VI + - VN + - VU + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + - description: Name of city to be used as a hint for target region + in: query + name: city + required: false + schema: + type: string + format: city-name + - description: |- + Sources to be queried + - **CC_TLD** — Varies the TLD using Country Codes + - **EXTENSION** — Varies the TLD + - **KEYWORD_SPIN** — Identifies keywords and then rotates each one + - **PREMIUM** — Includes variations with premium prices + in: query + name: sources + required: false + style: form + explode: false + schema: + type: array + items: + enum: + - CC_TLD + - EXTENSION + - KEYWORD_SPIN + - PREMIUM + - cctld + - extension + - keywordspin + - premium + type: string + - description: |- + Top-level domains to be included in suggestions + NOTE: These are sample values, there are many + more + in: query + name: tlds + required: false + style: form + explode: false + schema: + type: array + items: + type: string + - description: Maximum length of second-level domain + in: query + name: lengthMax + required: false + schema: + type: integer + - description: Minimum length of second-level domain + in: query + name: lengthMin + required: false + schema: + type: integer + - description: Maximum number of suggestions to return + in: query + name: limit + required: false + schema: + type: integer + - description: |- + Maximum amount of time, in milliseconds, to wait for responses + If elapses, return the results compiled up to that point + in: query + name: waitMs + required: false + schema: + type: integer + format: integer-positive + default: 1000 + responses: + '200': + description: Request was successful + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DomainSuggestion' + application/javascript: + schema: + items: + $ref: '#/components/schemas/DomainSuggestion' + type: array + application/xml: + schema: + items: + $ref: '#/components/schemas/DomainSuggestion' + type: array + text/javascript: + schema: + items: + $ref: '#/components/schemas/DomainSuggestion' + type: array + text/xml: + schema: + items: + $ref: '#/components/schemas/DomainSuggestion' + type: array + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`query` must be specified' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '504': + description: Gateway timeout + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: suggest + summary: Suggest alternate Domain names based on a seed Domain, a set of keywords, or the shopper's purchase history + description: Returns domain name suggestions based on a seed domain, keywords, or purchase history. Useful for presenting alternatives when a desired domain is unavailable. + /v1/domains/tlds: + get: + tags: + - Register and Renew Domains + responses: + '200': + description: Request was successful + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/TldSummary' + application/javascript: + schema: + items: + $ref: '#/components/schemas/TldSummary' + type: array + application/xml: + schema: + items: + $ref: '#/components/schemas/TldSummary' + type: array + text/javascript: + schema: + items: + $ref: '#/components/schemas/TldSummary' + type: array + text/xml: + schema: + items: + $ref: '#/components/schemas/TldSummary' + type: array + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: tlds + summary: Retrieves a list of TLDs supported and enabled for sale + description: Returns all TLDs currently available for registration, including pricing and any eligibility requirements. + /domains/register: + post: + tags: + - Register Domains + summary: Purchase and register the specified Domain + description: Registers the specified domain. Requires a consent object with TLD agreement keys from the schema endpoint. Charges the account's billing method. Returns 202 - poll GET .../actions/REGISTER until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + requestBody: + $ref: '#/components/requestBodies/DomainPurchaseV2' + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/REGISTER to poll status + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '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' + '409': + description: There is already a similar action processing + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Based on restrictions declared in JSON schema returned by `./schema/{tld}` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsRegister + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/register/schema/{tld}: + get: + tags: + - Register Domains + summary: Retrieve the schema to be submitted when registering a Domain for the specified TLD + description: Returns the JSON schema for the registration request body for the specified TLD. Fetch before registering to identify required fields and TLD-specific constraints. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - name: tld + required: true + in: path + description: The Top-Level Domain whose schema should be retrieved + schema: + type: string + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/JsonSchema' + '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: The tld does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: '`tld` must be specified' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: getDomainsRegisterSchemaByTld + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/register/validate: + post: + tags: + - Register Domains + summary: Validate the request body using the Domain Registration Schema for the specified TLD + description: Validates the registration request body against the TLD schema with no side effects and no charge. Returns 204 on success. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + requestBody: + $ref: '#/components/requestBodies/DomainPurchaseV2' + responses: + '204': + description: Request was successful + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '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: The customer does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Based on restrictions declared in JSON schema returned by `./schema/{tld}` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsRegisterValidate + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /v3/domains/suggestions: + get: + operationId: suggestDomains + tags: + - Discovery + summary: Suggest available domains for a query + description: | + Returns available domain name suggestions for a natural-language query + or keyword set. All results are available (available-only contract). + Prices are indicative; the authoritative price and availability check + is at quote time. + parameters: + - $ref: '#/components/parameters/xRequestId' + - name: query + in: query + required: false + description: | + Natural-language query or keywords describing the desired domain, e.g. "sunrise bakery". Used to generate creative and keyword-spin suggestions. + schema: + type: string + maxLength: 100 + example: sunrise bakery + - name: tlds + in: query + required: false + description: Top-level domains to be included in suggestions. + style: form + explode: false + schema: + type: array + items: + type: string + example: + - com + - net + - shop + - name: lengthMax + in: query + required: false + description: Maximum length of second-level domain. + schema: + type: integer + minimum: 1 + - name: lengthMin + in: query + required: false + description: Minimum length of second-level domain. + schema: + type: integer + minimum: 1 + - name: pageSize + in: query + required: false + description: | + Maximum number of suggestions in the response. Defaults to 10 when omitted. + schema: + type: integer + minimum: 1 + maximum: 50 + default: 10 + - name: sources + in: query + required: false + description: | + Suggestion source strategies to activate. + style: form + explode: false + schema: + type: array + items: + $ref: '#/components/schemas/SuggestionSource' + example: + - EXTENSION + - KEYWORD_SPIN + security: + - bearerAuth: [] + responses: + '200': + description: Suggested available domains sorted by relevance. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + type: object + required: + - items + properties: + items: + type: array + description: | + Available domain suggestions, sorted by relevance. All items are available by contract. + items: + $ref: '#/components/schemas/Suggestion' + examples: + suggestions: + summary: Two suggestions with per-term pricing + value: + items: + - domain: sunrisebakery.com + inventory: REGISTRY + prices: + - term: YEAR + period: 1 + price: + currencyCode: USD + value: 1199 + renewalPrice: + currencyCode: USD + value: 2299 + - term: YEAR + period: 2 + price: + currencyCode: USD + value: 3098 + renewalPrice: + currencyCode: USD + value: 4598 + firstTermPrice: + currencyCode: USD + value: 799 + recommended: true + - domain: sunrisebakery.shop + inventory: REGISTRY + prices: + - term: YEAR + period: 1 + price: + currencyCode: USD + value: 299 + renewalPrice: + currencyCode: USD + value: 599 + - term: YEAR + period: 2 + price: + currencyCode: USD + value: 798 + renewalPrice: + currencyCode: USD + value: 1198 + firstTermPrice: + currencyCode: USD + value: 199 + recommended: true + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '429': + $ref: '#/components/responses/429' + /v3/domains/check-availability: + get: + operationId: getDomainAvailability + tags: + - Discovery + summary: Check availability of a single domain + description: | + Returns an indicative availability result for one domain, including + per-term pricing when available. Availability is best-effort; the + authoritative check is performed at quote time. This operation does + not persist the check — there is no check identity or poll URL. + + A domain that cannot be checked is still returned as a `200` with an + `error` object on the body; request-level failures use the `4xx` responses. + parameters: + - $ref: '#/components/parameters/xRequestId' + - name: domain + in: query + required: true + description: The domain name to check, in punycode A-label form for IDNs. + schema: + type: string + example: example.com + - name: optimizeFor + in: query + required: false + description: | + Optional. When omitted, defaults to SPEED. Availability is always re-verified authoritatively at quote time regardless of this setting. + schema: + default: SPEED + title: Optimization Target + description: | + How an availability check should prioritize speed vs. authoritative accuracy. SPEED — use cached zone data for a fast response (may be slightly stale). ACCURACY — perform a live registry check for authoritative availability (higher latency). + type: string + enum: + - SPEED + - ACCURACY + example: SPEED + - $ref: '#/components/parameters/iscCode' + security: + - bearerAuth: [] + responses: + '200': + description: Availability result for the requested domain. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Availability' + examples: + available: + summary: Available domain with per-term pricing + value: + domain: coffee24x7x365.com + available: true + definitive: false + inventory: REGISTRY + prices: + - term: YEAR + period: 1 + price: + currencyCode: USD + value: 1199 + renewalPrice: + currencyCode: USD + value: 2299 + - term: YEAR + period: 2 + price: + currencyCode: USD + value: 3098 + renewalPrice: + currencyCode: USD + value: 4598 + firstTermPrice: + currencyCode: USD + value: 799 + - term: YEAR + period: 3 + price: + currencyCode: USD + value: 4599 + renewalPrice: + currencyCode: USD + value: 6897 + firstTermPrice: + currencyCode: USD + value: 499 + recommended: true + - term: YEAR + period: 5 + price: + currencyCode: USD + value: 9197 + renewalPrice: + currencyCode: USD + value: 11495 + firstTermPrice: + currencyCode: USD + value: 100 + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + post: + operationId: checkAvailability + tags: + - Discovery + summary: Check availability of one or more specific domains + description: | + Batch controller for domain availability checking. Accepts 1–25 domain + names alongside optional check criteria (optimization mode, ISC pricing + code). Returns one Availability result per requested domain in input + order inside `{ items: [...] }`. Domains that cannot be checked carry + an `error` object on that item. + + For a single domain, GET /check-availability (getDomainAvailability) + offers the same check semantics and Availability result without a + request body; the response is the lone item unwrapped. + + Availability is best-effort indicative; the authoritative check is + always performed at quote time. This controller does not persist the + check — there is no check identity or poll URL. + parameters: + - $ref: '#/components/parameters/xRequestId' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/AvailabilityCheckCriteria' + examples: + defaultBehavior: + summary: Omit optimizeFor — defaults to SPEED + value: + domains: + - example.com + - example.net + speedCheck: + summary: Check two domains using cached data + value: + domains: + - example.com + - example.net + optimizeFor: SPEED + accuracyCheck: + summary: Live registry check with ISC pricing context + value: + domains: + - example.com + optimizeFor: ACCURACY + iscCode: ISC_PARTNER_001 + security: + - bearerAuth: [] + responses: + '200': + description: | + Per-domain availability results in request order. Uncheckable items carry an error object. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + type: object + required: + - items + properties: + items: + type: array + description: | + Availability results in the same order as the domains array in the request body. + items: + $ref: '#/components/schemas/Availability' + examples: + mixedResults: + summary: One available domain and one uncheckable domain + value: + items: + - domain: example.com + available: true + definitive: false + inventory: REGISTRY + prices: + - term: YEAR + period: 1 + price: + currencyCode: USD + value: 1999 + renewalPrice: + currencyCode: USD + value: 1999 + - term: YEAR + period: 2 + price: + currencyCode: USD + value: 3098 + renewalPrice: + currencyCode: USD + value: 4598 + firstTermPrice: + currencyCode: USD + value: 799 + - term: YEAR + period: 3 + price: + currencyCode: USD + value: 4599 + renewalPrice: + currencyCode: USD + value: 6897 + firstTermPrice: + currencyCode: USD + value: 499 + recommended: true + - domain: invalid..com + error: + name: MISMATCH_FORMAT + correlationId: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + message: 'does not conform to the ''domain'' format, based on pattern: /^[^.\s]{1,63}(\.[^.\s]{1,63}){1,2}$/' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + /v3/domains/registration-quotes: + post: + operationId: quoteDomainRegistration + tags: + - Registration Quotes + summary: Quote a single-domain registration (no commitment) + description: | + Prices the registration, resolves contact and preference settings, + returns required legal agreements, and mints a single-use quoteToken + with a 10-minute TTL. Free and read-only; safe to call speculatively. + + When the domain is unavailable, `available: false` is returned with + no quoteToken — this is a valid non-error response. + + When required contact fields are missing, a `422` is returned with + field-level details so the agent can collect the missing data and re-quote. + + May pass `iscCode` to lock pricing at applicable rates; + the same value must be supplied on /registrations if provided here. + The `period` supplied here must be re-supplied on /registrations; + a mismatch returns `quote_mismatch`. + If `profile` or `profileId` is supplied here, the same value must be + re-supplied on /registrations; a mismatch returns `quote_mismatch`. + + **PREMIUM domains:** when the quoted domain has inventory `PREMIUM`, + the response includes a `fees` array containing a + `ONE_TIME_PREMIUM_DOMAIN_PURCHASE` entry. The execute request must + echo this array verbatim in `consent.acknowledgedFees` to confirm + the customer accepted the specific charge before the irreversible + purchase proceeds. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/iscCode' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - domain + properties: + domain: + type: string + description: The domain name to quote, in punycode A-label form. + example: example.com + period: + type: integer + minimum: 1 + maximum: 10 + default: 1 + description: Registration period in years. If supplied, the same value must be re-supplied on /registrations. + profileId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + profile: + title: Inline Registration Profile + description: | + A one-time, non-persisted set of contacts and purchase preference defaults supplied inline on a quote or execute request. Use to provide registration data for this transaction without creating or updating a saved registration profile. + Shared by the registration quote and execute request bodies. Every field is optional. Omitted fields account identity or other default values. Provided fields override only what is supplied — contact roles replace as a whole block; preference fields replace individually. + This is not a saved registration profile and is not JSON Patch. Data here applies only to the current quote or registration request. + type: object + properties: + contacts: + title: Contacts + description: | + The set of ICANN-required contact roles for a domain registration. Registrant is required; admin, tech, and billing cascade from the registrant when omitted. Merge rule across resolution layers (saved profile, inline registration profile): identity fields replace as a whole block per role. + type: object + required: + - registrant + properties: + registrant: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + admin: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + tech: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + billing: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + autoRenew: + type: boolean + description: | + Auto-renew preference for this registration. Omit to inherit from the resolved saved profile or account defaults. + privacy: + type: boolean + description: | + WHOIS privacy preference for this registration. Omit to inherit from the resolved saved profile or account defaults. + nameServers: + type: array + minItems: 2 + maxItems: 13 + items: + type: string + description: Fully-qualified nameserver hostname. + description: | + Authoritative nameservers for this registration. Omit to inherit from the resolved saved profile or platform defaults. + example: + - ns1.example.com + - ns2.example.com + examples: + minimal: + summary: Minimal — derive registrant from account identity + value: + domain: example.com + withProfile: + summary: With saved profile ID + value: + domain: example.com + period: 2 + profileId: 14514a29-5fce-4624-8d8a-d8abd56015e2 + security: + - bearerAuth: [] + responses: + '200': + description: | + Registration quote. When available is false, no quoteToken is returned; this is not an error. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/RegistrationQuote' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + /v3/domains/registrations: + post: + operationId: registerDomain + tags: + - Registrations + summary: Register a domain (requires quoteToken) + description: | + Executes a previously quoted domain registration. **Irreversible once + accepted; creates a charge.** Requires a valid unexpired quoteToken from + `quoteDomainRegistration`, an `Idempotency-Key` header, and a consent + record. The target domain and period are in the request body alongside + the quoteToken. + + Before calling this endpoint, retrieve `requiredAgreements` from the + quote response and review each agreement before submitting the registration. Each agreement + includes a `title` (display label) and optional `url` (full legal text). + The `consent.agreementTypes` array must contain the `agreementType` value + from every item in `requiredAgreements`; a mismatch returns + `INVALID_AGREEMENT_KEYS`. + + Idempotency takes precedence over the single-use check: retrying with + the same `Idempotency-Key` replays the original operation even after + the token is consumed. + + Returns a `Registration` entity. Poll `links[rel=self]` + (`GET /registrations/{registrationId}`) until status is `COMPLETED` or + `FAILED`. The `operationId` field is also provided for clients that + prefer `GET /operations/{operationId}`; both resolve the same resource. + + Poll either until status is `COMPLETED` or `FAILED`. The operation is + fire-and-forget; always poll at least once even if the server completed + it synchronously. + + When `iscCode` was supplied at quote time, the same value must be + provided here or the request fails with `422 quote_mismatch`. + When `period` was supplied at quote time, the same value must be + provided here or the request fails with `422 quote_mismatch`. + When `profile` or `profileId` was supplied at quote time, the same + value must be provided here or the request fails with `422 quote_mismatch`. + + **PREMIUM domains:** when the quote's `fees` array is non-empty + (inventory `PREMIUM`), the execute request must include + `consent.acknowledgedFees` containing the same fees verbatim — + same types, amounts, and currencies. This confirms the customer + explicitly saw and accepted the specific charge before the + irreversible purchase is executed. + + - `acknowledgedFees` absent when fees exist → `422` with error + name `consent_fees_required` (conditionally required by the quote; the + constraint spans two requests and cannot be expressed in the + schema). + - `acknowledgedFees` present but type or amount does not match + the locked quote → `422` with error name `quote_mismatch`. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/idempotencyKey' + - $ref: '#/components/parameters/iscCode' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Registration' + examples: + withToken: + summary: Standard REGISTRY registration with quoteToken + value: + domain: example.com + period: 1 + quoteToken: 7f3a2b1c-9d8e-4012-a5b6-c1d2e3f4a5b6 + consent: + agreementTypes: + - API_DPA + agreedAt: '2026-06-12T10:02:00Z' + withPremiumToken: + summary: PREMIUM (Afternic fast-transfer) registration with fee acknowledgment + value: + domain: examplepremium.com + period: 1 + quoteToken: 9a1b2c3d-4e5f-6789-abcd-ef0123456789 + consent: + agreementTypes: + - API_DPA + agreedAt: '2026-06-12T10:02:00Z' + acknowledgedFees: + - type: ONE_TIME_PREMIUM_DOMAIN_PURCHASE + fee: + value: 390000 + currencyCode: USD + security: + - bearerAuth: [] + responses: + '202': + description: | + Registration accepted. Poll the self link for status. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + Location: + $ref: '#/components/headers/location' + Retry-After: + $ref: '#/components/headers/retryAfter' + content: + application/json: + schema: + $ref: '#/components/schemas/Registration' + examples: + accepted: + summary: Registration accepted with server-derived consent + value: + registrationId: 3a8f1c2d-7e6b-4f9a-b1c0-d2e3f4a5b6c7 + domain: example.com + period: 1 + price: + currencyCode: USD + value: 1199 + consent: + agreementTypes: + - API_DPA + agreedAt: '2026-06-12T10:02:00Z' + agreedBy: + type: DIRECT + principal: 550e8400-e29b-41d4-a716-446655440000 + ip: 203.0.113.7 + status: CONFIRMED + operationId: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + createdAt: '2026-06-12T10:02:05Z' + updatedAt: '2026-06-12T10:02:05Z' + links: + - rel: self + href: https://api.godaddy.com/v3/domains/registrations/3a8f1c2d-7e6b-4f9a-b1c0-d2e3f4a5b6c7 + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '409': + $ref: '#/components/responses/409' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + /v3/domains/registrations/{registrationId}: + get: + operationId: getRegistration + tags: + - Registrations + summary: Get a registration record + description: | + Returns a single registration record by its server-assigned registrationId, including the current execution status and the domain expiry date once the registration completes. This is the concrete poll endpoint for registration operations; the abstract equivalent is GET /operations/{operationId}. + parameters: + - $ref: '#/components/parameters/xRequestId' + - $ref: '#/components/parameters/registrationId' + security: + - bearerAuth: [] + responses: + '200': + description: Registration record returned. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + Retry-After: + $ref: '#/components/headers/retryAfter' + content: + application/json: + schema: + $ref: '#/components/schemas/Registration' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '429': + $ref: '#/components/responses/429' +components: + schemas: + LegalAgreement: + properties: + agreementKey: + description: Unique identifier for the legal agreement + type: string + content: + description: Contents of the legal agreement, suitable for embedding + type: string + title: + description: Title of the legal agreement + type: string + url: + description: URL to a page containing the legal agreement + format: url + type: string + required: + - agreementKey + - title + - content + type: object + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + required: + - code + type: object + ErrorLimit: + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + retryAfterSec: + description: Number of seconds to wait before attempting a similar request + format: integer-positive + type: integer + required: + - retryAfterSec + - code + type: object + DomainAvailableResponse: + properties: + available: + description: Whether or not the domain name is available + type: boolean + currency: + default: USD + description: Currency in which the `price` is listed. Only returned if tld is offered + format: iso-currency-code + type: string + definitive: + description: Whether or not the `available` answer has been definitively verified with the registry + type: boolean + domain: + description: Domain name + type: string + period: + description: Number of years included in the price. Only returned if tld is offered + format: integer-positive + type: integer + price: + description: Price of the domain excluding taxes or fees. Only returned if tld is offered + format: currency-micro-unit + type: integer + required: + - domain + - available + - definitive + type: object + DomainAvailableBulk: + properties: + domains: + description: Domain available response array + items: + $ref: '#/components/schemas/DomainAvailableResponse' + type: array + required: + - domains + type: object + DomainAvailableBulkMixed: + properties: + domains: + description: Domain available response array + items: + $ref: '#/components/schemas/DomainAvailableResponse' + type: array + errors: + description: Errors encountered while performing a domain available check + items: + $ref: '#/components/schemas/DomainAvailableError' + type: array + required: + - domains + type: object + DomainsContactsBulk: + properties: + contactAdmin: + $ref: '#/components/schemas/Contact' + contactBilling: + $ref: '#/components/schemas/Contact' + contactPresence: + $ref: '#/components/schemas/Contact' + contactRegistrant: + $ref: '#/components/schemas/Contact' + contactTech: + $ref: '#/components/schemas/Contact' + domains: + description: An array of domain names to be validated against. Alternatively, you can specify the extracted tlds. However, full domain names are required if the tld is `uk` + items: + format: domain + type: string + type: array + entityType: + description: Canadian Presence Requirement (CA) + enum: + - ABORIGINAL + - ASSOCIATION + - CITIZEN + - CORPORATION + - EDUCATIONAL + - GOVERNMENT + - HOSPITAL + - INDIAN_BAND + - LEGAL_REPRESENTATIVE + - LIBRARY_ARCHIVE_MUSEUM + - MARK_REGISTERED + - MARK_TRADE + - PARTNERSHIP + - POLITICAL_PARTY + - RESIDENT_PERMANENT + - TRUST + - UNION + type: string + required: + - domains + type: object + ErrorDomainContactsValidate: + 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/ErrorFieldDomainContactsValidate' + type: array + message: + description: Human-readable, English description of the error + type: string + required: + - code + type: object + DomainPurchaseResponse: + properties: + currency: + default: USD + description: Currency in which the `total` is listed + format: iso-currency-code + type: string + itemCount: + description: Number items included in the order + format: integer-positive + type: integer + orderId: + description: Unique identifier of the order processed to purchase the domain + format: integer-positive + type: integer + total: + description: Total cost of the domain and any selected add-ons + format: currency-micro-unit + type: integer + required: + - orderId + - itemCount + - total + type: object + JsonSchema: + properties: + id: + type: string + models: + type: array + items: + type: string + description: Nested schema model (opaque JSON object) + properties: + type: array + items: + $ref: '#/components/schemas/JsonProperty' + required: + type: array + items: + type: string + required: + - id + - properties + - required + - models + type: object + DomainSuggestion: + properties: + domain: + description: Suggested domain name + type: string + required: + - domain + type: object + TldSummary: + properties: + name: + description: Name of the top-level domain + format: tld + type: string + type: + default: GENERIC + description: Type of the top-level domain + enum: + - COUNTRY_CODE + - GENERIC + type: string + required: + - name + - type + type: object + ErrorField: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + - JSONPath referring to a field containing an error + **OR** + - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + DomainAvailableError: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + domain: + description: Domain name + type: string + message: + description: Human-readable, English description of the error + type: string + path: + description: |- + - JSONPath referring to a field containing an error + **OR** + - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` + format: json-path + type: string + status: + description: HTTP status code that would return for a single check + type: integer + required: + - code + - domain + - path + - status + type: object + Contact: + properties: + addressMailing: + $ref: '#/components/schemas/Address' + email: + format: email + type: string + fax: + format: phone + type: string + jobTitle: + type: string + nameFirst: + format: person-name + type: string + nameLast: + format: person-name + type: string + nameMiddle: + type: string + organization: + format: organization-name + type: string + phone: + format: phone + type: string + required: + - nameFirst + - nameLast + - email + - phone + - addressMailing + type: object + ErrorFieldDomainContactsValidate: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + domains: + description: An array of domain names the error is for. If tlds are specified in the request, `domains` will contain tlds. For example, if `domains` in request is ["test1.com", "test2.uk", "net"], and the field is invalid for com and net, then one of the `fields` in response will have ["test1.com", "net"] as `domains` + items: + type: string + type: array + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + 1) JSONPath referring to the field within the data containing an error + or + 2) JSONPath referring to an object containing an error + format: json-path + type: string + pathRelated: + description: JSONPath referring to the field on the object referenced by `path` containing an error + format: json-path + type: string + required: + - code + - domains + - path + type: object + DomainPurchase: + properties: + consent: + $ref: '#/components/schemas/Consent' + contactAdmin: + $ref: '#/components/schemas/Contact' + contactBilling: + $ref: '#/components/schemas/Contact' + contactRegistrant: + $ref: '#/components/schemas/Contact' + contactTech: + $ref: '#/components/schemas/Contact' + domain: + description: For internationalized domain names with non-ascii characters, the domain name is converted to punycode before format and pattern validation rules are checked + format: domain + type: string + nameServers: + items: + format: host-name + type: string + type: array + period: + default: 1 + format: integer-positive + maximum: 10 + minimum: 1 + type: integer + privacy: + default: false + type: boolean + renewAuto: + default: true + type: boolean + required: + - domain + - consent + type: object + JsonProperty: + properties: + defaultValue: + type: string + format: + type: string + items: + type: array + items: + $ref: '#/components/schemas/JsonDataType' + maxItems: + type: integer + maximum: + type: integer + minItems: + type: integer + minimum: + type: integer + pattern: + type: string + required: + type: boolean + type: + type: string + required: + - type + - required + type: object + Address: + properties: + address1: + format: street-address + type: string + address2: + format: street-address2 + type: string + city: + format: city-name + type: string + country: + default: US + description: |- + Two-letter ISO country code to be used as a hint for target region + NOTE: These are sample values, there are many + more + enum: + - AC + - AD + - AE + - AF + - AG + - AI + - AL + - AM + - AO + - AQ + - AR + - AS + - AT + - AU + - AW + - AX + - AZ + - BA + - BB + - BD + - BE + - BF + - BG + - BH + - BI + - BJ + - BM + - BN + - BO + - BQ + - BR + - BS + - BT + - BV + - BW + - BY + - BZ + - CA + - CC + - CD + - CF + - CG + - CH + - CI + - CK + - CL + - CM + - CN + - CO + - CR + - CV + - CW + - CX + - CY + - CZ + - DE + - DJ + - DK + - DM + - DO + - DZ + - EC + - EE + - EG + - EH + - ER + - ES + - ET + - FI + - FJ + - FK + - FM + - FO + - FR + - GA + - GB + - GD + - GE + - GF + - GG + - GH + - GI + - GL + - GM + - GN + - GP + - GQ + - GR + - GS + - GT + - GU + - GW + - GY + - HK + - HM + - HN + - HR + - HT + - HU + - ID + - IE + - IL + - IM + - IN + - IO + - IQ + - IS + - IT + - JE + - JM + - JO + - JP + - KE + - KG + - KH + - KI + - KM + - KN + - KR + - KV + - KW + - KY + - KZ + - LA + - LB + - LC + - LI + - LK + - LR + - LS + - LT + - LU + - LV + - LY + - MA + - MC + - MD + - ME + - MG + - MH + - MK + - ML + - MM + - MN + - MO + - MP + - MQ + - MR + - MS + - MT + - MU + - MV + - MW + - MX + - MY + - MZ + - NA + - NC + - NE + - NF + - NG + - NI + - NL + - 'NO' + - NP + - NR + - NU + - NZ + - OM + - PA + - PE + - PF + - PG + - PH + - PK + - PL + - PM + - PN + - PR + - PS + - PT + - PW + - PY + - QA + - RE + - RO + - RS + - RU + - RW + - SA + - SB + - SC + - SE + - SG + - SH + - SI + - SJ + - SK + - SL + - SM + - SN + - SO + - SR + - ST + - SV + - SX + - SZ + - TC + - TD + - TF + - TG + - TH + - TJ + - TK + - TL + - TM + - TN + - TO + - TP + - TR + - TT + - TV + - TW + - TZ + - UA + - UG + - UM + - US + - UY + - UZ + - VA + - VC + - VE + - VG + - VI + - VN + - VU + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + format: iso-country-code + type: string + postalCode: + description: Postal or zip code + format: postal-code + type: string + state: + description: State or province or territory + format: state-province-territory + type: string + required: + - address1 + - city + - state + - postalCode + - country + type: object + Consent: + properties: + agreedAt: + description: Timestamp indicating when the end-user consented to these legal agreements + format: iso-datetime + type: string + agreedBy: + description: Originating client IP address of the end-user's computer when they consented to these legal agreements + type: string + agreementKeys: + description: Unique identifiers of the legal agreements to which the end-user has agreed, as returned from the/domains/agreements endpoint + items: + type: string + type: array + required: + - agreementKeys + - agreedBy + - agreedAt + type: object + JsonDataType: + properties: + format: + type: string + pattern: + type: string + type: + type: string + required: + - type + - $ref + type: object + DomainPurchaseV2: + additionalProperties: false + properties: + domain: + type: string + format: domain + pattern: ^[^.]{1,63}.[^.]{2,}$ + description: For internationalized domain names with non-ascii characters, the domain name is converted to punycode before format and pattern validation rules are checked + consent: + $ref: '#/components/schemas/ConsentV2' + period: + type: integer + format: integer-positive + default: 1 + minimum: 1 + maximum: 10 + pattern: ^[0-9]+$ + nameServers: + type: array + items: + type: string + format: host-name + maxItems: 2 + renewAuto: + type: boolean + default: true + privacy: + type: boolean + default: false + contacts: + $ref: '#/components/schemas/DomainContactsCreateV2' + metadata: + type: string + description: The domain eligibility data fields as specified by GET /v2/customers/{customerId}/domains/register/schema/{tld} (opaque JSON object) + required: + - domain + - consent + type: object + ErrorField_v2: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + JSONPath referring to a field containing an error, or a field that refers to an + object containing an error (with more detail in `pathRelated`). + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + ConsentV2: + additionalProperties: false + properties: + agreementKeys: + type: array + items: + type: string + description: Unique identifiers of the legal agreements to which the end-user has agreed, as returned from the/domains/agreements endpoint + price: + type: integer + format: currency-micro-unit + description: Price of the domain excluding taxes or fees. Please use GET /v1/domains/available to retrieve the price and currency for the domain + currency: + type: string + format: iso-currency-code + default: USD + pattern: ^[A-Z][A-Z][A-Z]$ + description: Currency in which the `price` is listed + registryPremiumPricing: + type: boolean + description: Only required for hosted registrar if domain is premium. If true indicates that the `price` and `currency` listed are the registry premium price and currency for the domain + agreedBy: + type: string + description: Originating client IP address of the end-user's computer when they consented to these legal agreements + agreedAt: + type: string + format: iso-datetime + description: Timestamp indicating when the end-user consented to these legal agreements + claimToken: + description: The trademark claim token, only needed if the domain has an active trademark claim + type: string + required: + - agreementKeys + - price + - currency + - agreedBy + - agreedAt + type: object + DomainContactsCreateV2: + additionalProperties: false + type: object + properties: + admin: + $ref: '#/components/schemas/ContactDomainCreate' + adminId: + description: | + Unique identifier of the contact that the user wants to use for the domain admin contact. This can be specified instead of the `admin` property. + type: string + billing: + $ref: '#/components/schemas/ContactDomainCreate' + billingId: + description: | + Unique identifier of the contact that the user wants to use for the domain billing contact. This can be specified instead of the `billing` property. + type: string + registrant: + $ref: '#/components/schemas/ContactDomainCreate' + registrantId: + description: | + Unique identifier of the contact that the user wants to use for the domain registrant contact. This can be specified instead of the `registrant` property. + type: string + tech: + $ref: '#/components/schemas/ContactDomainCreate' + techId: + description: | + Unique identifier of the contact that the user wants to use for the domain tech contact. This can be specified instead of the `tech` property. + type: string + ContactDomainCreate: + additionalProperties: false + properties: + encoding: + type: string + default: ASCII + enum: + - ASCII + - UTF-8 + description: |- + The encoding of the contact data + + - **ASCII** — Data contains only ASCII characters that are not region or language specific. + - **UTF-8** — Data contains characters that are specific to a region or language. + nameFirst: + type: string + format: person-name + maxLength: 30 + nameMiddle: + type: string + nameLast: + type: string + format: person-name + maxLength: 30 + organization: + type: string + format: organization-name + maxLength: 100 + jobTitle: + type: string + email: + type: string + format: email + maxLength: 80 + phone: + type: string + format: phone + maxLength: 17 + fax: + type: string + format: phone + maxLength: 17 + addressMailing: + $ref: '#/components/schemas/Address_v2' + metadata: + type: string + description: The contact eligibility data fields as specified by GET /v2/customers/{customerId}/domains/contacts/schema/{tld} (opaque JSON object) + required: + - encoding + - nameFirst + - nameLast + - email + - phone + - addressMailing + type: object + Address_v2: + properties: + address1: + format: street-address + type: string + address2: + format: street-address2 + type: string + city: + format: city-name + type: string + country: + default: US + description: |- + Two-letter ISO country code to be used as a hint for target region. + NOTE: These are sample values; see [ISO country codes](http://www.iso.org/iso/country_codes.htm). + enum: + - AC + - AD + - AE + - AF + - AG + - AI + - AL + - AM + - AO + - AQ + - AR + - AS + - AT + - AU + - AW + - AX + - AZ + - BA + - BB + - BD + - BE + - BF + - BG + - BH + - BI + - BJ + - BM + - BN + - BO + - BQ + - BR + - BS + - BT + - BV + - BW + - BY + - BZ + - CA + - CC + - CD + - CF + - CG + - CH + - CI + - CK + - CL + - CM + - CN + - CO + - CR + - CV + - CW + - CX + - CY + - CZ + - DE + - DJ + - DK + - DM + - DO + - DZ + - EC + - EE + - EG + - EH + - ER + - ES + - ET + - FI + - FJ + - FK + - FM + - FO + - FR + - GA + - GB + - GD + - GE + - GF + - GG + - GH + - GI + - GL + - GM + - GN + - GP + - GQ + - GR + - GS + - GT + - GU + - GW + - GY + - HK + - HM + - HN + - HR + - HT + - HU + - ID + - IE + - IL + - IM + - IN + - IO + - IQ + - IS + - IT + - JE + - JM + - JO + - JP + - KE + - KG + - KH + - KI + - KM + - KN + - KR + - KV + - KW + - KY + - KZ + - LA + - LB + - LC + - LI + - LK + - LR + - LS + - LT + - LU + - LV + - LY + - MA + - MC + - MD + - ME + - MG + - MH + - MK + - ML + - MM + - MN + - MO + - MP + - MQ + - MR + - MS + - MT + - MU + - MV + - MW + - MX + - MY + - MZ + - NA + - NC + - NE + - NF + - NG + - NI + - NL + - 'NO' + - NP + - NR + - NU + - NZ + - OM + - PA + - PE + - PF + - PG + - PH + - PK + - PL + - PM + - PN + - PR + - PS + - PT + - PW + - PY + - QA + - RE + - RO + - RS + - RU + - RW + - SA + - SB + - SC + - SE + - SG + - SH + - SI + - SJ + - SK + - SL + - SM + - SN + - SO + - SR + - ST + - SV + - SX + - SZ + - TC + - TD + - TF + - TG + - TH + - TJ + - TK + - TL + - TM + - TN + - TO + - TP + - TR + - TT + - TV + - TW + - TZ + - UA + - UG + - UM + - US + - UY + - UZ + - VA + - VC + - VE + - VG + - VI + - VN + - VU + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + format: iso-country-code + type: string + postalCode: + description: Postal or zip code + format: postal-code + type: string + state: + description: State or province or territory + format: state-province-territory + type: string + required: + - address1 + - city + - state + - postalCode + - country + type: object + SuggestionSource: + title: Suggestion Source + description: | + A suggestion source strategy that generates domain name variations. EXTENSION — vary the TLD. KEYWORD_SPIN — rotate keywords. CC_TLD — vary using country-code TLDs. PREMIUM — include premium-priced variations. + type: string + enum: + - CC_TLD + - EXTENSION + - KEYWORD_SPIN + - PREMIUM + Suggestion: + title: Suggestion + description: | + A single available domain suggestion returned by the suggest endpoint. Availability is implied by presence in the results (available-only contract) and is best-effort — the availability check at quote time is the authoritative re-check. Indicative pricing may be stale; the locked price is established at quote time only. + type: object + required: + - domain + properties: + domain: + type: string + description: | + The suggested domain name in punycode A-label form. + example: sunrisebakery.com + prices: + type: array + description: | + Multi-term pricing for this suggestion. Each entry represents a different registration period. Indicative only — the locked price is established at quote time. + items: + $ref: '#/components/schemas/TermPrice' + inventory: + title: Inventory Type + description: | + The inventory source for a domain name. REGISTRY — standard registry price inventory. REGISTRY_PREMIUM — registry premium tier pricing. PREMIUM — third-party premium domain marketplace. + type: string + enum: + - REGISTRY + - REGISTRY_PREMIUM + - PREMIUM + example: REGISTRY + OptimizationTarget: + title: Optimization Target + description: | + How an availability check should prioritize speed vs. authoritative accuracy. SPEED — use cached zone data for a fast response (may be slightly stale). ACCURACY — perform a live registry check for authoritative availability (higher latency). + type: string + enum: + - SPEED + - ACCURACY + Availability: + title: Availability + description: | + The availability check result for a single requested domain. A checkable domain returns the available flag plus optional pricing. A domain that could not be checked carries an error object and no availability fields. Exactly one of available or error is present per item. + Availability is best-effort indicative; the authoritative availability check is performed at quote time. definitive: true means the result was confirmed directly with the registry rather than from a cached zone check. + type: object + required: + - domain + properties: + domain: + type: string + description: | + The domain name checked, normalized to punycode A-label form. + example: example.com + unicodeDomain: + type: string + description: | + The Unicode (U-label) form of the domain. Present only for IDN domains. + example: münchen.de + available: + type: boolean + description: | + Whether this domain appears to be available for registration. Best-effort; re-verified at quote time. Present only when the domain was successfully checked (no error). + definitive: + type: boolean + description: | + When true, the availability result was confirmed directly with the registry (ACCURACY mode). When false, the result is from a cached zone data check (SPEED mode) and may be stale. + inventory: + title: Inventory Type + description: | + The inventory source for a domain name. REGISTRY — standard registry price inventory. REGISTRY_PREMIUM — registry premium tier pricing. PREMIUM — third-party premium domain marketplace. + type: string + enum: + - REGISTRY + - REGISTRY_PREMIUM + - PREMIUM + example: REGISTRY + prices: + type: array + description: | + Multi-term pricing for this domain. Each entry represents a different registration period (e.g. 1 year, 2 years). Present when available is true. + items: + $ref: '#/components/schemas/TermPrice' + error: + type: object + title: Error + description: The error information. + properties: + name: + type: string + description: The human-readable, unique name of the error. + correlationId: + type: string + description: Internal identifier used for correlation purposes. + message: + type: string + description: The message that describes the error. + informationLink: + type: string + description: The URI for detailed information related to this error for the developer. + details: + type: array + description: An array of additional details about the error. Required for client-side `4XX` errors. + additionalItems: false + items: + $ref: '#/components/schemas/ErrorDetails' + links: + type: array + description: An array of error-related HATEOAS links. + readOnly: true + items: + $ref: '#/components/schemas/LinkDescription' + readOnly: true + required: + - name + - correlationId + - message + AvailabilityCheckCriteria: + title: Availability Check Criteria + description: | + Request body for the POST /check-availability controller. Specifies the domain names to check and optional parameters that influence how the check is performed. The response returns one Availability result per requested domain in input order. + This controller does not persist the check; there is no check identity or poll URL. + type: object + required: + - domains + properties: + domains: + type: array + minItems: 1 + maxItems: 25 + items: + type: string + description: | + List of 1–25 domain names to check, in punycode A-label form for IDNs. + example: + - example.com + - example.net + optimizeFor: + title: Optimization Target + description: | + How an availability check should prioritize speed vs. authoritative accuracy. SPEED — use cached zone data for a fast response (may be slightly stale). ACCURACY — perform a live registry check for authoritative availability (higher latency). + type: string + enum: + - SPEED + - ACCURACY + default: SPEED + example: SPEED + iscCode: + type: string + description: | + Reseller ISC (International Shopper Code) for pricing context. When provided, the indicative prices in the results reflect the applicable reseller rates for this ISC. + example: ISC_PARTNER_001 + Uuid: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + InlineRegistrationProfile: + title: Inline Registration Profile + description: | + A one-time, non-persisted set of contacts and purchase preference defaults supplied inline on a quote or execute request. Use to provide registration data for this transaction without creating or updating a saved registration profile. + Shared by the registration quote and execute request bodies. Every field is optional. Omitted fields account identity or other default values. Provided fields override only what is supplied — contact roles replace as a whole block; preference fields replace individually. + This is not a saved registration profile and is not JSON Patch. Data here applies only to the current quote or registration request. + type: object + properties: + contacts: + title: Contacts + description: | + The set of ICANN-required contact roles for a domain registration. Registrant is required; admin, tech, and billing cascade from the registrant when omitted. Merge rule across resolution layers (saved profile, inline registration profile): identity fields replace as a whole block per role. + type: object + required: + - registrant + properties: + registrant: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + admin: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + tech: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + billing: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + autoRenew: + type: boolean + description: | + Auto-renew preference for this registration. Omit to inherit from the resolved saved profile or account defaults. + privacy: + type: boolean + description: | + WHOIS privacy preference for this registration. Omit to inherit from the resolved saved profile or account defaults. + nameServers: + type: array + minItems: 2 + maxItems: 13 + items: + type: string + description: Fully-qualified nameserver hostname. + description: | + Authoritative nameservers for this registration. Omit to inherit from the resolved saved profile or platform defaults. + example: + - ns1.example.com + - ns2.example.com + RegistrationQuote: + title: Registration Quote + description: | + A price quote for registering a single domain. Contains a locked price, resolved contact and preference settings, required legal agreements, and a short-lived single-use quoteToken that must be presented on the subsequent registration execute call. Execution without a valid quoteToken is structurally impossible. + When available is false, no quoteToken is returned — this is not an error; it means the domain cannot be registered as requested. + type: object + required: + - domain + - available + properties: + quoteToken: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + example: 7f3a2b1c-9d8e-4012-a5b6-c1d2e3f4a5b6 + expiresAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + domain: + type: string + description: | + The domain name being quoted, in punycode A-label form for IDNs. + example: example.com + available: + type: boolean + description: | + Whether the domain is available for registration. When false, no quoteToken is returned. The availability check at quote time is authoritative; a name sniped between suggest/availability and quote fails cleanly here. + price: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + renewalPrice: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + period: + type: integer + minimum: 1 + maximum: 10 + description: Registration period in years for which the price is quoted. + example: 1 + resolved: + title: Resolved Settings + description: | + A preview of the effective settings that will be applied if the associated quote is executed. Returned in the quote response to eliminate invisible side effects — the caller sees exactly whose contact info and which preferences will be used before making a commitment. contactSource names where the registrant contact came from so an agent can be explicit at the confirmation step. + type: object + properties: + profileId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + readOnly: true + example: 14514a29-5fce-4624-8d8a-d8abd56015e2 + contactSource: + title: Contact Source + description: | + Where the resolved registrant contact came from. INLINE — contact was supplied via an inline registration profile on the request. PROFILE — contact was resolved from a named or default saved profile. ACCOUNT — contact was derived from the authenticated principal's account identity (no profile supplied or on file). + type: string + enum: + - INLINE + - PROFILE + - ACCOUNT + example: PROFILE + registrantSummary: + type: string + description: | + A human-readable one-line summary of the resolved registrant, suitable for display in a confirmation prompt. When contactSource is ACCOUNT, the summary is suffixed with "(account identity)" to make the derivation explicit. + example: Jane Smith / jane@example.com + autoRenew: + type: boolean + description: | + The effective auto-renew setting that will be applied upon registration. + privacy: + type: boolean + description: | + The effective WHOIS privacy setting that will be applied upon registration. + nameServers: + type: array + items: + type: string + description: Fully-qualified nameserver hostname. + description: | + The effective nameservers that will be provisioned for the domain. + example: + - ns01.domaincontrol.com + - ns02.domaincontrol.com + requiredAgreements: + type: array + items: + $ref: '#/components/schemas/Agreement' + description: | + Legal agreements that must be accepted before executing this quote. The agreementType values from this list must be included in the execute request's consent object. + irreversible: + type: boolean + description: | + Whether executing this quote is irreversible once accepted. Use to calibrate the explicitness of any confirmation step presented before execute. + example: false + inventory: + title: Inventory Type + description: | + The inventory source for a domain name. REGISTRY — standard registry price inventory. REGISTRY_PREMIUM — registry premium tier pricing. PREMIUM — third-party premium domain marketplace. + type: string + enum: + - REGISTRY + - REGISTRY_PREMIUM + - PREMIUM + readOnly: true + fees: + type: array + description: | + Fees charged at the time of purchase, in addition to the registration price. Present when the domain incurs purchase fees beyond the base registration cost. + These are the same fees as TermPrice.fees for the selected term (this quote's period) — not a separate term-independent fee list and not additional to term-level fees. Execute cost is price plus this array. Mirrored on Registration.fees after execute. + items: + $ref: '#/components/schemas/Fee' + Registration: + title: Registration + description: | + A domain registration entity created when a POST /registrations request is accepted. Registrations are a top-level resource with their own stable registrationId; the domain relationship is captured in the representation. + On POST /registrations, supply the writable fields (domain, period, quoteToken, consent, and optionally profileId/profile). The server returns the full Registration with readOnly fields populated. Poll links[rel=self] until status reaches COMPLETED or FAILED. The same resource is also reachable via GET /operations/{operationId} for clients operating at the abstract level; operationId is included in the representation for that purpose. + type: object + required: + - domain + - quoteToken + - consent + properties: + registrationId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + readOnly: true + domain: + type: string + description: | + The domain name to register, in punycode A-label form for IDNs. Must match the domain in the quoteToken. + example: example.com + period: + type: integer + minimum: 1 + maximum: 10 + default: 1 + description: Registration period in years. Must match the period in the quote. + example: 1 + profileId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + profile: + title: Inline Registration Profile + description: | + A one-time, non-persisted set of contacts and purchase preference defaults supplied inline on a quote or execute request. Use to provide registration data for this transaction without creating or updating a saved registration profile. + Shared by the registration quote and execute request bodies. Every field is optional. Omitted fields account identity or other default values. Provided fields override only what is supplied — contact roles replace as a whole block; preference fields replace individually. + This is not a saved registration profile and is not JSON Patch. Data here applies only to the current quote or registration request. + type: object + properties: + contacts: + title: Contacts + description: | + The set of ICANN-required contact roles for a domain registration. Registrant is required; admin, tech, and billing cascade from the registrant when omitted. Merge rule across resolution layers (saved profile, inline registration profile): identity fields replace as a whole block per role. + type: object + required: + - registrant + properties: + registrant: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + admin: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + tech: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + billing: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + autoRenew: + type: boolean + description: | + Auto-renew preference for this registration. Omit to inherit from the resolved saved profile or account defaults. + privacy: + type: boolean + description: | + WHOIS privacy preference for this registration. Omit to inherit from the resolved saved profile or account defaults. + nameServers: + type: array + minItems: 2 + maxItems: 13 + items: + type: string + description: Fully-qualified nameserver hostname. + description: | + Authoritative nameservers for this registration. Omit to inherit from the resolved saved profile or platform defaults. + example: + - ns1.example.com + - ns2.example.com + quoteToken: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + writeOnly: true + example: 7f3a2b1c-9d8e-4012-a5b6-c1d2e3f4a5b6 + consent: + title: Consent + description: | + Customer consent record for a domain operation, capturing which legal agreements were accepted, which fees were acknowledged, when, and by whom. On execute, the caller supplies agreementTypes, agreedAt, and (when the quote carries fees) acknowledgedFees. The server derives agreedBy from the authenticated request context (OAuth identity, X-Shopper-Id, client IP, and transmission channel). + type: object + required: + - agreementTypes + - agreedAt + properties: + agreementTypes: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/AgreementType' + description: | + The agreement types the customer accepted. Must match the agreementType values returned in the corresponding quote's requiredAgreements array. + example: + - API_DPA + agreedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + acknowledgedFees: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/Fee' + description: | + Fees the customer explicitly acknowledged before executing the purchase. + When the preceding quote's `fees` array is non-empty, this field must be present and contain the same entries verbatim (same types, amounts, and currencies). The server validates this against the locked quote token; a mismatch is rejected with `422 quote_mismatch`. This field is not in `required` because the obligation is conditional on quote state and cannot be expressed as a schema constraint — its absence is enforced at the API layer, not by validation tooling. + Contrast with `Registration.fees` (read-only): that field records what the server charged; this field records what the customer acknowledged. Both share the Fee type. + Omit when the quote carries no purchase fees (standard REGISTRY registration). + example: + - type: ONE_TIME_PREMIUM_DOMAIN_PURCHASE + fee: + value: 390000 + currencyCode: USD + agreedBy: + title: Consent Actor + description: | + Identifies who gave consent and who transmitted it. One uniform schema for all actor types. Self-reported by the caller and treated as supplementary attestation; the server verifies principal against the resolved auth identity (OAuth token + X-Shopper-Id) and rejects with consent_principal_mismatch on disagreement. The persisted consent record is the union of this block and the verified auth context. + principal identifies the account holder whose consent is being recorded. actor identifies the automated or intermediary party that transmitted the consent when different from the principal. For DIRECT, actor is omitted. + type: object + required: + - type + - principal + properties: + type: + title: Consent Actor Type + description: | + Who transmitted consent on behalf of the principal. DIRECT — the principal acted directly; actor is omitted. AGENT — an AI or automation acted on behalf of the principal. RESELLER — a reseller acted on behalf of a shopper. + type: string + example: DIRECT + principal: + type: string + description: | + The shopper or account ID whose consent is being recorded. Must match the shopper resolved from the OAuth token and X-Shopper-Id header; mismatch returns consent_principal_mismatch. + example: shopper_123 + actor: + type: string + description: | + The automated agent or system that transmitted the consent. Omitted for DIRECT. For AGENT, identifies the specific agent instance. For RESELLER, may identify the reseller when distinct from the OAuth token subject. + example: agent:claude/atlas-1 + ip: + type: string + description: | + The IP address of the principal at the time consent was expressed, if known. Optional — an absent IP with a verified principal is preferred over a fabricated one. + example: 203.0.113.7 + readOnly: true + price: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + readOnly: true + fees: + type: array + description: | + Fees charged at the time of purchase, in addition to the registration price. Present when purchase fees were incurred. Same fees as RegistrationQuote.fees (the selected term's TermPrice.fees) from the preceding quote. + items: + $ref: '#/components/schemas/Fee' + readOnly: true + status: + title: Domain Operation Status + description: | + The execution state of an asynchronous domain operation. CONFIRMED — operation has been accepted and is queued for execution. EXECUTING — operation is actively being processed by the registry or downstream systems. COMPLETED — operation finished successfully; result data is available. FAILED — operation terminated with an unrecoverable error; error detail is attached. + type: string + readOnly: true + operationId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + readOnly: true + example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + expiresAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + createdAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + updatedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + readOnly: true + links: + type: array + items: + $ref: '#/components/schemas/LinkDescription' + description: | + HATEOAS link relations for this registration. rel=self — the canonical URL for this registration record. rel=domain — the registered domain-name resource once the registration is complete. + readOnly: true + TermPrice: + title: Term Price + description: | + Pricing for a single registration term (period and unit combination). A term is self-contained: the full cost of choosing it is price plus all fees listed here. + type: object + required: + - term + - period + - price + properties: + term: + title: Term + description: | + The unit of a registration period. YEAR — registration period is expressed in years. + type: string + enum: + - YEAR + period: + type: integer + minimum: 1 + maximum: 10 + description: Number of term units for this pricing entry. + example: 1 + price: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + renewalPrice: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + firstTermPrice: + $ref: '#/components/schemas/SimpleMoney' + description: | + Discounted price of only the first term unit within this multi-unit period. Typically omitted when period is 1 (where it equals price). Present when a first-term-only promotion applies to a multi-unit period. + example: + currencyCode: USD + value: 1199 + recommended: + type: boolean + description: | + When true, this term is the best-value option based on active discounts or promotions. At most one entry in the prices array carries this flag. Absent (not false) when no recommendation applies. + example: true + fees: + type: array + description: | + Fees charged at the time of purchase for this term, in addition to price. Present when the domain incurs purchase fees beyond the base registration cost. The full cost of choosing this term is price plus these fees. + items: + $ref: '#/components/schemas/Fee' + InventoryType: + title: Inventory Type + description: | + The inventory source for a domain name. REGISTRY — standard registry price inventory. REGISTRY_PREMIUM — registry premium tier pricing. PREMIUM — third-party premium domain marketplace. + type: string + enum: + - REGISTRY + - REGISTRY_PREMIUM + - PREMIUM + Error_v3: + type: object + title: Error + description: The error information. + properties: + name: + type: string + description: The human-readable, unique name of the error. + correlationId: + type: string + description: Internal identifier used for correlation purposes. + message: + type: string + description: The message that describes the error. + informationLink: + type: string + description: The URI for detailed information related to this error for the developer. + details: + type: array + description: An array of additional details about the error. Required for client-side `4XX` errors. + additionalItems: false + items: + $ref: '#/components/schemas/ErrorDetails' + links: + type: array + description: An array of error-related HATEOAS links. + readOnly: true + items: + $ref: '#/components/schemas/LinkDescription' + readOnly: true + required: + - name + - correlationId + - message + Contacts: + title: Contacts + description: | + The set of ICANN-required contact roles for a domain registration. Registrant is required; admin, tech, and billing cascade from the registrant when omitted. Merge rule across resolution layers (saved profile, inline registration profile): identity fields replace as a whole block per role. + type: object + required: + - registrant + properties: + registrant: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + admin: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + tech: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + billing: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + DateTime: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + SimpleMoney: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + ResolvedSettings: + title: Resolved Settings + description: | + A preview of the effective settings that will be applied if the associated quote is executed. Returned in the quote response to eliminate invisible side effects — the caller sees exactly whose contact info and which preferences will be used before making a commitment. contactSource names where the registrant contact came from so an agent can be explicit at the confirmation step. + type: object + properties: + profileId: + description: A universally unique identifier (UUID) in [RFC-4122 format](https://tools.ietf.org/html/rfc4122). + type: string + format: uuid + readOnly: true + example: 14514a29-5fce-4624-8d8a-d8abd56015e2 + contactSource: + title: Contact Source + description: | + Where the resolved registrant contact came from. INLINE — contact was supplied via an inline registration profile on the request. PROFILE — contact was resolved from a named or default saved profile. ACCOUNT — contact was derived from the authenticated principal's account identity (no profile supplied or on file). + type: string + enum: + - INLINE + - PROFILE + - ACCOUNT + example: PROFILE + registrantSummary: + type: string + description: | + A human-readable one-line summary of the resolved registrant, suitable for display in a confirmation prompt. When contactSource is ACCOUNT, the summary is suffixed with "(account identity)" to make the derivation explicit. + example: Jane Smith / jane@example.com + autoRenew: + type: boolean + description: | + The effective auto-renew setting that will be applied upon registration. + privacy: + type: boolean + description: | + The effective WHOIS privacy setting that will be applied upon registration. + nameServers: + type: array + items: + type: string + description: Fully-qualified nameserver hostname. + description: | + The effective nameservers that will be provisioned for the domain. + example: + - ns01.domaincontrol.com + - ns02.domaincontrol.com + Agreement: + title: Agreement + description: | + A legal agreement that must be accepted prior to executing a domain operation. Agreements are returned in the quote response and must be acknowledged in the execute request via the consent.agreementTypes array. + type: object + required: + - agreementType + - title + properties: + agreementType: + title: Agreement Type + description: | + The type of legal agreement that must be accepted prior to executing a domain operation. Additional agreement types may be returned for specific TLDs or product combinations. API_DPA - API Domain Purchase Agreement. DNTA — Domain Name Transfer Agreement. DNPA — Domain Name Privacy Agreement. HTTPS_NOTICE — HTTPS notice acknowledgment for eligible TLDs. AURA — AU Domain Agreement for .au TLD registrations and transfers. CIRA — Canadian Internet Registration Authority Agreement for .ca TLD registrations and transfers. + type: string + example: API_DPA + title: + type: string + description: | + Human-readable title of the agreement, suitable for display to the customer. + example: Domain Name Registration Agreement + url: + type: string + format: uri + description: URL to the full legal text of this agreement. Present when available. + example: https://www.godaddy.com/agreements/showdoc?pageid=reg_sa + Fee: + title: Fee + description: | + Fees charged at the time of purchase, separate from the registration price. The type identifies the nature of the charge. + type: object + required: + - type + - fee + properties: + type: + title: Fee Type + description: | + The type of a fee charged at the time of purchase. ONE_TIME_PREMIUM_DOMAIN_PURCHASE — one-time acquisition cost charged by the aftermarket marketplace when purchasing a premium domain. + type: string + example: ONE_TIME_PREMIUM_DOMAIN_PURCHASE + fee: + type: object + title: Simple Money + description: The currency and amount for a financial transaction, such as a balance or payment due. Use for value representations with default transactable-value precision. + properties: + currencyCode: + $ref: '#/components/schemas/CurrencyCode' + value: + type: integer + format: int64 + description: The value, which might represent intergrals for currencies like `JPY` that are not typically fractional; or, with an implied decimal fraction for currencies like `TND` that are subdivided into thousandths. For the implied number of decimal places for a currency code, see [ISO-4217 Currency Codes](https://en.wikipedia.org/wiki/ISO_4217). + required: + - currencyCode + - value + Consent_v3: + title: Consent + description: | + Customer consent record for a domain operation, capturing which legal agreements were accepted, which fees were acknowledged, when, and by whom. On execute, the caller supplies agreementTypes, agreedAt, and (when the quote carries fees) acknowledgedFees. The server derives agreedBy from the authenticated request context (OAuth identity, X-Shopper-Id, client IP, and transmission channel). + type: object + required: + - agreementTypes + - agreedAt + properties: + agreementTypes: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/AgreementType' + description: | + The agreement types the customer accepted. Must match the agreementType values returned in the corresponding quote's requiredAgreements array. + example: + - API_DPA + agreedAt: + description: 'A date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Note: The regular expression provides static schematic guidance but does not reject all invalid dates.' + type: string + minLength: 20 + maxLength: 64 + pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$ + acknowledgedFees: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/Fee' + description: | + Fees the customer explicitly acknowledged before executing the purchase. + When the preceding quote's `fees` array is non-empty, this field must be present and contain the same entries verbatim (same types, amounts, and currencies). The server validates this against the locked quote token; a mismatch is rejected with `422 quote_mismatch`. This field is not in `required` because the obligation is conditional on quote state and cannot be expressed as a schema constraint — its absence is enforced at the API layer, not by validation tooling. + Contrast with `Registration.fees` (read-only): that field records what the server charged; this field records what the customer acknowledged. Both share the Fee type. + Omit when the quote carries no purchase fees (standard REGISTRY registration). + example: + - type: ONE_TIME_PREMIUM_DOMAIN_PURCHASE + fee: + value: 390000 + currencyCode: USD + agreedBy: + title: Consent Actor + description: | + Identifies who gave consent and who transmitted it. One uniform schema for all actor types. Self-reported by the caller and treated as supplementary attestation; the server verifies principal against the resolved auth identity (OAuth token + X-Shopper-Id) and rejects with consent_principal_mismatch on disagreement. The persisted consent record is the union of this block and the verified auth context. + principal identifies the account holder whose consent is being recorded. actor identifies the automated or intermediary party that transmitted the consent when different from the principal. For DIRECT, actor is omitted. + type: object + required: + - type + - principal + properties: + type: + title: Consent Actor Type + description: | + Who transmitted consent on behalf of the principal. DIRECT — the principal acted directly; actor is omitted. AGENT — an AI or automation acted on behalf of the principal. RESELLER — a reseller acted on behalf of a shopper. + type: string + example: DIRECT + principal: + type: string + description: | + The shopper or account ID whose consent is being recorded. Must match the shopper resolved from the OAuth token and X-Shopper-Id header; mismatch returns consent_principal_mismatch. + example: shopper_123 + actor: + type: string + description: | + The automated agent or system that transmitted the consent. Omitted for DIRECT. For AGENT, identifies the specific agent instance. For RESELLER, may identify the reseller when distinct from the OAuth token subject. + example: agent:claude/atlas-1 + ip: + type: string + description: | + The IP address of the principal at the time consent was expressed, if known. Optional — an absent IP with a verified principal is preferred over a fabricated one. + example: 203.0.113.7 + readOnly: true + DomainOperationStatus: + title: Domain Operation Status + description: | + The execution state of an asynchronous domain operation. CONFIRMED — operation has been accepted and is queued for execution. EXECUTING — operation is actively being processed by the registry or downstream systems. COMPLETED — operation finished successfully; result data is available. FAILED — operation terminated with an unrecoverable error; error detail is attached. + type: string + LinkDescription: + title: Link Description + type: object + description: A request-related [HATEOAS link](https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-hyperschema-02). + properties: + href: + description: The complete target URL, or link, to use in combination with the method to make the related call, as defined by [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570), with the addition of the `$`, `(`, and `)` characters for pre-processing. The `href` is the key HATEOAS component that links a completed call with a subsequent call. + type: string + format: uri + rel: + description: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which is an identifier for a link that unambiguously describes the semantics of the link. For values, see [Link Relationship Types](https://www.iana.org/assignments/link-relations/link-relations.xhtml). + type: string + title: + description: The link title. + type: string + targetMediaType: + description: The [RFC 2046-defined media type](https://www.ietf.org/rfc/rfc2046.txt) that describes the link target. + type: string + targetSchema: + description: The schema that describes the link target. + method: + description: The method to use to request the link target. For example, for HTTP, this might be `GET` or `DELETE`. + type: string + submissionMediaType: + description: The media type with which to submit data with the request. + type: string + default: application/json + submissionSchema: + description: The schema that describes the request data. + required: + - rel + - href + Term: + title: Term + description: | + The unit of a registration period. YEAR — registration period is expressed in years. + type: string + enum: + - YEAR + ErrorDetails: + title: Error Details + type: object + description: The error details. Required for client-side `4XX` errors. + properties: + field: + type: string + description: The field that caused the error. If the field is in the body, set this value to the JSON pointer to that field. Required for client-side errors. + value: + type: string + description: The value of the field that caused the error. + location: + type: string + description: The location of the field that caused the error. Value is `body`, `path`, or `query`. + default: body + issue: + type: string + description: The unique fine-grained application-level error code. + description: + type: string + description: The human-readable description for an issue. The description MAY change over the lifetime of an API, so clients MUST NOT depend on this value. + required: + - issue + Contact_v3: + title: Contact + description: | + An ICANN-required contact record for a domain registration. Covers registrant, administrative, technical, and billing roles. Identity fields are validated at registration-profile save time. + type: object + required: + - firstName + - lastName + - email + - phone + - address + properties: + firstName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's first (given) name. + example: Jane + lastName: + type: string + minLength: 1 + maxLength: 60 + description: The contact's last (family) name. + example: Smith + organization: + type: string + maxLength: 100 + description: | + Organization or company name. Required for contacts acting on behalf of a legal entity. Leave blank for individual registrants. + example: Example LLC + email: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + example: foo@bar.com + phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + example: + countryCode: '1' + nationalNumber: '4805551234' + address: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + CurrencyCode: + type: string + title: Currency Code + description: A three-character ISO-4217 currency code. + minLength: 3 + maxLength: 3 + ContactSource: + title: Contact Source + description: | + Where the resolved registrant contact came from. INLINE — contact was supplied via an inline registration profile on the request. PROFILE — contact was resolved from a named or default saved profile. ACCOUNT — contact was derived from the authenticated principal's account identity (no profile supplied or on file). + type: string + enum: + - INLINE + - PROFILE + - ACCOUNT + AgreementType: + title: Agreement Type + description: | + The type of legal agreement that must be accepted prior to executing a domain operation. Additional agreement types may be returned for specific TLDs or product combinations. API_DPA - API Domain Purchase Agreement. DNTA — Domain Name Transfer Agreement. DNPA — Domain Name Privacy Agreement. HTTPS_NOTICE — HTTPS notice acknowledgment for eligible TLDs. AURA — AU Domain Agreement for .au TLD registrations and transfers. CIRA — Canadian Internet Registration Authority Agreement for .ca TLD registrations and transfers. + type: string + FeeType: + title: Fee Type + description: | + The type of a fee charged at the time of purchase. ONE_TIME_PREMIUM_DOMAIN_PURCHASE — one-time acquisition cost charged by the aftermarket marketplace when purchasing a premium domain. + type: string + ConsentActor: + title: Consent Actor + description: | + Identifies who gave consent and who transmitted it. One uniform schema for all actor types. Self-reported by the caller and treated as supplementary attestation; the server verifies principal against the resolved auth identity (OAuth token + X-Shopper-Id) and rejects with consent_principal_mismatch on disagreement. The persisted consent record is the union of this block and the verified auth context. + principal identifies the account holder whose consent is being recorded. actor identifies the automated or intermediary party that transmitted the consent when different from the principal. For DIRECT, actor is omitted. + type: object + required: + - type + - principal + properties: + type: + title: Consent Actor Type + description: | + Who transmitted consent on behalf of the principal. DIRECT — the principal acted directly; actor is omitted. AGENT — an AI or automation acted on behalf of the principal. RESELLER — a reseller acted on behalf of a shopper. + type: string + example: DIRECT + principal: + type: string + description: | + The shopper or account ID whose consent is being recorded. Must match the shopper resolved from the OAuth token and X-Shopper-Id header; mismatch returns consent_principal_mismatch. + example: shopper_123 + actor: + type: string + description: | + The automated agent or system that transmitted the consent. Omitted for DIRECT. For AGENT, identifies the specific agent instance. For RESELLER, may identify the reseller when distinct from the OAuth token subject. + example: agent:claude/atlas-1 + ip: + type: string + description: | + The IP address of the principal at the time consent was expressed, if known. Optional — an absent IP with a verified principal is preferred over a fabricated one. + example: 203.0.113.7 + EmailAddress: + description: 'A valid, internationalized email address. Note: Up to 64 characters are allowed before and 255 characters are allowed after the @ sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted @ sign exists.' + type: string + minLength: 3 + maxLength: 254 + pattern: ^.+@[^"\-].+$ + Phone: + type: object + title: Phone + description: The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). + properties: + countryCode: + type: string + description: The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 3 + pattern: ^[0-9]{1,3}?$ + nationalNumber: + type: string + description: The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN). + minLength: 1 + maxLength: 14 + pattern: ^[0-9]{1,14}?$ + extensionNumber: + type: string + description: The extension number. + minLength: 1 + maxLength: 15 + pattern: ^[0-9]{1,15}?$ + required: + - countryCode + - nationalNumber + SimplePostalAddress: + type: object + title: Simple Postal Address (Coarse-Grained) + description: Simple postal address with coarse-grained fields. Do not use for international postal addresses. Use for backward compatibility only. Address does not contain a phone number. + properties: + line1: + type: string + description: The first line of the address. For example, number or street. + maxLength: 300 + line2: + type: string + description: The second line of the address. For example, suite or apartment number. + maxLength: 300 + city: + type: string + description: The city name. + maxLength: 300 + state: + type: string + description: The [code](https://about.usps.com/who/profile/history/state-abbreviations.htm) for a US state or the equivalent for other countries. + maxLength: 300 + countryCode: + $ref: '#/components/schemas/CountryCode' + description: 'The [two-character ISO 3166-1 code](https://en.wikipedia.org/wiki/ISO_3166-1) that identifies the country or region. Note: The country code for Great Britain is `GB` and not `UK` as used in the top-level domain names for that country. Use country code `C2` for China for comparable uncontrolled price (CUP) method, bank-card, and cross-border transactions.' + postalCode: + type: string + description: The postal code, which is the zip code or equivalent. Typically required for countries that have a postal code or an equivalent. See [Postal Code](https://en.wikipedia.org/wiki/Postal_code). + maxLength: 60 + required: + - line1 + - city + - countryCode + ConsentActorType: + title: Consent Actor Type + description: | + Who transmitted consent on behalf of the principal. DIRECT — the principal acted directly; actor is omitted. AGENT — an AI or automation acted on behalf of the principal. RESELLER — a reseller acted on behalf of a shopper. + type: string + CountryCode: + description: A two-character ISO 3166-1 code that identifies the country or region. + type: string + maxLength: 2 + minLength: 2 + pattern: ^([A-Z]{2}|C2)$ + requestBodies: + DomainPurchase: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPurchase' + application/xml: + schema: + $ref: '#/components/schemas/DomainPurchase' + text/xml: + schema: + $ref: '#/components/schemas/DomainPurchase' + description: An instance document expected to match the JSON schema returned by `./schema/{tld}` + required: true + DomainPurchaseV2: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPurchaseV2' + description: An instance document expected to match the JSON schema returned by `./schema/{tld}` + required: true + parameters: + xRequestId: + name: X-Request-Id + in: header + description: | + Optional client-generated request correlation identifier, propagated across services and returned in the response X-Request-Id header. + required: false + schema: + $ref: '#/components/schemas/Uuid' + iscCode: + name: iscCode + in: query + description: | + ISC (International Shopper Code) for pricing context. When provided, prices reflect the applicable rates for this ISC. + required: false + schema: + type: string + example: ISC_PARTNER_001 + idempotencyKey: + name: Idempotency-Key + in: header + description: | + Client-generated unique key (UUID recommended). Retrying a mutating request with the same Idempotency-Key returns the original response without creating a duplicate side effect. Required on all execute endpoints. + required: true + schema: + type: string + minLength: 16 + maxLength: 64 + example: 9f1c2e7a-4b3d-4e8f-a1c2-3d4e5f6a7b8c + registrationId: + name: registrationId + in: path + description: Server-assigned registration identifier. + required: true + schema: + $ref: '#/components/schemas/Uuid' + responses: + '400': + description: Malformed request syntax, missing required field, or invalid field type. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '401': + description: Authentication credentials are missing or invalid. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '403': + description: Authenticated identity is not authorized to perform this operation. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '404': + description: The requested resource was not found. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '409': + description: | + Conflict — the request cannot be completed in the current state. Used for quote lifecycle errors (quote_expired, quote_consumed), domain state conflicts such as domain_already_exists, and immutable DNS records (dns_record_not_mutable) such as GoDaddy-managed SOA and NS records. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '422': + description: | + Semantically invalid request — valid structure but violates a business rule, such as an ineligible contact, unsupported TLD, non-renewable domain status, or quote_mismatch (e.g. iscCode or acknowledgedFees that do not match the locked quote). + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + '429': + description: Too many requests — rate limit exceeded. + headers: + X-Request-Id: + $ref: '#/components/headers/xRequestId' + content: + application/json: + schema: + $ref: '#/components/schemas/Error_v3' + headers: + xRequestId: + description: Request correlation identifier echoed from the request or server-generated. + schema: + $ref: '#/components/schemas/Uuid' + location: + description: URL of the created or async resource. + schema: + type: string + format: uri + retryAfter: + description: | + Suggested number of seconds before the client should poll again. Present on 202 responses and non-terminal operation poll responses. + schema: + type: integer + example: 5 + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: 'GoDaddy Personal Access Token (PAT), passed as Authorization: Bearer .' + x-stackQL-resources: + agreements: + id: godaddy.registration.agreements + name: agreements + title: Agreements (Domains v1) + methods: + list: + operation: + $ref: '#/paths/~1v1~1domains~1agreements/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/agreements/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + availability: + id: godaddy.registration.availability + name: availability + title: Availability (Domains v1) + methods: + get: + operation: + $ref: '#/paths/~1v1~1domains~1available/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + check_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1available/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + transform: + type: golang_template_json_v0.3.0 + body: '{{ if eq (kindOf .domains) "string" }}{{ .domains }}{{ else }}{{ toJson .domains }}{{ end }}' + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/availability/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + purchases: + id: godaddy.registration.purchases + name: purchases + title: Purchases (Domains v1) + methods: + validate_contacts: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1contacts~1validate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1purchase/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + validate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1purchase~1validate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/purchases/methods/create' + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + purchase_schemas: + id: godaddy.registration.purchase_schemas + name: purchase_schemas + title: Purchase Schemas (Domains v1) + methods: + get: + operation: + $ref: '#/paths/~1v1~1domains~1purchase~1schema~1{tld}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/purchase_schemas/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + suggestions: + id: godaddy.registration.suggestions + name: suggestions + title: Suggestions (Domains v1) + methods: + list: + operation: + $ref: '#/paths/~1v1~1domains~1suggest/get' + response: + mediaType: application/json + openAPIDocKey: '200' + config: + queryParamPushdown: + top: + paramName: limit + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/suggestions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + tlds: + id: godaddy.registration.tlds + name: tlds + title: Tlds (Domains v1) + methods: + list: + operation: + $ref: '#/paths/~1v1~1domains~1tlds/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tlds/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + registrations_v2: + id: godaddy.registration.registrations_v2 + name: registrations_v2 + title: Registrations (Domains v2) + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1register/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + validate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1register~1validate/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/registrations_v2/methods/create' + update: [] + delete: [] + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + registration_schemas_v2: + id: godaddy.registration.registration_schemas_v2 + name: registration_schemas_v2 + title: Registration Schemas (Domains v2) + methods: + get: + operation: + $ref: '#/paths/~1domains~1register~1schema~1{tld}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/registration_schemas_v2/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.' + suggestions_v3: + id: godaddy.registration.suggestions_v3 + name: suggestions_v3 + title: Suggestions (Domains v3) + methods: + list: + operation: + $ref: '#/paths/~1v3~1domains~1suggestions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.items + config: + queryParamPushdown: + top: + paramName: pageSize + maxValue: 100 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/suggestions_v3/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. + availability_v3: + id: godaddy.registration.availability_v3 + name: availability_v3 + title: Availability (Domains v3) + methods: + get: + operation: + $ref: '#/paths/~1v3~1domains~1check-availability/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + check_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1domains~1check-availability/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/availability_v3/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. + registration_quotes_v3: + id: godaddy.registration.registration_quotes_v3 + name: registration_quotes_v3 + title: Registration Quotes (Domains v3) + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1domains~1registration-quotes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/registration_quotes_v3/methods/create' + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. + registrations_v3: + id: godaddy.registration.registrations_v3 + name: registrations_v3 + title: Registrations (Domains v3) + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1domains~1registrations/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v3~1domains~1registrations~1{registrationId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/registrations_v3/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/registrations_v3/methods/create' + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v3 API (Personal Access Token only). Mutations are asynchronous and return an operation to poll via domains.operations_v3. diff --git a/providers/src/godaddy/v00.00.00000/services/shoppers.yaml b/providers/src/godaddy/v00.00.00000/services/shoppers.yaml deleted file mode 100644 index 09655858..00000000 --- a/providers/src/godaddy/v00.00.00000/services/shoppers.yaml +++ /dev/null @@ -1,637 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: 1.0.0 -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/shoppers/subaccount: - post: - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ShopperId' - application/json: - schema: - $ref: '#/components/schemas/ShopperId' - application/xml: - schema: - $ref: '#/components/schemas/ShopperId' - text/javascript: - schema: - $ref: '#/components/schemas/ShopperId' - text/xml: - schema: - $ref: '#/components/schemas/ShopperId' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`subaccount` does not fulfill the schema' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: createSubaccount - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SubaccountCreate' - application/xml: - schema: - $ref: '#/components/schemas/SubaccountCreate' - text/xml: - schema: - $ref: '#/components/schemas/SubaccountCreate' - description: The subaccount to create - required: true - description: Create a Subaccount owned by the authenticated Reseller - '/v1/shoppers/{shopper_id}': - get: - parameters: - - description: Shopper whose details are to be retrieved - in: path - name: shopper_id - required: true - schema: - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Shopper' - application/json: - schema: - $ref: '#/components/schemas/Shopper' - application/xml: - schema: - $ref: '#/components/schemas/Shopper' - text/javascript: - schema: - $ref: '#/components/schemas/Shopper' - text/xml: - schema: - $ref: '#/components/schemas/Shopper' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: get - description: Get details for the specified Shopper - post: - parameters: - - description: The ID of the Shopper to update - in: path - name: shopper_id - required: true - schema: - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ShopperId' - application/json: - schema: - $ref: '#/components/schemas/ShopperId' - application/xml: - schema: - $ref: '#/components/schemas/ShopperId' - text/javascript: - schema: - $ref: '#/components/schemas/ShopperId' - text/xml: - schema: - $ref: '#/components/schemas/ShopperId' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: '`Shopper` does not fulfill the schema' - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: update - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ShopperUpdate' - application/xml: - schema: - $ref: '#/components/schemas/ShopperUpdate' - text/xml: - schema: - $ref: '#/components/schemas/ShopperUpdate' - description: The Shopper details to update - required: true - description: Update details for the specified Shopper -components: - schemas: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path - type: string - pathRelated: - description: 'JSONPath referring to a field containing an error, which is referenced by `path`' - format: json-path - type: string - required: - - path - - code - type: object - ErrorLimit: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - required: - - retryAfterSec - - code - type: object - Shopper: - properties: - email: - format: email - type: string - externalId: - type: integer - marketId: - default: en-US - format: bcp-47 - type: string - nameFirst: - type: string - nameLast: - type: string - shopperId: - type: string - required: - - shopperId - - nameFirst - - nameLast - - email - - marketId - type: object - ShopperId: - properties: - customerId: - description: Identifier for the Customer record associated with this Shopper record. This is an alternate identifier that some systems use to identify an individual shopper record - type: string - shopperId: - type: string - required: - - shopperId - type: object - ShopperUpdate: - properties: - email: - format: email - type: string - externalId: - type: integer - marketId: - format: bcp-47 - type: string - nameFirst: - type: string - nameLast: - type: string - type: object - SubaccountCreate: - properties: - email: - format: email - type: string - externalId: - type: integer - marketId: - default: en-US - format: bcp-47 - type: string - nameFirst: - type: string - nameLast: - type: string - password: - format: shopper-password - type: string - required: - - email - - password - - nameFirst - - nameLast - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - shoppers: - id: godaddy.shoppers.shoppers - name: shoppers - title: Shoppers - methods: - create_subaccount: - operation: - $ref: '#/paths/~1v1~1shoppers~1subaccount/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get: - operation: - $ref: '#/paths/~1v1~1shoppers~1{shopper_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update: - operation: - $ref: '#/paths/~1v1~1shoppers~1{shopper_id}/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/shoppers/methods/get' - insert: - - $ref: '#/components/x-stackQL-resources/shoppers/methods/create_subaccount' - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/subscriptions.yaml b/providers/src/godaddy/v00.00.00000/services/subscriptions.yaml deleted file mode 100644 index e5954ad5..00000000 --- a/providers/src/godaddy/v00.00.00000/services/subscriptions.yaml +++ /dev/null @@ -1,1118 +0,0 @@ -openapi: 3.0.0 -info: - title: api.godaddy.com - version: 0.0.1 -servers: - - url: 'https://api.godaddy.com/' -paths: - /v1/subscriptions: - get: - parameters: - - description: Shopper ID to return subscriptions for when not using JWT - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: The market that the response should be formatted for - in: header - name: X-Market-Id - required: false - schema: - default: en-US - type: string - - description: Only return Subscriptions with the specified product groups - in: query - name: productGroupKeys - required: false - schema: - items: - type: string - type: array - - description: Optional details to be included in the response - in: query - name: includes - required: false - schema: - enum: - - addons - - relations - items: - type: string - type: array - - description: Number of Subscriptions to skip before starting to return paged results (must be a multiple of the limit) - in: query - name: offset - required: false - schema: - default: 0 - type: integer - - description: 'Number of Subscriptions to retrieve in this page, starting after offset' - in: query - name: limit - required: false - schema: - default: 25 - maximum: 2000 - minimum: 1 - type: integer - - description: Property name that will be used to sort results. "-" indicates descending - in: query - name: sort - required: false - schema: - default: '-expiresAt' - enum: - - expiresAt - - '-expiresAt' - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/SubscriptionList' - application/json: - schema: - $ref: '#/components/schemas/SubscriptionList' - application/xml: - schema: - $ref: '#/components/schemas/SubscriptionList' - text/javascript: - schema: - $ref: '#/components/schemas/SubscriptionList' - text/xml: - schema: - $ref: '#/components/schemas/SubscriptionList' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Invalid query parameter (custom message returned for each parameter) - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: list - description: Retrieve a list of Subscriptions for the specified Shopper - /v1/subscriptions/productGroups: - get: - parameters: - - description: Shopper ID to return data for when not using JWT - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: The market that the response should be formatted for - in: header - name: X-Market-Id - required: false - schema: - default: en-US - type: string - responses: - '200': - content: - application/javascript: - schema: - items: - $ref: '#/components/schemas/ProductGroup' - type: array - application/json: - schema: - items: - $ref: '#/components/schemas/ProductGroup' - type: array - application/xml: - schema: - items: - $ref: '#/components/schemas/ProductGroup' - type: array - text/javascript: - schema: - items: - $ref: '#/components/schemas/ProductGroup' - type: array - text/xml: - schema: - items: - $ref: '#/components/schemas/ProductGroup' - type: array - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - operationId: productGroups - description: Retrieve a list of ProductGroups for the specified Shopper - '/v1/subscriptions/{subscription_id}': - delete: - parameters: - - description: Shopper ID to cancel subscriptions for when not using JWT - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Unique identifier of the Subscription to cancel - in: path - name: subscription_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: The domain alert Subscription cannot be cancelled - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: cancel - description: Cancel the specified Subscription - get: - parameters: - - description: 'Shopper ID to be operated on, if different from JWT' - in: header - name: X-Shopper-Id - required: false - schema: - type: string - - description: Unique identifier of the Market in which the request is happening - in: header - name: X-Market-Id - required: false - schema: - default: en-US - type: string - - description: Unique identifier of the Subscription to retrieve - in: path - name: subscription_id - required: true - schema: - type: string - responses: - '200': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Subscription' - application/json: - schema: - $ref: '#/components/schemas/Subscription' - application/xml: - schema: - $ref: '#/components/schemas/Subscription' - text/javascript: - schema: - $ref: '#/components/schemas/Subscription' - text/xml: - schema: - $ref: '#/components/schemas/Subscription' - description: Request was successful - '400': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authenticated user is not allowed access - '404': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Resource not found - '422': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Invalid Subscription Id - '429': - content: - application/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/json: - schema: - $ref: '#/components/schemas/ErrorLimit' - application/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/javascript: - schema: - $ref: '#/components/schemas/ErrorLimit' - text/xml: - schema: - $ref: '#/components/schemas/ErrorLimit' - description: Too many requests received within interval - '500': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - '504': - content: - application/javascript: - schema: - $ref: '#/components/schemas/Error' - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - text/javascript: - schema: - $ref: '#/components/schemas/Error' - text/xml: - schema: - $ref: '#/components/schemas/Error' - description: Gateway timeout - security: - - sso_key: [] - operationId: get - description: Retrieve details for the specified Subscription - patch: - parameters: - - description: Unique identifier of the Subscription to update - in: path - name: subscription_id - required: true - schema: - type: string - responses: - '200': - description: No response was specified - '204': - description: Request was successful - '400': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - description: Request was malformed - '401': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - description: Authentication info not sent or invalid - '403': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - description: This method only supports JWT authentication - '404': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - description: Payment profile not found - '500': - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - application/xml: - schema: - $ref: '#/components/schemas/Error' - description: Internal server error - security: - - sso_key: [] - description: 'Only Subscription properties that can be changed without immediate financial impact can be modified via PATCH, whereas some properties can be changed by purchasing a renewal This endpoint only supports JWT authentication' - operationId: update - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriptionUpdate' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/SubscriptionUpdate' - application/xml: - schema: - $ref: '#/components/schemas/SubscriptionUpdate' - text/xml: - schema: - $ref: '#/components/schemas/SubscriptionUpdate' - description: Details of the Subscription to change - required: true - summary: Update details for the specified Subscription -components: - schemas: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - required: - - code - type: object - ErrorField: - properties: - code: - description: 'Short identifier for the error, suitable for indicating the specific error within client code' - format: constant - type: string - message: - description: 'Human-readable, English description of the problem with the contents of the field' - type: string - path: - description: | - JSONPath referring to a field containing an error - OR - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` - format: json-path - type: string - pathRelated: - description: 'JSONPath referring to a field containing an error, which is referenced by `path`' - format: json-path - type: string - required: - - path - - code - type: object - ErrorLimit: - 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' - minItems: 1 - type: array - message: - description: 'Human-readable, English description of the error' - type: string - retryAfterSec: - description: Number of seconds to wait before attempting a similar request - format: integer-positive - type: integer - required: - - retryAfterSec - - code - type: object - Pagination: - properties: - first: - description: URI to access the first page - type: string - last: - description: URI to access the last page - type: string - next: - description: URI to access the next page - type: string - previous: - description: URI to access the previous page - type: string - total: - description: Number of records available - type: integer - type: object - ProductGroup: - properties: - productGroupKey: - description: Primary key of a grouping of related Subscriptions - type: string - subscriptionCount: - description: The number of Subscriptions that the shopper owns in this group - type: integer - required: - - productGroupKey - - subscriptionCount - type: object - Subscription: - properties: - addons: - description: An array of additional products that have been purchased to augment this Subscription - items: - $ref: '#/components/schemas/SubscriptionAddon' - minItems: 0 - type: array - billing: - $ref: '#/components/schemas/SubscriptionBilling' - cancelable: - description: Whether or not the Subscription is allowed to be canceled - type: boolean - createdAt: - description: When the Subscription was created - format: iso-datetime - type: string - expiresAt: - description: When the Subscription will expire - format: iso-datetime - type: string - label: - description: A human readable description of this Subscription - type: string - launchUrl: - description: The url to use or manage this Subscription's active product - format: url - type: string - paymentProfileId: - description: Unique identifier of the payment profile that will be used to automatically renew this Subscription - type: integer - priceLocked: - description: Whether the renewal price will be based from the list price or a locked-in price for this shopper - type: boolean - product: - $ref: '#/components/schemas/SubscriptionProduct' - relations: - $ref: '#/components/schemas/SubscriptionRelations' - renewAuto: - description: Whether or not the Subscription is set to be automatically renewed via the billing agent - type: boolean - renewable: - description: Whether or not the Subscription is allowed to be renewed - type: boolean - status: - description: Whether the Subscription is active or the specific non-active state - enum: - - ACTIVE - - PENDING - - CANCELED - type: string - subscriptionId: - description: Unique identifier of the Subscription - type: string - upgradeable: - description: Whether or not the Subscription is allowed to be upgraded - type: boolean - required: - - subscriptionId - - status - - product - - createdAt - - billing - - renewable - - upgradeable - - priceLocked - - renewAuto - type: object - SubscriptionAddon: - properties: - commitment: - description: The financial commitment the customer has in the product - enum: - - PAID - - FREE - - TRIAL - type: string - pfid: - description: Unique identifier of the add-in product - type: integer - quantity: - type: integer - required: - - pfid - - commitment - - quantity - type: object - SubscriptionBilling: - properties: - commitment: - description: The financial commitment the customer has in the product - enum: - - PAID - - FREE - - TRIAL - type: string - pastDueTypes: - description: The types of charges that are past due when `status` is PAST_DUE - items: - enum: - - ADDON - - BURST - - SUBSCRIPTION - type: string - type: array - renewAt: - description: The point in time after which the Subscription will bill for automatic renewal - format: iso-datetime - type: string - status: - description: Whether payments are past due - enum: - - CURRENT - - PAST_DUE - type: string - required: - - renewAt - - status - - commitment - type: object - SubscriptionList: - properties: - pagination: - $ref: '#/components/schemas/Pagination' - description: Pagination information - subscriptions: - description: A collection of subscriptions - items: - $ref: '#/components/schemas/Subscription' - type: array - required: - - subscriptions - - pagination - type: object - SubscriptionProduct: - properties: - label: - description: A human readable description of the Product that is subscribed - type: string - namespace: - description: Grouping of related Subscriptions - type: string - pfid: - description: Unique identifier of the Product that is subscribed - type: integer - productGroupKey: - description: Primary key of a grouping of related Subscriptions - type: string - renewalPeriod: - description: The number of `renewalPeriodUnits` that will be added by the `renewalPfid` - type: integer - renewalPeriodUnit: - description: The unit of time that `renewalPeriod` is measured in - enum: - - MONTH - - QUARTER - - SEMI_ANNUAL - - YEAR - type: string - renewalPfid: - description: Unique identifier of the renewal Product - type: integer - supportBillOn: - description: Whether the product supports the `billOn` option on the renewal endpoint - type: boolean - required: - - pfid - - label - - renewalPfid - - renewalPeriod - - renewalPeriodUnit - - productGroupKey - - supportBillOn - - namespace - type: object - SubscriptionRelations: - properties: - children: - description: A set of related Subscriptions that will be canceled automatically if this Subscription is canceled - items: - type: string - type: array - parent: - description: Unique identifier of this Subscription's parent - type: string - type: object - SubscriptionUpdate: - properties: - paymentProfileId: - description: Unique identifier of the payment profile you want to be used for automatic renewal - type: integer - renewAuto: - description: Whether or not you want the Subscription renew automatically - type: boolean - type: object - securitySchemes: - sso_key: - type: apiKey - x-stackQL-resources: - subscriptions: - id: godaddy.subscriptions.subscriptions - name: subscriptions - title: Subscriptions - methods: - list: - operation: - $ref: '#/paths/~1v1~1subscriptions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.subscriptions - _list: - operation: - $ref: '#/paths/~1v1~1subscriptions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - product_groups: - operation: - $ref: '#/paths/~1v1~1subscriptions~1productGroups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - cancel: - operation: - $ref: '#/paths/~1v1~1subscriptions~1{subscription_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - get: - operation: - $ref: '#/paths/~1v1~1subscriptions~1{subscription_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update: - operation: - $ref: '#/paths/~1v1~1subscriptions~1{subscription_id}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/subscriptions/methods/get' - - $ref: '#/components/x-stackQL-resources/subscriptions/methods/list' - insert: [] - update: [] - delete: [] diff --git a/providers/src/godaddy/v00.00.00000/services/transfers.yaml b/providers/src/godaddy/v00.00.00000/services/transfers.yaml new file mode 100644 index 00000000..afcf5dfe --- /dev/null +++ b/providers/src/godaddy/v00.00.00000/services/transfers.yaml @@ -0,0 +1,1844 @@ +openapi: 3.1.1 +info: + title: GoDaddy Transfers + description: 'Inbound and outbound domain transfers: the Domains v1 transfer-in order and the Domains v2 asynchronous transfer workflow (accept, cancel, restart, retry, transfer out, accept or reject an outbound transfer).' + version: v00.00.00000 +servers: + - url: https://api.godaddy.com + description: GoDaddy production API +security: + - bearerAuth: [] +tags: [] +paths: + /v1/domains/{domain}/transfer: + post: + tags: + - Transfer Domains + parameters: + - description: 'Shopper ID which owns the domain. NOTE: This is only required if you are a Reseller managing a domain purchased outside the scope of your reseller account.' + in: header + name: X-Shopper-Id + required: false + schema: + type: string + - description: Domain to transfer in + in: path + name: domain + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainTransferIn' + application/xml: + schema: + $ref: '#/components/schemas/DomainTransferIn' + text/xml: + schema: + $ref: '#/components/schemas/DomainTransferIn' + description: Details for domain transfer purchase + required: true + responses: + '200': + description: Request was successful + content: + application/json: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + application/javascript: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + application/xml: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + text/javascript: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + text/xml: + schema: + $ref: '#/components/schemas/DomainPurchaseResponse' + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '401': + description: Authentication info not sent or invalid + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '403': + description: Authenticated user is not allowed access + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '409': + description: '`domain` (domain) isn''t available for transfer' + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '422': + description: | + - Based on restrictions declared in JSON schema returned by `./schema/{tld}` + - Cannot convert domain label error + - Domain is missing IDN script + - Domain segment ends with dash + - Domain starts with dash + - Domain uses unsupported IDN script + - End-user must read and consent to all of the following legal agreements + - FQDN fails generic validity regex + - Invalid character(s) error + - Invalid period range + - Invalid tld error + - Non-IDN domain name must not have dashes at the third and fourth position + - Reserved name error + - `authCode` cannot be empty + - `domain` must match `sld.tld` + - domain must be specified + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + application/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/javascript: + schema: + $ref: '#/components/schemas/ErrorLimit' + text/xml: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + application/javascript: + schema: + $ref: '#/components/schemas/Error' + application/xml: + schema: + $ref: '#/components/schemas/Error' + text/javascript: + schema: + $ref: '#/components/schemas/Error' + text/xml: + schema: + $ref: '#/components/schemas/Error' + operationId: transferIn + summary: Purchase and start or restart transfer process + description: Initiates an inbound domain transfer from another registrar. Requires an authcode and a consent object with agreement keys. Charges a transfer fee. + /domains/{domain}/transfer: + post: + tags: + - Transfer Domains + summary: Initiate inbound transfer + description: Initiates an inbound domain transfer from another registrar. Requires an authcode and consent object. Returns 202 - poll GET .../actions/TRANSFER until COMPLETED, FAILED, or CANCELLED. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain to transfer in + name: domain + in: path + required: true + schema: + type: string + requestBody: + $ref: '#/components/requestBodies/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 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '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: The domain does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: There is already a similar action processing + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Based on restrictions declared in JSON schema returned by `./schema/{tld}` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransfer + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferInAccept: + post: + tags: + - Transfer Domains + summary: Accept the inbound transfer + description: Explicitly accepts an in-progress inbound transfer to expedite the process. Returns 202 - poll GET .../actions/TRANSFER_IN_ACCEPT until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - name: domain + required: true + in: path + description: Domain to accept the transfer in for + schema: + type: string + requestBody: + $ref: '#/components/requestBodies/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 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '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: The domain does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The domain status does not allow performing the operation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferInAccept + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferInCancel: + post: + tags: + - Transfer Domains + summary: Cancel the inbound transfer + description: Cancels an in-progress inbound transfer. Returns 202 - poll GET .../actions/TRANSFER_IN_CANCEL until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain to cancel the transfer in for + name: domain + in: path + required: true + schema: + type: string + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_IN_CANCEL to poll status + '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: The domain does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: There is already a similar action processing + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferInCancel + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferInRestart: + post: + tags: + - Transfer Domains + summary: Restart the inbound transfer from the beginning + description: Restarts a stalled inbound transfer from the beginning. Returns 202 - poll GET .../actions/TRANSFER_IN_RESTART until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - name: domain + required: true + in: path + description: Domain to restart the transfer in + schema: + type: string + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_IN_RESTART to poll status + '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: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The domain status does not allow performing the operation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferInRestart + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferInRetry: + post: + tags: + - Transfer Domains + summary: Retry the inbound transfer with a new authorization code + description: Retries a failed inbound transfer with a new authorization code. Returns 202 - poll GET .../actions/TRANSFER_IN_RETRY until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - name: domain + required: true + in: path + description: Domain to retry the transfer in + schema: + type: string + requestBody: + $ref: '#/components/requestBodies/DomainTransferAuthCode' + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_IN_RETRY to poll status + '400': + description: Request was malformed + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '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: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: The domain status does not allow performing the operation + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Request body doesn't fulfill schema, see details in `fields` + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferInRetry + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferOut: + post: + tags: + - Transfer Domains + summary: Initiate an outbound transfer + description: Initiates an outbound transfer for .uk domains. Returns 202 - poll the actions endpoint for completion. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain to initiate the transfer out for + name: domain + in: path + required: true + schema: + type: string + - description: Registrar tag to push transfer to + name: registrar + in: query + required: true + schema: + type: string + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_OUT_REQUESTED to poll status + '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: The domain does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: There is already a similar action processing + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '422': + description: Domain invalid. TLD must be .uk + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferOut + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferOutAccept: + post: + tags: + - Transfer Domains + summary: Accept the outbound transfer + description: Accepts a pending outbound transfer request. Returns 202 - poll GET .../actions/TRANSFER_OUT_ACCEPT until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain to accept the transfer out for + name: domain + in: path + required: true + schema: + type: string + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_OUT_ACCEPT to poll status + '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: The domain does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: There is already a similar action processing + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferOutAccept + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID + /domains/{domain}/transferOutReject: + post: + tags: + - Transfer Domains + summary: Reject the outbound transfer + description: Rejects a pending outbound transfer request, keeping the domain at GoDaddy. Returns 202 - poll GET .../actions/TRANSFER_OUT_REJECT until the action reaches a terminal state. + parameters: + - name: X-Request-Id + required: false + in: header + description: A client provided identifier for tracking this request. + schema: + type: string + - description: Domain to reject the transfer out for + name: domain + in: path + required: true + schema: + type: string + - name: reason + description: Transfer out reject reason + in: query + required: false + schema: + type: string + enum: + - EVIDENCE_OF_FRAUD + - URDP_ACTION + - COURT_ORDER + - DISPUTE_OVER_IDENTITY + - NO_PAYMENT_FOR_PREVIOUS_REGISTRATION_PERIOD + - WRITTEN_OBJECTION + - TRANSFERRED_WITHIN_SIXTY_DAYS + responses: + '202': + description: Request Accepted. You may use GET /v2/customers/{customerId}/domains/{domain}/actions/TRANSFER_OUT_REJECT to poll status + '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: The domain does not exist + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '409': + description: There is already a similar action processing + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + '429': + description: Too many requests received within interval + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorLimit' + '500': + description: Internal server error + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + operationId: postDomainsByDomainTransferOutReject + servers: + - url: https://api.godaddy.com/v2/customers/{customer_id} + variables: + customer_id: + description: GoDaddy customer identifier (UUID, not the numeric shopper number). Resolved from the GODADDY_CUSTOMER_ID environment variable when it is set (x-stackQL-envVar); otherwise it must be supplied on every query as WHERE customer_id = ''. A WHERE value always takes precedence over the environment. API resellers acting on behalf of a subaccount pass the subaccount customer identifier. + x-stackQL-envVar: GODADDY_CUSTOMER_ID +components: + schemas: + DomainTransferIn: + properties: + authCode: + description: Authorization code from registrar for transferring a domain + type: string + consent: + $ref: '#/components/schemas/Consent' + period: + default: 1 + description: Can be more than 1 but no more than 10 years total including current registration length + format: integer-positive + maximum: 10 + minimum: 1 + type: integer + privacy: + default: false + description: Whether or not privacy has been requested + type: boolean + renewAuto: + default: true + description: Whether or not the domain should be configured to automatically renew + type: boolean + contactAdmin: + $ref: '#/components/schemas/Contact' + contactBilling: + $ref: '#/components/schemas/Contact' + contactRegistrant: + $ref: '#/components/schemas/Contact' + contactTech: + $ref: '#/components/schemas/Contact' + required: + - authCode + - consent + type: object + DomainPurchaseResponse: + properties: + currency: + default: USD + description: Currency in which the `total` is listed + format: iso-currency-code + type: string + itemCount: + description: Number items included in the order + format: integer-positive + type: integer + orderId: + description: Unique identifier of the order processed to purchase the domain + format: integer-positive + type: integer + total: + description: Total cost of the domain and any selected add-ons + format: currency-micro-unit + type: integer + required: + - orderId + - itemCount + - total + type: object + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + required: + - code + type: object + ErrorLimit: + 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_v2' + type: array + message: + description: Human-readable, English description of the error + type: string + retryAfterSec: + description: Number of seconds to wait before attempting a similar request + format: integer-positive + type: integer + required: + - retryAfterSec + - code + type: object + Consent: + properties: + agreedAt: + description: Timestamp indicating when the end-user consented to these legal agreements + format: iso-datetime + type: string + agreedBy: + description: Originating client IP address of the end-user's computer when they consented to these legal agreements + type: string + agreementKeys: + description: Unique identifiers of the legal agreements to which the end-user has agreed, as returned from the/domains/agreements endpoint + items: + type: string + type: array + required: + - agreementKeys + - agreedBy + - agreedAt + type: object + Contact: + properties: + addressMailing: + $ref: '#/components/schemas/Address' + email: + format: email + type: string + fax: + format: phone + type: string + jobTitle: + type: string + nameFirst: + format: person-name + type: string + nameLast: + format: person-name + type: string + nameMiddle: + type: string + organization: + format: organization-name + type: string + phone: + format: phone + type: string + required: + - nameFirst + - nameLast + - email + - phone + - addressMailing + type: object + ErrorField: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + - JSONPath referring to a field containing an error + **OR** + - JSONPath referring to a field that refers to an object containing an error, with more detail in `pathRelated` + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + Address: + properties: + address1: + format: street-address + type: string + address2: + format: street-address2 + type: string + city: + format: city-name + type: string + country: + default: US + description: |- + Two-letter ISO country code to be used as a hint for target region + NOTE: These are sample values, there are many + more + enum: + - AC + - AD + - AE + - AF + - AG + - AI + - AL + - AM + - AO + - AQ + - AR + - AS + - AT + - AU + - AW + - AX + - AZ + - BA + - BB + - BD + - BE + - BF + - BG + - BH + - BI + - BJ + - BM + - BN + - BO + - BQ + - BR + - BS + - BT + - BV + - BW + - BY + - BZ + - CA + - CC + - CD + - CF + - CG + - CH + - CI + - CK + - CL + - CM + - CN + - CO + - CR + - CV + - CW + - CX + - CY + - CZ + - DE + - DJ + - DK + - DM + - DO + - DZ + - EC + - EE + - EG + - EH + - ER + - ES + - ET + - FI + - FJ + - FK + - FM + - FO + - FR + - GA + - GB + - GD + - GE + - GF + - GG + - GH + - GI + - GL + - GM + - GN + - GP + - GQ + - GR + - GS + - GT + - GU + - GW + - GY + - HK + - HM + - HN + - HR + - HT + - HU + - ID + - IE + - IL + - IM + - IN + - IO + - IQ + - IS + - IT + - JE + - JM + - JO + - JP + - KE + - KG + - KH + - KI + - KM + - KN + - KR + - KV + - KW + - KY + - KZ + - LA + - LB + - LC + - LI + - LK + - LR + - LS + - LT + - LU + - LV + - LY + - MA + - MC + - MD + - ME + - MG + - MH + - MK + - ML + - MM + - MN + - MO + - MP + - MQ + - MR + - MS + - MT + - MU + - MV + - MW + - MX + - MY + - MZ + - NA + - NC + - NE + - NF + - NG + - NI + - NL + - 'NO' + - NP + - NR + - NU + - NZ + - OM + - PA + - PE + - PF + - PG + - PH + - PK + - PL + - PM + - PN + - PR + - PS + - PT + - PW + - PY + - QA + - RE + - RO + - RS + - RU + - RW + - SA + - SB + - SC + - SE + - SG + - SH + - SI + - SJ + - SK + - SL + - SM + - SN + - SO + - SR + - ST + - SV + - SX + - SZ + - TC + - TD + - TF + - TG + - TH + - TJ + - TK + - TL + - TM + - TN + - TO + - TP + - TR + - TT + - TV + - TW + - TZ + - UA + - UG + - UM + - US + - UY + - UZ + - VA + - VC + - VE + - VG + - VI + - VN + - VU + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + format: iso-country-code + type: string + postalCode: + description: Postal or zip code + format: postal-code + type: string + state: + description: State or province or territory + format: state-province-territory + type: string + required: + - address1 + - city + - state + - postalCode + - country + type: object + DomainTransferInV2: + additionalProperties: false + properties: + authCode: + type: string + description: Authorization code from registrar for transferring a domain + period: + type: integer + format: integer-positive + default: 1 + minimum: 1 + maximum: 10 + pattern: ^[0-9]+$ + description: Can be more than 1 but no more than 10 years total including current registration length + renewAuto: + type: boolean + default: true + description: Whether or not the domain should be configured to automatically renew + privacy: + type: boolean + default: false + description: Whether or not privacy has been requested + identityDocumentId: + type: string + description: Unique identifier of the identify document that the user wants to associate with the domain being transferred in. This is required only if the gaining registry has a requirement for an approved identity document + consent: + $ref: '#/components/schemas/ConsentV2' + contacts: + $ref: '#/components/schemas/DomainContactsCreateV2' + metadata: + type: string + description: The domain eligibility data fields as specified by GET /v2/customers/{customerId}/domains/register/schema/{tld} (opaque JSON object) + required: + - authCode + - consent + type: object + ErrorField_v2: + properties: + code: + description: Short identifier for the error, suitable for indicating the specific error within client code + format: constant + type: string + message: + description: Human-readable, English description of the problem with the contents of the field + type: string + path: + description: |- + JSONPath referring to a field containing an error, or a field that refers to an + object containing an error (with more detail in `pathRelated`). + format: json-path + type: string + pathRelated: + description: JSONPath referring to a field containing an error, which is referenced by `path` + format: json-path + type: string + required: + - path + - code + type: object + DomainTransferAuthCode: + type: object + additionalProperties: false + properties: + authCode: + description: Authorization code for transferring the Domain + type: string + required: + - authCode + ConsentV2: + additionalProperties: false + properties: + agreementKeys: + type: array + items: + type: string + description: Unique identifiers of the legal agreements to which the end-user has agreed, as returned from the/domains/agreements endpoint + price: + type: integer + format: currency-micro-unit + description: Price of the domain excluding taxes or fees. Please use GET /v1/domains/available to retrieve the price and currency for the domain + currency: + type: string + format: iso-currency-code + default: USD + pattern: ^[A-Z][A-Z][A-Z]$ + description: Currency in which the `price` is listed + registryPremiumPricing: + type: boolean + description: Only required for hosted registrar if domain is premium. If true indicates that the `price` and `currency` listed are the registry premium price and currency for the domain + agreedBy: + type: string + description: Originating client IP address of the end-user's computer when they consented to these legal agreements + agreedAt: + type: string + format: iso-datetime + description: Timestamp indicating when the end-user consented to these legal agreements + claimToken: + description: The trademark claim token, only needed if the domain has an active trademark claim + type: string + required: + - agreementKeys + - price + - currency + - agreedBy + - agreedAt + type: object + DomainContactsCreateV2: + additionalProperties: false + type: object + properties: + admin: + $ref: '#/components/schemas/ContactDomainCreate' + adminId: + description: | + Unique identifier of the contact that the user wants to use for the domain admin contact. This can be specified instead of the `admin` property. + type: string + billing: + $ref: '#/components/schemas/ContactDomainCreate' + billingId: + description: | + Unique identifier of the contact that the user wants to use for the domain billing contact. This can be specified instead of the `billing` property. + type: string + registrant: + $ref: '#/components/schemas/ContactDomainCreate' + registrantId: + description: | + Unique identifier of the contact that the user wants to use for the domain registrant contact. This can be specified instead of the `registrant` property. + type: string + tech: + $ref: '#/components/schemas/ContactDomainCreate' + techId: + description: | + Unique identifier of the contact that the user wants to use for the domain tech contact. This can be specified instead of the `tech` property. + type: string + ContactDomainCreate: + additionalProperties: false + properties: + encoding: + type: string + default: ASCII + enum: + - ASCII + - UTF-8 + description: |- + The encoding of the contact data + + - **ASCII** — Data contains only ASCII characters that are not region or language specific. + - **UTF-8** — Data contains characters that are specific to a region or language. + nameFirst: + type: string + format: person-name + maxLength: 30 + nameMiddle: + type: string + nameLast: + type: string + format: person-name + maxLength: 30 + organization: + type: string + format: organization-name + maxLength: 100 + jobTitle: + type: string + email: + type: string + format: email + maxLength: 80 + phone: + type: string + format: phone + maxLength: 17 + fax: + type: string + format: phone + maxLength: 17 + addressMailing: + $ref: '#/components/schemas/Address_v2' + metadata: + type: string + description: The contact eligibility data fields as specified by GET /v2/customers/{customerId}/domains/contacts/schema/{tld} (opaque JSON object) + required: + - encoding + - nameFirst + - nameLast + - email + - phone + - addressMailing + type: object + Address_v2: + properties: + address1: + format: street-address + type: string + address2: + format: street-address2 + type: string + city: + format: city-name + type: string + country: + default: US + description: |- + Two-letter ISO country code to be used as a hint for target region. + NOTE: These are sample values; see [ISO country codes](http://www.iso.org/iso/country_codes.htm). + enum: + - AC + - AD + - AE + - AF + - AG + - AI + - AL + - AM + - AO + - AQ + - AR + - AS + - AT + - AU + - AW + - AX + - AZ + - BA + - BB + - BD + - BE + - BF + - BG + - BH + - BI + - BJ + - BM + - BN + - BO + - BQ + - BR + - BS + - BT + - BV + - BW + - BY + - BZ + - CA + - CC + - CD + - CF + - CG + - CH + - CI + - CK + - CL + - CM + - CN + - CO + - CR + - CV + - CW + - CX + - CY + - CZ + - DE + - DJ + - DK + - DM + - DO + - DZ + - EC + - EE + - EG + - EH + - ER + - ES + - ET + - FI + - FJ + - FK + - FM + - FO + - FR + - GA + - GB + - GD + - GE + - GF + - GG + - GH + - GI + - GL + - GM + - GN + - GP + - GQ + - GR + - GS + - GT + - GU + - GW + - GY + - HK + - HM + - HN + - HR + - HT + - HU + - ID + - IE + - IL + - IM + - IN + - IO + - IQ + - IS + - IT + - JE + - JM + - JO + - JP + - KE + - KG + - KH + - KI + - KM + - KN + - KR + - KV + - KW + - KY + - KZ + - LA + - LB + - LC + - LI + - LK + - LR + - LS + - LT + - LU + - LV + - LY + - MA + - MC + - MD + - ME + - MG + - MH + - MK + - ML + - MM + - MN + - MO + - MP + - MQ + - MR + - MS + - MT + - MU + - MV + - MW + - MX + - MY + - MZ + - NA + - NC + - NE + - NF + - NG + - NI + - NL + - 'NO' + - NP + - NR + - NU + - NZ + - OM + - PA + - PE + - PF + - PG + - PH + - PK + - PL + - PM + - PN + - PR + - PS + - PT + - PW + - PY + - QA + - RE + - RO + - RS + - RU + - RW + - SA + - SB + - SC + - SE + - SG + - SH + - SI + - SJ + - SK + - SL + - SM + - SN + - SO + - SR + - ST + - SV + - SX + - SZ + - TC + - TD + - TF + - TG + - TH + - TJ + - TK + - TL + - TM + - TN + - TO + - TP + - TR + - TT + - TV + - TW + - TZ + - UA + - UG + - UM + - US + - UY + - UZ + - VA + - VC + - VE + - VG + - VI + - VN + - VU + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + format: iso-country-code + type: string + postalCode: + description: Postal or zip code + format: postal-code + type: string + state: + description: State or province or territory + format: state-province-territory + type: string + required: + - address1 + - city + - state + - postalCode + - country + type: object + requestBodies: + DomainTransferInV2: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainTransferInV2' + description: Details for domain transfer purchase + required: true + DomainTransferAuthCode: + content: + application/json: + schema: + $ref: '#/components/schemas/DomainTransferAuthCode' + description: An Authorization code for transferring the Domain + required: true + securitySchemes: + bearerAuth: + type: http + scheme: bearer + description: 'GoDaddy Personal Access Token (PAT), passed as Authorization: Bearer .' + x-stackQL-resources: + transfers: + id: godaddy.transfers.transfers + name: transfers + title: Transfers (Domains v1) + methods: + transfer_in: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1transfer/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + description: GoDaddy Domains v1 API. Accepts a Personal Access Token (Bearer) or a classic sso-key credential. + transfers_v2: + id: godaddy.transfers.transfers_v2 + name: transfers_v2 + title: Transfers (Domains v2) + methods: + transfer_in: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1{domain}~1transfer/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + accept_transfer_in: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1{domain}~1transferInAccept/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + cancel_transfer_in: + operation: + $ref: '#/paths/~1domains~1{domain}~1transferInCancel/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + restart_transfer_in: + operation: + $ref: '#/paths/~1domains~1{domain}~1transferInRestart/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + retry_transfer_in: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1domains~1{domain}~1transferInRetry/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + transfer_out: + operation: + $ref: '#/paths/~1domains~1{domain}~1transferOut/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + accept_transfer_out: + operation: + $ref: '#/paths/~1domains~1{domain}~1transferOutAccept/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + reject_transfer_out: + operation: + $ref: '#/paths/~1domains~1{domain}~1transferOutReject/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + description: 'GoDaddy Domains v2 API, scoped to a customer: customer_id is resolved from the GODADDY_CUSTOMER_ID environment variable when set, otherwise it is a required parameter (a WHERE value always wins). Accepts a Personal Access Token (Bearer) or a classic sso-key credential.'