{
  "openapi": "3.1.0",
  "info": {
    "title": "Stores API",
    "description": "<p>The <strong>Stores API</strong> provides stores-related resources for third-party developers. These resources let you retrieve basic store information such as store name, description, store url, return store category hierarchy, add/rename/move/delete a single user's eBay store category, and retrieve the processing status of these tasks.</p><br><p>The Stores AOI resource methods require an access token created with the <a href=\"/api-docs/static/oauth-authorization-code-grant.html\">authorization code grant</a> flow. See each method for their respective OAuth scopes.</p>",
    "contact": {
      "name": "eBay Inc,"
    },
    "license": {
      "name": "eBay API License Agreement",
      "url": "https://developer.ebay.com/join/api-license-agreement"
    },
    "version": "1"
  },
  "servers": [
    {
      "url": "https://api.ebay.com{basePath}",
      "description": "Production",
      "variables": {
        "basePath": {
          "default": "/sell/stores/v1"
        }
      }
    },
    {
      "url": "https://api.sandbox.ebay.com{basePath}",
      "description": "Sandbox",
      "variables": {
        "basePath": {
          "default": "/sell/stores/v1"
        }
      }
    }
  ],
  "security": [
    {
      "api_auth": [
        "https://api.ebay.com/oauth/api_scope/sell.stores",
        "eBayUser"
      ]
    }
  ],
  "paths": {
    "/store/categories": {
      "get": {
        "tags": [
          "store"
        ],
        "description": "This method is used to retrieve the category hierarchy for an eBay user's store.<br><br><span class=\"tablenote\"><strong>Note:</strong> Three levels of store categories are supported.</span>",
        "operationId": "getStoreCategories",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStoreCategoriesResponseType"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "store"
        ],
        "description": "This method is used to add a single new custom category to a user's eBay store through an asynchronous request. A successful call returns the <b>getStoreTask</b> URI in the Location response header. Call <b>getStoreTask</b> (or <b>getStoreTasks</b>) method to retrieve the status of the add category operation.<br><br><span class=\"tablenote\"><strong>Note:</strong> Three levels of store categories are supported.</span><br><div class=\"msgbox_important\"><p class=\"msgbox_importantInDiv\" data-mc-autonum=\"&lt;b&gt;&lt;span style=&quot;color: #dd1e31;&quot; class=&quot;mcFormatColor&quot;&gt;Important! &lt;/span&gt;&lt;/b&gt;\"><span class=\"autonumber\"><span><b><span style=\"color: #dd1e31;\" class=\"mcFormatColor\">Important!</span></b></span></span> If you initiate a category change, you cannot make additional category changes until the previous change request has completed. Use getStoreTask (or getStoreTasks) method to get latest status of your last request.</p></div>",
        "operationId": "addStoreCategory",
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "This header indicates the format of the request body provided by the client. Its value should be set to <b>application/json</b>.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Use this call to add single new category of a user's eBay store. To call addStoreCategory, the user must have an eBay Stores subscription and they must have created an eBay Store on the eBay website.",
          "content": {
            "application/json": {
              "schema": {
                "description": "This call is used to add single new category of a user's eBay store.",
                "$ref": "#/components/schemas/AddStoreCategoryRequestType"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "The request is accepted, user should get the location url in response to retrieve async task status.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "string",
                  "description": "The polling interval time in milliseconds."
                }
              },
              "Location": {
                "schema": {
                  "type": "string",
                  "description": "The location url is used to poll the async task status. If the call is successful, the <b>getStoreTask</b> URI is returned in this header, and the user can use this URI to retrieve the status of the add category operation."
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Input data for {param} is invalid or missing. Please check API documentation."
                },
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                },
                "225003": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "You cannot make additional category changes until your previous change request has completed. Use getStoreTask method to get latest status of your last request."
                },
                "226000": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "You cannot have duplicate category names under the same category parent."
                },
                "226001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Invalid characters found in {category_name}. Please see documentation for more information on recommended valid characters."
                },
                "226002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category name can not be empty, or 'Other'."
                },
                "226003": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category name {category_name} exceeds the maximum allowed length of {max_length} characters."
                },
                "226004": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Custom store category count exceeds the maximum allowed count {max_count}."
                },
                "226005": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Custom store category {category_name} exceeds the maximum allowed category depth {depth_limit}."
                },
                "226006": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category id {category_id} doesn't exist for the store."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      }
    },
    "/store/categories/{category_id}": {
      "put": {
        "tags": [
          "store"
        ],
        "description": "This method is used to rename the single category of a user's eBay store through a synchronous request.",
        "operationId": "renameStoreCategory",
        "parameters": [
          {
            "name": "category_id",
            "in": "path",
            "description": "The unique identifier of an eBay Store's custom category. eBay auto-generates this identifier when a seller establishes a custom store category. This category ID should not be confused with an eBay category ID. This is the category that is to be renamed.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "This header indicates the format of the request body provided by the client. Its value should be set to <b>application/json</b>.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Use this call to rename the single category of a user's eBay store. To call renameStoreCategory, the user must have an eBay Stores subscription and they must have created an eBay Store on the eBay website.",
          "content": {
            "application/json": {
              "schema": {
                "description": "This call is used to rename the single category of a user's eBay store.",
                "$ref": "#/components/schemas/RenameStoreCategoryRequestType"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Input data for {param} is invalid or missing. Please check API documentation."
                },
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                },
                "226000": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "You cannot have duplicate category names under the same category parent."
                },
                "226001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Invalid characters found in {category_name}. Please see documentation for more information on recommended valid characters."
                },
                "226002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category name can not be empty, or 'Other'."
                },
                "226003": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category name {category_name} exceeds the maximum allowed length of {max_length} characters."
                },
                "226006": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category id {category_id} doesn't exist for the store."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      },
      "delete": {
        "tags": [
          "store"
        ],
        "description": "This method is used to delete one custom category of a user's eBay store through an asynchronous request. A successful call returns the <b>getStoreTask</b> URI in the Location response header. Call <b>getStoreTask</b> (or <b>getStoreTasks</b>) method to retrieve the status of the delete category operation.<br><br><div class=\"msgbox_important\"><p class=\"msgbox_importantInDiv\" data-mc-autonum=\"&lt;b&gt;&lt;span style=&quot;color: #dd1e31;&quot; class=&quot;mcFormatColor&quot;&gt;Important! &lt;/span&gt;&lt;/b&gt;\"><span class=\"autonumber\"><span><b><span style=\"color: #dd1e31;\" class=\"mcFormatColor\">Important!</span></b></span></span> If you initiate a category change, you cannot make additional category changes until the previous change request has completed. Use getStoreTask (or getStoreTasks) method to get latest status of your last request.</p></div>",
        "operationId": "deleteStoreCategory",
        "parameters": [
          {
            "name": "category_id",
            "in": "path",
            "description": "The unique identifier of an eBay Store's custom category. eBay auto-generates this identifier when a seller establishes a custom store category. This category ID should not be confused with an eBay category ID.<br><br>The <a href=\"/api-docs/sell/stores/resources/store/methods/getStoreCategories\"><b>getStoreCategories</b></a> method can be used to retrieve store category IDs.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false
          }
        ],
        "requestBody": {
          "description": "Use this call to delete one category of a user's eBay store. To call deleteStoreCategory, the user must have an eBay Stores subscription and they must have created an eBay Store on the eBay website.\nThis operation is asynchronous request, user client MAY obtain the status of an asynchronous operation by performing a GET on the polling URL provided with a HTTP 202 (Accepted) response to the initial request. ",
          "content": {
            "application/json": {
              "schema": {
                "description": "This call is used to delete one category of a user's eBay store.",
                "$ref": "#/components/schemas/DeleteStoreCategoryRequestType"
              }
            }
          },
          "required": false
        },
        "responses": {
          "202": {
            "description": "The request is accepted, user should get the location url in response to retrieve async task status.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "string",
                  "description": "The polling interval time in milliseconds."
                }
              },
              "Location": {
                "schema": {
                  "type": "string",
                  "description": "The location url is used to poll the async task status. Use it to call <b>getStoreTask</b> api."
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Input data for {param} is invalid or missing. Please check API documentation."
                },
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                },
                "225003": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "You cannot make additional category changes until your previous change request has completed. Use getStoreTask method to get latest status of your last request."
                },
                "226006": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Category id {category_id} doesn't exist for the store."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      }
    },
    "/store": {
      "get": {
        "tags": [
          "store"
        ],
        "description": "This method is used to retrieve information for an eBay user's store such as store name, store URL, and description.",
        "operationId": "getStore",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStoreResponseType"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      }
    },
    "/store/tasks/{task_id}": {
      "get": {
        "tags": [
          "store"
        ],
        "description": "This method retrieves the current status of a recent store operation. The unique identifier of the task is passed in as a path parameter.",
        "operationId": "getStoreTask",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "description": "The unique identifier of an eBay Store async task. A taskId value is returned in the response of a successful other calls. (e.g.addStoreCategory, moveStoreCategory, deleteStoreCategory).",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple",
            "explode": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStoreTaskResponseType"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Input data for {param} is invalid or missing. Please check API documentation."
                },
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                },
                "226100": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The provided task_id could not be matched to a store category request for the store."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      }
    },
    "/store/tasks": {
      "get": {
        "tags": [
          "store"
        ],
        "description": "This method retrieves the status of all async store tasks for a store. Every task is set as FAILED or COMPLETED once it's execution time reaches 24 hours.",
        "operationId": "getStoreTasks",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetStoreTasksResponseType"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      }
    },
    "/store/categories/move_category": {
      "post": {
        "tags": [
          "store"
        ],
        "description": "This method is used to move an existing user's eBay store custom category through an asynchronous request. A successful call returns the <b>getStoreTask</b> URI in the Location response header. The user calls <b>getStoreTask</b> to retrieve the status of the move category operation.<br><br><div class=\"msgbox_important\"><p class=\"msgbox_importantInDiv\" data-mc-autonum=\"&lt;b&gt;&lt;span style=&quot;color: #dd1e31;&quot; class=&quot;mcFormatColor&quot;&gt;Important! &lt;/span&gt;&lt;/b&gt;\"><span class=\"autonumber\"><span><b><span style=\"color: #dd1e31;\" class=\"mcFormatColor\">Important!</span></b></span></span> If you initiate a category change, you cannot make additional category changes until the previous change request has completed. Use getStoreTask (or getStoreTasks) method to get latest status of your last request.</p></div>",
        "operationId": "moveStoreCategory",
        "parameters": [
          {
            "name": "Content-Type",
            "in": "header",
            "description": "This header indicates the format of the request body provided by the client. Its value should be set to <b>application/json</b>.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Use this call to move one category of a user's eBay store. To call moveStoreCategory, the user must have an eBay Stores subscription and they must have created an eBay Store on the eBay website.\nThis operation is asynchronous request, user client MAY obtain the status of an asynchronous operation by performing a GET on the polling URL provided with a HTTP 202 (Accepted) response to the initial request. ",
          "content": {
            "application/json": {
              "schema": {
                "description": "This method is used to move one category of a user's eBay store. This operation is an asynchronous request. A successful call returns the <b>getStoreTask</b> URI in the Location response header. The user calls <b>getStoreTask</b> to retrieve the status of the add category operation.",
                "$ref": "#/components/schemas/MoveStoreCategoryRequestType"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "The request is accepted, user should get the location url in response to retrieve async task status.",
            "headers": {
              "Retry-After": {
                "schema": {
                  "type": "string",
                  "description": "The polling interval time in milliseconds."
                }
              },
              "Location": {
                "schema": {
                  "type": "string",
                  "description": "The location url is used to poll the async task status. Use it to call <b>getStoreTask</b> api."
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225001": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Input data for {param} is invalid or missing. Please check API documentation."
                },
                "225002": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "The user must have an active store subscription."
                },
                "225003": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "You cannot make additional category changes until your previous change request has completed. Use getStoreTask method to get latest status of your last request."
                },
                "226000": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "You cannot have duplicate category names under the same category parent."
                },
                "226005": {
                  "domain": "API_STORES",
                  "category": "REQUEST",
                  "description": "Custom store category {category_name} exceeds the maximum allowed category depth {depth_limit}."
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "x-response-codes": {
              "errors": {
                "225000": {
                  "domain": "API_STORES",
                  "category": "APPLICATION",
                  "description": "Internal server error encountered. If this problem persists, contact the eBay Developers Program for support."
                }
              }
            }
          }
        },
        "security": [
          {
            "api_auth": [
              "https://api.ebay.com/oauth/api_scope/sell.stores",
              "eBayUser"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AddStoreCategoryRequestType": {
        "type": "object",
        "required": [
          "categoryName",
          "destinationParentCategoryId"
        ],
        "properties": {
          "categoryName": {
            "type": "string",
            "description": "The seller-specified name of the custom category.<br><br> <b>Max Length: </b>35"
          },
          "destinationParentCategoryId": {
            "type": "string",
            "description": "This field is used to specify the parent category to which the new category belongs. To specify the new category as a top-level category, set the value of this field to -999, or just omit this field, as the default value is -999.<br><br>The <a href=\"/develop/api/sell/stores_api#sell-stores_api-store-getstorecategories\">getStoreCategories</a> method can be used to retrieve store category IDs.<br><br><b>Default: ROOT</b> category ID<b>(-999)</b> if it's null."
          },
          "listingDestinationCategoryId": {
            "type": "string",
            "description": "When adding store category, if the destination category destinationParentCategoryId is a leaf category and it has active items, you must specify listingDestinationCategoryId. The system will move the items from destinationParentCategoryId to listingDestinationCategoryId. The listingDestinationCategoryId should be a leaf category which has no child categories. Default value: Newly added category ID if it's null."
          }
        },
        "description": "This call allows you to add the category of an eBay Store.Sellers must have an eBay Store subscription in order to use this call."
      },
      "DeleteStoreCategoryRequestType": {
        "type": "object",
        "properties": {
          "listingDestinationCategoryId": {
            "type": "string",
            "description": "When deleting store category, if the deleted category category_id is a leaf category and it has active items, you must specify listingDestinationCategoryId. The system will move the items from category_id to listingDestinationCategoryId. The listingDestinationCategoryId should be a leaf category which has no child categories. Default value: OTHER category ID (1) if it's null."
          }
        },
        "description": "The base request type of the <b>deleteStoreCategory</b> method. It is used to provide a new category home for the listings that are currently in the store category to be deleted."
      },
      "Error": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Identifies the type of error."
          },
          "domain": {
            "type": "string",
            "description": "Name for the primary system where the error occurred. This is relevant for application errors."
          },
          "errorId": {
            "type": "integer",
            "description": "A unique number to identify the error.",
            "format": "int32"
          },
          "inputRefIds": {
            "type": "array",
            "description": "An array of request elements most closely associated to the error.",
            "items": {
              "type": "string"
            }
          },
          "longMessage": {
            "type": "string",
            "description": "A more detailed explanation of the error."
          },
          "message": {
            "type": "string",
            "description": "Information on how to correct the problem, in the end user's terms and language where applicable."
          },
          "outputRefIds": {
            "type": "array",
            "description": "An array of request elements most closely associated to the error.",
            "items": {
              "type": "string"
            }
          },
          "parameters": {
            "type": "array",
            "description": "An array of name/value pairs that describe details the error condition. These are useful when multiple errors are returned.",
            "items": {
              "$ref": "#/components/schemas/ErrorParameter"
            }
          },
          "subdomain": {
            "type": "string",
            "description": "Further helps indicate which subsystem the error is coming from. System subcategories include: Initialization, Serialization, Security, Monitoring, Rate Limiting, etc."
          }
        },
        "description": "This type defines the fields that can be returned in an error."
      },
      "ErrorParameter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The object of the error."
          },
          "value": {
            "type": "string",
            "description": "The value of the object."
          }
        }
      },
      "GetStoreCategoriesResponseType": {
        "type": "object",
        "required": [
          "storeCategories"
        ],
        "properties": {
          "storeCategories": {
            "type": "array",
            "description": "An array of top-level categories defined for the eBay store. A <strong>childrenCategories</strong> array is used for second and third-level categories, if defined for the store.",
            "items": {
              "$ref": "#/components/schemas/StoreCategoryType"
            }
          }
        },
        "description": "The base response type of the <b>getStoreCategories</b> method. This type provides the entire category hierarchy for the store."
      },
      "GetStoreResponseType": {
        "type": "object",
        "required": [
          "description",
          "name"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "The seller-provided description of the eBay Store.<br><br> <b>Max length: </b>300"
          },
          "lastOpenedTime": {
            "type": "string",
            "description": "Indicates the time the store was last opened or reopened."
          },
          "logo": {
            "description": "This container provides information about a Store logo.",
            "$ref": "#/components/schemas/StoreLogoType"
          },
          "name": {
            "type": "string",
            "description": "The name of the eBay Store. The name is shown at the top of the Store page.<br><br> <b>Max length: </b>35"
          },
          "url": {
            "type": "string",
            "description": "The complete URL of the user's Store. This field is only ever returned, and does not need to be explicitly set."
          },
          "urlPath": {
            "type": "string",
            "description": "The URL path of the Store (58 characters maximum). Only if you are using Chinese characters in theName property do you need to use this field, such as if you are opening a Store on the Taiwan site.The reason for this is that the URL path is normally derived from the Store name, but it cannot be derivedfrom the name of the Store if it contains Chinese characters because URLs cannot contain Chinese characters."
          }
        },
        "description": "The base response type of the getStore call. This response consists of the data describinga seller's eBay store, and includes the eBay Store name, the description of the store, the URL to the eBay Store."
      },
      "GetStoreTaskResponseType": {
        "type": "object",
        "properties": {
          "task": {
            "description": "An object describe the task information.",
            "$ref": "#/components/schemas/StoreTaskType"
          }
        },
        "description": "The base response of a getStoreTask call."
      },
      "GetStoreTasksResponseType": {
        "type": "object",
        "properties": {
          "task": {
            "type": "array",
            "description": "This array provides detailed information about the status of one or more store tasks.",
            "items": {
              "$ref": "#/components/schemas/StoreTaskType"
            }
          }
        },
        "description": "The base response of a getStoreTasks call."
      },
      "MoveStoreCategoryRequestType": {
        "type": "object",
        "required": [
          "categoryId",
          "destinationParentCategoryId"
        ],
        "properties": {
          "categoryId": {
            "type": "string",
            "description": "Unique identifier of an eBay Store's custom category. eBay auto-generates this identifier when a sellerestablishes a custom store category. This category ID should not be confused with an eBay category ID."
          },
          "destinationParentCategoryId": {
            "type": "string",
            "description": "When moving store category, specifies the destination category destinationParentCategoryId under which the moved category categoryId will be located. To move to the top level, set the value to -999."
          },
          "listingDestinationCategoryId": {
            "type": "string",
            "description": "This field is only needed if the category to be moved is a leaf category with listings, but a category that becomes a non-leaf category after the move. The listings of the category to be moved are moved to the category specified in this field."
          }
        },
        "description": "The base request type of the <b>moveStoreCategory</b> method. It is used to provide the name of the category to be moved and its new location."
      },
      "RenameStoreCategoryRequestType": {
        "type": "object",
        "required": [
          "categoryName"
        ],
        "properties": {
          "categoryName": {
            "type": "string",
            "description": "The seller-specified name of the custom category. This is the new name of the category specified through path parameter.<br><br> <b>Max Length: </b>35"
          }
        },
        "description": "The base request type of the <b>renameStoreCategory</b> method. It is used to rename a customized eBay Store category."
      },
      "StoreCategoryType": {
        "type": "object",
        "required": [
          "categoryId",
          "categoryName",
          "level",
          "order"
        ],
        "properties": {
          "categoryId": {
            "type": "string",
            "description": "Unique identifier of an eBay Store's custom category. eBay auto-generates this identifier when a sellerestablishes a custom store category. This category ID should not be confused with an eBay category ID."
          },
          "categoryName": {
            "type": "string",
            "description": "The seller-specified name of the custom category."
          },
          "childrenCategories": {
            "type": "array",
            "description": "This array is returned to show second and third-level store categories. eBay Stores support up to three category levels.",
            "items": {
              "$ref": "#/components/schemas/StoreCategoryType"
            }
          },
          "level": {
            "type": "integer",
            "description": "The level indicates the category level of the category tree.<br><span class=\"tablenote\"><strong>Note:</strong> Three levels of store categories are supported. All categories belonging to the same parent should have the same level.</span>",
            "format": "int32"
          },
          "order": {
            "type": "integer",
            "description": "The order in which the custom store category appears in the list of store categories when the eBay store is visited.",
            "format": "int32"
          }
        },
        "description": "This type is used to express details about a customized eBay Store category."
      },
      "StoreLogoType": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL of the seller's store logo."
          }
        },
        "description": "This type is used to provide url of the seller's store logo."
      },
      "StoreTaskStatusEnum": {
        "type": "object",
        "description": "This enumerated type is used to provide the processing status of a task. | - **COMPLETED**: The category changes completed successfully. - **FAILED**: The category changes failed. - **PENDING**: The category changes are still pending.",
        "enum": [
          "COMPLETED",
          "FAILED",
          "PENDING"
        ]
      },
      "StoreTaskType": {
        "type": "object",
        "required": [
          "id",
          "message",
          "status",
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of an eBay Store async task."
          },
          "message": {
            "type": "string",
            "description": "The value indicates the status description of the async task, especially in case of failures (reason of failure).It follows the Asynchronous Request Pattern in eBay REST Documentation. More detail please see : https://pages.github.corp.ebay.com/vat/ebay-rest-standards/docs/UniformInterface/ResourceManipulation/AsyncRequestPattern"
          },
          "status": {
            "description": "The enumeration value indicates the status of processing for the eBay Store Async Task.It follows the Asynchronous Request Pattern in eBay REST Documentation. More detail please see : ",
            "$ref": "#/components/schemas/StoreTaskStatusEnum"
          },
          "type": {
            "description": "The enumeration value indicates the task type.",
            "$ref": "#/components/schemas/StoreTaskTypeEnum"
          }
        },
        "description": "This type is used to provide details about the status of the Store Task."
      },
      "StoreTaskTypeEnum": {
        "type": "string",
        "description": "This enumerated type is used to provide the kind of store task being performed. | - **ADD_STORE_CATEGORY**: Add a single category to the store. - **MOVE_STORE_CATEGORY**: Move a single category from one place in the store category structure to another. - **DELETE_STORE_CATEGORY**: Delete a single category from the store.",
        "enum": [
          "ADD_STORE_CATEGORY",
          "MOVE_STORE_CATEGORY",
          "DELETE_STORE_CATEGORY"
        ]
      }
    },
    "securitySchemes": {
      "api_auth": {
        "type": "oauth2",
        "description": "The security definitions for this API. Please check individual operations for applicable scopes.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://auth.ebay.com/oauth2/authorize",
            "tokenUrl": "https://api.ebay.com/identity/v1/oauth2/token",
            "scopes": {
              "https://api.ebay.com/oauth/api_scope/sell.stores": "View public data from eBay",
              "eBayUser": "Allows the application to perform operations on behalf of the authenticated user."
            }
          }
        }
      },
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}