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: '