Skip to main content


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 getStoreTask URI in the Location response header. Call getStoreTask (or getStoreTasks) method to retrieve the status of the add category operation.

Note: Three levels of store categories are supported.

Important! 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.


Resource URI


This method is supported in Sandbox environment. To access the endpoint, just replace the root URI with

URI parameters

This method has no URI parameters.

HTTP request headers

All requests made to eBay REST operations require you to provide the Authorization HTTP header for authentication authorization.

The table below shows additional HTTP request headers that are either required, conditionally required, or strongly recommended for this method. Other standard HTTP request headers- opens rest request components page (not in this table) can also be used, but they are optional.

Content-TypestringThis header indicates the format of the request body provided by the client. Its value should be set to application/json.

For more information, refer to HTTP request headers.

Occurrence: Required

OAuth scope

This request requires an access token created with the authorization code grant flow, using one or more scopes from the following list (please check your Application Keys page for a list of OAuth scopes available to your application):

See OAuth access tokens for more information.

Request payload

Copy complete valid JSON to clipboard

Request fields

Input container/fieldTypeDescription

The seller-specified name of the custom category.

Max Length: 35

Occurrence: Required


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.
The getStoreCategories method can be used to retrieve store category IDs.

Default: ROOT category ID(-999) if it's null.

Occurrence: Optional


If the store category specified as the destinationParentCategoryId is a leaf category with active listings, those listings are moved to the store category identified through this listingDestinationCategoryId. If this field is omitted, the new store category being added under the parent category inherits those listings.
The getStoreCategories method can be used to retrieve store category IDs.

Default: Newly added category ID if it's null.

Occurrence: Optional


HTTP response headers

See HTTP response headers for details.

LocationThe location url is used to poll the async task status. If the call is successful, the getStoreTask URI is returned in this header, and the user can use this URI to retrieve the status of the add category operation.
Retry-AfterThe polling interval time in milliseconds.

Response payload

This call has no payload.

Response fields

This call has no field definitions.

HTTP status codes

This call can return one of the following HTTP status codes. For an overview of the status codes, see HTTP status codes in Using eBay RESTful APIs.

202The request is accepted, user should get the location url in response to retrieve async task status.
400Bad Request
500Internal Server Error

Error codes

For more on errors, plus the codes of other common errors, see Handling errors.

225000API_STORESAPPLICATIONInternal server error encountered. If this problem persists, contact the eBay Developers Program for support.
225001API_STORESREQUESTInput data for {param} is invalid or missing. Please check API documentation.
225002API_STORESREQUESTThe user must have an active store subscription.
225003API_STORESREQUESTYou cannot make additional category changes until your previous change request has completed. Use getStoreTask method to get latest status of your last request.
226000API_STORESREQUESTYou cannot have duplicate category names under the same category parent.
226001API_STORESREQUESTInvalid characters found in {category_name}. Please see documentation for more information on recommended valid characters.
226002API_STORESREQUESTCategory name can not be empty, or 'Other'.
226003API_STORESREQUESTCategory name {category_name} exceeds the maximum allowed length of {max_length} characters.
226004API_STORESREQUESTCustom store category count exceeds the maximum allowed count {max_count}.
226005API_STORESREQUESTCustom store category {category_name} exceeds the maximum allowed category depth {depth_limit}.
226006API_STORESREQUESTCategory id {category_id} doesn't exist for the store.


This call has no warnings.


New to making API calls? Please see Making a Call.

Note: Identifiers, such as order IDs or user IDs, and personal data in these samples might be anonymized or may no longer be active on eBay. If necessary, substitute current, relevant eBay data in your requests.

Sample 1: Add new category to an eBay Store

The seller can add category to their active eBay Store.


The following sample shows how to add single category to your store. The Store category ID is assigned automatically. The added category appears under the category set with destinationParentCategoryId. If there are listings under the specified parent category, they are moved to the category specified with listingDestinationCategoryId.



If the call is successful, a category is added to an eBay Store and the getStoreTask URI is returned in the Location response header.