{ "swagger": "2.0", "tags": [ { "name": "v1", "description": "" } ], "host": "api.ote-godaddy.com", "paths": { "/v1/shoppers/subaccount": { "post": { "tags": [ "v1" ], "consumes": [ "application/json", "application/xml", "text/xml" ], "produces": [ "application/json", "application/javascript", "application/xml", "text/javascript", "text/xml" ], "parameters": [ { "description": "The subaccount to create", "in": "body", "name": "subaccount", "required": true, "schema": { "$ref": "#/definitions/SubaccountCreate" } } ], "responses": { "200": { "description": "Request was successful", "schema": { "$ref": "#/definitions/ShopperId" } }, "400": { "description": "Request was malformed", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Authentication info not sent or invalid", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Authenticated user is not allowed access", "schema": { "$ref": "#/definitions/Error" } }, "422": { "description": "`subaccount` does not fulfill the schema", "schema": { "$ref": "#/definitions/Error" } }, "429": { "description": "Too many requests received within interval", "schema": { "$ref": "#/definitions/ErrorLimit" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "createSubaccount", "summary": "Create a Subaccount owned by the authenticated Reseller" } }, "/v1/shoppers/{shopperId}": { "get": { "description": "Notes:", "tags": [ "v1" ], "consumes": [ "application/json", "application/xml", "text/xml" ], "produces": [ "application/json", "application/javascript", "application/xml", "text/javascript", "text/xml" ], "parameters": [ { "description": "Shopper whose details are to be retrieved", "in": "path", "name": "shopperId", "required": true, "type": "string" }, { "description": "Additional properties to be included in the response shopper object", "in": "query", "name": "includes", "type": "array", "collectionFormat": "csv", "items": { "type": "string", "enum": [ "customerId" ] } } ], "responses": { "200": { "description": "Request was successful", "schema": { "$ref": "#/definitions/Shopper" } }, "400": { "description": "Request was malformed", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Authentication info not sent or invalid", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Authenticated user is not allowed access", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Resource not found", "schema": { "$ref": "#/definitions/Error" } }, "429": { "description": "Too many requests received within interval", "schema": { "$ref": "#/definitions/ErrorLimit" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "get", "summary": "Get details for the specified Shopper" }, "post": { "description": "Notes:", "tags": [ "v1" ], "consumes": [ "application/json", "application/xml", "text/xml" ], "produces": [ "application/json", "application/javascript", "application/xml", "text/javascript", "text/xml" ], "parameters": [ { "description": "The ID of the Shopper to update", "in": "path", "name": "shopperId", "required": true, "type": "string" }, { "description": "The Shopper details to update", "in": "body", "name": "shopper", "required": true, "schema": { "$ref": "#/definitions/ShopperUpdate" } } ], "responses": { "200": { "description": "Request was successful", "schema": { "$ref": "#/definitions/ShopperId" } }, "400": { "description": "Request was malformed", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Authentication info not sent or invalid", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Authenticated user is not allowed access", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Resource not found", "schema": { "$ref": "#/definitions/Error" } }, "422": { "description": "`Shopper` does not fulfill the schema", "schema": { "$ref": "#/definitions/Error" } }, "429": { "description": "Too many requests received within interval", "schema": { "$ref": "#/definitions/ErrorLimit" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "update", "summary": "Update details for the specified Shopper" }, "delete": { "description": "Notes:", "tags": [ "v1" ], "produces": [ "application/json", "application/javascript", "application/xml", "text/javascript", "text/xml" ], "parameters": [ { "description": "The ID of the shopper to delete. Must agree with the shopper id on the token or header, if present. *Note*: **shopperId** is **not the same** as **customerId**. **shopperId** is a number of max length 10 digits (*ex:* 1234567890) whereas **customerId** is a UUIDv4 (*ex:* 295e3bc3-b3b9-4d95-aae5-ede41a994d13)", "in": "path", "name": "shopperId", "maxLength": 10, "required": true, "type": "string" }, { "description": "The client IP of the user who originated the request leading to this call.", "in": "query", "name": "auditClientIp", "required": true, "type": "string" } ], "responses": { "204": { "description": "Request was successful" }, "400": { "description": "Request was malformed", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Authentication info not sent or invalid", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Authenticated user is not allowed access", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Resource not found", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Active and locked shoppers cannot be deleted", "schema": { "$ref": "#/definitions/Error" } }, "422": { "description": "Shopper ID is not supplied or invalid", "schema": { "$ref": "#/definitions/Error" } }, "429": { "description": "Too many requests received within interval", "schema": { "$ref": "#/definitions/ErrorLimit" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "delete", "summary": "Request the deletion of a shopper profile" } }, "/v1/shoppers/{shopperId}/status": { "get": { "description": "Notes:", "tags": [ "v1" ], "consumes": [ ], "produces": [ "application/json", "application/javascript", "application/xml", "text/javascript", "text/xml" ], "parameters": [ { "description": "The ID of the shopper to retrieve. Must agree with the shopper id on the token or header, if present", "in": "path", "name": "shopperId", "maxLength": 10, "required": true, "type": "string" }, { "description": "The client IP of the user who originated the request leading to this call.", "in": "query", "name": "auditClientIp", "required": true, "type": "string" } ], "responses": { "200": { "description": "Request was successful", "schema": { "$ref": "#/definitions/ShopperStatus" } }, "400": { "description": "Request was malformed", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Authentication info not sent or invalid", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Authenticated user is not allowed access", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Resource not found", "schema": { "$ref": "#/definitions/Error" } }, "422": { "description": "Shopper ID is not supplied or invalid", "schema": { "$ref": "#/definitions/Error" } }, "429": { "description": "Too many requests received within interval", "schema": { "$ref": "#/definitions/ErrorLimit" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "getStatus", "summary": "Get details for the specified Shopper" } }, "/v1/shoppers/{shopperId}/factors/password": { "put": { "description": "Notes:", "tags": [ "v1" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "description": "Shopper whose password will be set", "in": "path", "name": "shopperId", "required": true, "type": "string" }, { "description": "The value to set the subaccount's password to", "in": "body", "name": "secret", "required": true, "schema": { "$ref": "#/definitions/Secret" } } ], "responses": { "200": { "description": "Request was successful", "schema": { "$ref": "#/definitions/ShopperId" } }, "400": { "description": "Request was not successful", "schema": { "$ref": "#/definitions/PasswordError" } }, "401": { "description": "Authentication info not sent or invalid", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/Error" } } }, "operationId": "changePassword", "summary": "Set subaccount's password" } } }, "definitions": { "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": "#/definitions/ErrorField" }, "type": "array" }, "message": { "description": "Human-readable, English description of the error", "type": "string" } }, "required": [ "code" ] }, "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": "#/definitions/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" ] }, "Shopper": { "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" }, "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" ] }, "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" ] }, "ShopperStatus": { "properties": { "billingState": { "type": "string", "description": "Indicates the billing state of the Shopper.
ABANDONED: The shopper has not been billed in at least 10 years and has no active subscriptions.
INACTIVE: The shopper has been billed within the last 10 years but has no active subscriptions.
ACTIVE: The shopper has at least one active subscription.", "enum": [ "ABANDONED", "INACTIVE", "ACTIVE" ] } } }, "ShopperUpdate": { "properties": { "email": { "format": "email", "type": "string" }, "externalId": { "type": "integer" }, "marketId": { "format": "bcp-47", "type": "string", "maxLength": 50, "enum": [ "da-DK", "de-AT", "de-CH", "de-DE", "el-GR", "en-AE", "en-AU", "en-CA", "en-GB", "en-HK", "en-IE", "en-IL", "en-IN", "en-MY", "en-NZ", "en-PH", "en-PK", "en-SG", "en-US", "en-ZA", "es-AR", "es-CL", "es-CO", "es-ES", "es-MX", "es-PE", "es-US", "es-VE", "fi-FI", "fr-BE", "fr-CA", "fr-CH", "fr-FR", "hi-IN", "id-ID", "it-CH", "it-IT", "ja-JP", "ko-KR", "mr-IN", "nb-NO", "nl-BE", "nl-NL", "pl-PL", "pt-BR", "pt-PT", "ru-RU", "sv-SE", "ta-IN", "th-TH", "tr-TR", "uk-UA", "vi-VN", "zh-HK", "zh-SG", "zh-TW" ] }, "nameFirst": { "type": "string" }, "nameLast": { "type": "string" } } }, "SubaccountCreate": { "properties": { "email": { "format": "email", "type": "string" }, "externalId": { "type": "integer" }, "marketId": { "default": "en-US", "format": "bcp-47", "type": "string", "maxLength": 50, "enum": [ "da-DK", "de-AT", "de-CH", "de-DE", "el-GR", "en-AE", "en-AU", "en-CA", "en-GB", "en-HK", "en-IE", "en-IL", "en-IN", "en-MY", "en-NZ", "en-PH", "en-PK", "en-SG", "en-US", "en-ZA", "es-AR", "es-CL", "es-CO", "es-ES", "es-MX", "es-PE", "es-US", "es-VE", "fi-FI", "fr-BE", "fr-CA", "fr-CH", "fr-FR", "hi-IN", "id-ID", "it-CH", "it-IT", "ja-JP", "ko-KR", "mr-IN", "nb-NO", "nl-BE", "nl-NL", "pl-PL", "pt-BR", "pt-PT", "ru-RU", "sv-SE", "ta-IN", "th-TH", "tr-TR", "uk-UA", "vi-VN", "zh-HK", "zh-SG", "zh-TW" ] }, "nameFirst": { "type": "string" }, "nameLast": { "type": "string" }, "password": { "format": "shopper-password", "type": "string" } }, "required": [ "email", "password", "nameFirst", "nameLast" ] }, "Secret": { "properties": { "secret": { "description": "The secret value used to set a subaccount's password", "type": "string", "example": "P@55w0rd+" } } }, "PasswordError": { "properties": { "type": { "description": "Response type, always 'error'", "type": "string" }, "code": { "description": "Short identifier for the error, suitable for indicating the specific error within client code", "format": "constant", "type": "string", "enum": [ "PW_BLACK_LIST", "PW_TOO_SHORT", "PW_TOO_LONG", "PW_MISSING_UC", "PW_MISSING_NUM", "PW_RECENTLY_USED", "PW_NOT_UNIQUE" ] }, "message": { "description": "Human-readable, English description of the error", "type": "string" } } } } }