openapi: 3.2.0 info: title: Godaddy Subscriptions API servers: - url: https://api.ote-godaddy.com tags: - name: Subscriptions paths: /v1/subscriptions: get: tags: - Subscriptions parameters: - description: A unique application key identifying the source of the request. This is required for request tracking in: header name: X-App-Key required: true schema: type: string - 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: type: string default: en-US - description: Only return Subscriptions with the specified product groups in: query name: productGroupKeys required: false schema: type: array items: type: string - description: Optional details to be included in the response in: query name: includes required: false schema: type: array items: type: string enum: - addons - relations - renewOptions - 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: type: integer default: 0 - description: Number of Subscriptions to retrieve in this page, starting after offset in: query name: limit required: false schema: type: integer default: 25 maximum: 250 minimum: 1 - description: Property name that will be used to sort results. "-" indicates descending in: query name: sort required: false schema: type: string enum: - expiresAt - -expiresAt default: -expiresAt responses: '200': description: Request was successful content: application/json: schema: $ref: '#/components/schemas/SubscriptionList' application/javascript: 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' '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: Invalid query parameter (custom message returned for each parameter) 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: list summary: Retrieve a list of Subscriptions for the specified Shopper /v1/subscriptions/productGroups: get: tags: - Subscriptions parameters: - description: A unique application key identifying the source of the request. This is required for request tracking in: header name: X-App-Key required: true schema: type: string - description: Shopper ID to return data for when not using JWT in: header name: X-Shopper-Id required: false schema: type: string responses: '200': description: Request was successful content: application/json: schema: items: $ref: '#/components/schemas/ProductGroup' type: array application/javascript: 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 '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: productGroups summary: Retrieve a list of ProductGroups for the specified Shopper /v1/subscriptions/{subscriptionId}: delete: tags: - Subscriptions parameters: - description: A unique application key identifying the source of the request. This is required for request tracking in: header name: X-App-Key required: true schema: type: string - description: Shopper ID to return data 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: subscriptionId 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: 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: Failed to determine if the domain is protected (invalid domain ID)
Invalid Subscription Id
The Office 365 Subscription cannot be cancelled (shopper is migrating)
The Subscription cannot be cancelled
The Subscription cannot be cancelled (PFID is disabled for cancellation)
The Subscription cannot be cancelled (domain is protected)
The domain alert Subscription cannot be cancelled 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: Failed to determine if the Office 365 account is migrating
Failed to determine if the domain alert is cancellable
Failed to determine if the domain is protected
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: cancel summary: Cancel the specified Subscription get: tags: - Subscriptions parameters: - description: A unique application key identifying the source of the request. This is required for request tracking in: header name: X-App-Key required: true schema: type: string - 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 Subscription to retrieve in: path name: subscriptionId required: true schema: type: string responses: '200': description: Request was successful content: application/json: schema: $ref: '#/components/schemas/Subscription' application/javascript: 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' '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: Invalid Subscription Id 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: get summary: Retrieve details for the specified Subscription patch: tags: - Subscriptions parameters: - description: A unique application key identifying the source of the request. This is required for request tracking in: header name: X-App-Key required: true schema: type: string - 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 Subscription to update in: path name: subscriptionId 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/xml: schema: $ref: '#/components/schemas/Error' '401': description: Authentication info not sent or invalid content: application/json: schema: $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' '403': description: Authenticated user is not allowed access
This method only supports JWT authentication content: application/json: schema: $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' '404': description: Subscription not found
Payment profile not found content: application/json: schema: $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' application/xml: schema: $ref: '#/components/schemas/Error' 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 summary: Update details for the specified Subscription 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 components: schemas: 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 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 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 Subscription: properties: addons: description: An array of additional products that have been purchased to augment this Subscription items: $ref: '#/components/schemas/SubscriptionAddon' 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 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 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 Error: properties: code: description: Short identifier for the error, suitable for indicating the specific error within client code format: constant type: string fields: description: List of the specific fields, and the errors found with their contents items: $ref: '#/components/schemas/ErrorField' type: array message: description: Human-readable, English description of the error type: string required: - code 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 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 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 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: '' 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 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' 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