# Shop Builder API # Overview * **Version:** 2.0.0 * **Servers**: `https://store.xsolla.com/api` * **[Contact Us by Email](mailto:integration@xsolla.com)** * **Contact URL:** https://xsolla.com/ * **Required TLS version:** 1.2 Shop Builder API provides a third-party solution for implementing the server side for your store interface. Use the endpoints to manage in-game items, in-game currencies, cart, player inventory, promotions, game library, etc. Version: 2.0.0 ## Servers ``` https://store.xsolla.com/api ``` ## Security ### basicAuth Xsolla API uses basic access authentication. All requests to API must contain the `Authorization: Basic ` header, where `your_authorization_basic_key` is the `project_id:api_key` pair encoded according to the Base64 standard. You can use `merchant_id` instead of `project_id` if you need. It doesn't affect functionality. Go to [Publisher Account](https://publisher.xsolla.com/) to find values of the parameters: * `merchant_id` is shown: * In the **Company settings > Company** section * In the URL in the browser address bar on any Publisher Account page. The URL has the following format: `https://publisher.xsolla.com/`. * `api_key` is shown in Publisher Account only once when it is created and must be stored on your side. You can create a new key in the following section: * **Company settings > API keys** * **Project settings > API keys** * `project_id` is shown: * In Publisher Account next to the name of the project. * In the URL in the browser address bar when working on project in Publisher Account. The URL has the following format: `https://publisher.xsolla.com//projects/`. For more information about working with API keys, see the [API reference](https://developers.xsolla.com/api/getting-started/#api_keys_overview). Type: http Scheme: basic ### XsollaLoginUserJWT By default, the Xsolla Login User JWT (Bearer token) is used for authorization. You can try calling this endpoint with a test Xsolla Login User JWT token: `Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI`. You can use the [Pay Station access token](https://developers.xsolla.com/api/pay-station/operation/create-token/) as an alternative. Type: http Scheme: bearer Bearer Format: JWT ### AuthForCart When selling a cart with games, you can [call the endpoint without authorization](/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). To do this: * Add a unique identifier to the `x-unauthorized-id` parameter in the header for games. * Add user’s email to the `x-user` parameter (Base64 encoded) in the header for games. By default, the Xsolla Login User JWT (Bearer token) is used for authorization. You can try calling this endpoint with a test Xsolla Login User JWT token: `Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI`. You can use the [Pay Station access token](https://developers.xsolla.com/api/pay-station/operation/create-token/) as an alternative. Type: http Scheme: bearer ### basicMerchantAuth Xsolla API uses basic access authentication. All requests to API must contain the `Authorization: Basic ` header, where `your_authorization_basic_key` is the `merchant_id:api_key` pair encoded according to the Base64 standard. Go to [Publisher Account](https://publisher.xsolla.com/) to find values of the parameters: * `merchant_id` is shown: * In the **Company settings > Company** section * In the URL in the browser address bar on any Publisher Account page. The URL has the following format: `https://publisher.xsolla.com/` * `api_key` is shown in Publisher Account only once when it is created and must be stored on your side. You can create a new key in the following section: * **Company settings > API keys** * **Project settings > API keys** For more information about working with API keys, see the [API reference](https://developers.xsolla.com/api/getting-started/#api_keys_overview). Type: http Scheme: basic ## Download OpenAPI description [Shop Builder API](https://developers.xsolla.com/_bundle/api/shop-builder/index.yaml) ## Admin ### Get list of attributes (admin) - [GET /v2/project/{project_id}/admin/attribute](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-get-attribute-list.md): Gets the list of attributes from a project for administration. ### Create attribute - [POST /v2/project/{project_id}/admin/attribute](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-create-attribute.md): Creates an attribute. ### Update attribute - [PUT /v2/project/{project_id}/admin/attribute/{external_id}](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-update-attribute.md): Updates an attribute. ### Get specified attribute - [GET /v2/project/{project_id}/admin/attribute/{external_id}](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-get-attribute.md): Gets a specified attribute. ### Delete attribute - [DELETE /v2/project/{project_id}/admin/attribute/{external_id}](https://developers.xsolla.com/api/shop-builder/attribute-admin/delete-attribute.md): Deletes an attribute. NoticeIf you delete an item attribute, all its data and connections with items will be lost. ### Create attribute value - [POST /v2/project/{project_id}/admin/attribute/{external_id}/value](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-create-attribute-value.md): Creates an attribute value. AttentionAll projects have the limitation to the number of attribute values. The default and maximum value is 20 values per attribute. ### Delete all values of attribute - [DELETE /v2/project/{project_id}/admin/attribute/{external_id}/value](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-delete-all-attribute-value.md): Deletes all values of the attribute. NoticeIf you delete an attribute's value, all connections between the attribute and items will be lost. To change the attribute value for an item, use the Update attribute value API call instead of deleting the value and creating a new one. ### Update attribute value - [PUT /v2/project/{project_id}/admin/attribute/{external_id}/value/{value_external_id}](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-update-attribute-value.md): Updates an attribute values. ### Delete attribute value - [DELETE /v2/project/{project_id}/admin/attribute/{external_id}/value/{value_external_id}](https://developers.xsolla.com/api/shop-builder/attribute-admin/admin-delete-attribute-value.md): Deletes an attribute value. NoticeIf you delete an attribute's value, all connections between the attribute and items will be lost. To change the attribute value for an item, use the Update attribute value API call instead of deleting the value and creating a new one. ## Personalized catalog This API allows to specify rules for user attributes. If the user meets all conditions for a concrete rule, personalized items will be shown. For personalized promotions see [Promotions section](/api/shop-builder/tag/promotions-discounts). To pass attributes before a purchase, you can use [Xsolla Login API](/api/login/operation/update-users-attributes-from-server/) or pass them into [user.attributes property while generating token using Pay Station API](/api/pay-station/operation/create-token). ### Get list of catalog filter rules - [GET /v2/project/{project_id}/admin/user/attribute/rule](https://developers.xsolla.com/api/shop-builder/personalized-catalog/get-filter-rules.md): Gets all rules applying to user attributes. ### Create catalog filter rule - [POST /v2/project/{project_id}/admin/user/attribute/rule](https://developers.xsolla.com/api/shop-builder/personalized-catalog/create-filter-rule.md): Create rule for user attributes. ### Get all catalog rules for searching on client-side - [GET /v2/project/{project_id}/admin/user/attribute/rule/all](https://developers.xsolla.com/api/shop-builder/personalized-catalog/get-all-filter-rules.md): Gets a list of all catalog rules for searching on the client-side. AttentionReturns only rule id, name and is_enabled ### Get catalog filter rule - [GET /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://developers.xsolla.com/api/shop-builder/personalized-catalog/get-filter-rule-by-id.md): Get specific rule applying to user attributes. ### Update catalog filter rule - [PUT /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://developers.xsolla.com/api/shop-builder/personalized-catalog/update-filter-rule-by-id.md): Updates a specific rule applying to user attributes. The default value will be used for a not specified property (if property is not required). ### Patch catalog filter rule - [PATCH /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://developers.xsolla.com/api/shop-builder/personalized-catalog/patch-filter-rule-by-id.md): Updates a specific rule applying to user attributes. The current value will be used for a not specified property. ### Delete catalog filter rule - [DELETE /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://developers.xsolla.com/api/shop-builder/personalized-catalog/delete-filter-rule-by-id.md): Deletes a specific rule. ## Admin ### Get list of bundles - [GET /v2/project/{project_id}/admin/items/bundle](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-get-bundle-list.md): Gets the list of bundles within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Create bundle - [POST /v2/project/{project_id}/admin/items/bundle](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-create-bundle.md): Creates a bundle. ### Get list of bundles by specified group id - [GET /v2/project/{project_id}/admin/items/bundle/group/id/{group_id}](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-get-bundle-list-in-group-by-id.md): Gets the list of bundles within a group for administration. NoteDo not use this endpoint for building a store catalog. ### Get list of bundles by specified group external id - [GET /v2/project/{project_id}/admin/items/bundle/group/external_id/{external_id}](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-get-bundle-list-in-group-by-external-id.md): Gets the list of bundles within a group for administration. NoteDo not use this endpoint for building a store catalog. ### Update bundle - [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-update-bundle.md): Updates a bundle. ### Delete bundle - [DELETE /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-delete-bundle.md): Deletes a bundle. ### Get bundle - [GET /v2/project/{project_id}/admin/items/bundle/sku/{sku}](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-get-bundle.md): Gets the bundle within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Show bundle in catalog - [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}/show](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-show-bundle.md): Shows a bundle in a catalog. ### Hide bundle in catalog - [PUT /v2/project/{project_id}/admin/items/bundle/sku/{sku}/hide](https://developers.xsolla.com/api/shop-builder/bundles-admin/admin-hide-bundle.md): Hides a bundle in a catalog. ## Catalog ### Get list of bundles - [GET /v2/project/{project_id}/items/bundle](https://developers.xsolla.com/api/shop-builder/bundles-catalog/get-bundle-list.md): Gets a list of bundles for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get specified bundle - [GET /v2/project/{project_id}/items/bundle/sku/{sku}](https://developers.xsolla.com/api/shop-builder/bundles-catalog/get-bundle.md): Gets a specified bundle. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get list of bundles by specified group - [GET /v2/project/{project_id}/items/bundle/group/{external_id}](https://developers.xsolla.com/api/shop-builder/bundles-catalog/get-bundle-list-in-group.md): Gets a list of bundles within a group for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ## Cart (client-side) ### Get cart by cart ID - [GET /v2/project/{project_id}/cart/{cart_id}](https://developers.xsolla.com/api/shop-builder/cart-client-side/get-cart-by-id.md): Returns user’s cart by cart ID. ### Get current user's cart - [GET /v2/project/{project_id}/cart](https://developers.xsolla.com/api/shop-builder/cart-client-side/get-user-cart.md): Returns the current user's cart. ### Delete all cart items by cart ID - [PUT /v2/project/{project_id}/cart/{cart_id}/clear](https://developers.xsolla.com/api/shop-builder/cart-client-side/cart-clear-by-id.md): Deletes all cart items. ### Delete all cart items from current cart - [PUT /v2/project/{project_id}/cart/clear](https://developers.xsolla.com/api/shop-builder/cart-client-side/cart-clear.md): Deletes all cart items. ### Fill cart with items - [PUT /v2/project/{project_id}/cart/fill](https://developers.xsolla.com/api/shop-builder/cart-client-side/cart-fill.md): Fills the cart with items. If the cart already has an item with the same SKU, the existing item will be replaced by the passed value. ### Fill specific cart with items - [PUT /v2/project/{project_id}/cart/{cart_id}/fill](https://developers.xsolla.com/api/shop-builder/cart-client-side/cart-fill-by-id.md): Fills the specific cart with items. If the cart already has an item with the same SKU, the existing item position will be replaced by the passed value. ### Update cart item by cart ID - [PUT /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://developers.xsolla.com/api/shop-builder/cart-client-side/put-item-by-cart-id.md): Updates an existing cart item or creates the one in the cart. ### Delete cart item by cart ID - [DELETE /v2/project/{project_id}/cart/{cart_id}/item/{item_sku}](https://developers.xsolla.com/api/shop-builder/cart-client-side/delete-item-by-cart-id.md): Removes an item from the cart. ### Update cart item from current cart - [PUT /v2/project/{project_id}/cart/item/{item_sku}](https://developers.xsolla.com/api/shop-builder/cart-client-side/put-item.md): Updates an existing cart item or creates the one in the cart. ### Delete cart item from current cart - [DELETE /v2/project/{project_id}/cart/item/{item_sku}](https://developers.xsolla.com/api/shop-builder/cart-client-side/delete-item.md): Removes an item from the cart. ## Cart (server-side) ### Fill cart with items - [PUT /v2/admin/project/{project_id}/cart/fill](https://developers.xsolla.com/api/shop-builder/cart-server-side/admin-cart-fill.md): Fills the current cart with items. If the cart already has an item with the same SKU, the existing item will be replaced by the passed value. ### Fill cart by cart ID with items - [PUT /v2/admin/project/{project_id}/cart/{cart_id}/fill](https://developers.xsolla.com/api/shop-builder/cart-server-side/admin-fill-cart-by-id.md): Fills the cart by cart ID with items. If the cart already has an item with the same SKU, the existing item will be replaced by the passed value. ## Payment (client-side) ### Create order with all items from particular cart - [POST /v2/project/{project_id}/payment/cart/{cart_id}](https://developers.xsolla.com/api/shop-builder/payment-client-side/create-order-by-cart-id.md): Used for client-to-server integration. Creates an order with all items from the particular cart and generates a payment token for it. The created order gets the new order status. The client IP is used to determine the user’s country, which is then used to apply the corresponding currency and available payment methods for the order. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice As this method uses the IP to determine the user’s country and select a currency for the order, it is important to only use this method from the client side and not from the server side. Using this method from the server side may cause incorrect currency determination and affect payment methods in Pay Station. ### Create order with all items from current cart - [POST /v2/project/{project_id}/payment/cart](https://developers.xsolla.com/api/shop-builder/payment-client-side/create-order.md): Used for client-to-server integration. Creates an order with all items from the cart and generates a payment token for it. The created order gets the new order status. The client IP is used to determine the user’s country, which is then used to apply the corresponding currency and available payment methods for the order. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice As this method uses the IP to determine the user’s country and select a currency for the order, it is important to only use this method from the client side and not from the server side. Using this method from the server side may cause incorrect currency determination and affect payment methods in Pay Station. ### Create order with specified item - [POST /v2/project/{project_id}/payment/item/{item_sku}](https://developers.xsolla.com/api/shop-builder/payment-client-side/create-order-with-item.md): Used for client-to-server integration. Creates an order with a specified item and generates a payment token for it. The created order gets the new order status. The client IP is used to determine the user’s country, which is then used to apply the corresponding currency and available payment methods for the order. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice As this method uses the IP to determine the user’s country and select a currency for the order, it is important to only use this method from the client side and not from the server side. Using this method from the server side may cause incorrect currency determination and affect payment methods in Pay Station. ### Create order for paid offer chain step - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://developers.xsolla.com/api/shop-builder/payment-client-side/order-user-offer-chain-step-reward.md): Creates an order for the item associated with the specified paid offer chain step. The created order gets the new order status. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice This method must be used on the client side. The user's IP address is used to determine the country, which affects the currency and available payment methods. Using this method from the server side may result in incorrect currency detection and affect payment methods in Pay Station. Notice Use this call only for paid offer chain steps. For free steps, use the Claim free offer chain step call instead. ### Create order for paid offer chain step - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://developers.xsolla.com/api/shop-builder/offer-chain-client/order-user-offer-chain-step-reward.md): Creates an order for the item associated with the specified paid offer chain step. The created order gets the new order status. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice This method must be used on the client side. The user's IP address is used to determine the country, which affects the currency and available payment methods. Using this method from the server side may result in incorrect currency detection and affect payment methods in Pay Station. Notice Use this call only for paid offer chain steps. For free steps, use the Claim free offer chain step call instead. ## Client ### Create order for paid offer chain step - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://developers.xsolla.com/api/shop-builder/payment-client-side/order-user-offer-chain-step-reward.md): Creates an order for the item associated with the specified paid offer chain step. The created order gets the new order status. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice This method must be used on the client side. The user's IP address is used to determine the country, which affects the currency and available payment methods. Using this method from the server side may result in incorrect currency detection and affect payment methods in Pay Station. Notice Use this call only for paid offer chain steps. For free steps, use the Claim free offer chain step call instead. ### Get current user's offer chains - [GET /v2/project/{project_id}/user/offer_chain](https://developers.xsolla.com/api/shop-builder/offer-chain-client/get-offer-chains-list.md): Gets the current user’s offer chains. NoticeAll projects have a limit on the number of items that can be returned in a single response. The default and maximum value is 30 items per response. To get more data, use the limit and offset query parameters for pagination. ### Get current user's offer chain by ID - [GET /v2/project/{project_id}/user/offer_chain/{offer_chain_id}](https://developers.xsolla.com/api/shop-builder/offer-chain-client/get-user-offer-chain-by-id.md): Gets the current user’s offer chain by the offer chain's ID. ### Claim free offer chain step - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim](https://developers.xsolla.com/api/shop-builder/offer-chain-client/claim-user-offer-chain-step-reward.md): Completes the current user’s progression through the offer chain step and grants the associated reward. Notice Use this call only for free steps in the offer chain. For steps that require payment in real currency, use the Create order for paid offer chain step call instead. ### Create order for paid offer chain step - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://developers.xsolla.com/api/shop-builder/offer-chain-client/order-user-offer-chain-step-reward.md): Creates an order for the item associated with the specified paid offer chain step. The created order gets the new order status. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice This method must be used on the client side. The user's IP address is used to determine the country, which affects the currency and available payment methods. Using this method from the server side may result in incorrect currency detection and affect payment methods in Pay Station. Notice Use this call only for paid offer chain steps. For free steps, use the Claim free offer chain step call instead. ## Payment (server-side) ### Create payment token for purchase - [POST /v3/project/{project_id}/admin/payment/token](https://developers.xsolla.com/api/shop-builder/payment-server-side/admin-create-payment-token.md): Generates an order and a payment token for it. The order is generated based on the items passed in the request body. To open the payment UI in a new window, use the following link: https://secure.xsolla.com/paystation4/?token={token}, where {token} is the received token. For testing purposes, use this URL: https://sandbox-secure.xsolla.com/paystation4/?token={token}. Notice user.country.value parameter is used to select a currency for the order. If user's country is unknown, providing the user's IP in X-User-Ip header is an alternative option. One of these two options is required for the correct work of this method. The selected currency is used for payment methods at Pay Station. ## Order ### Get order - [GET /v2/project/{project_id}/order/{order_id}](https://developers.xsolla.com/api/shop-builder/order/get-order.md): Retrieves a specified order. ### Get orders list for specified period - [POST /v3/project/{project_id}/admin/order/search](https://developers.xsolla.com/api/shop-builder/order/admin-order-search.md): Retrieves orders list, arranged from the earliest to the latest creation date. ## Free items ### Create order with free cart - [POST /v2/project/{project_id}/free/cart](https://developers.xsolla.com/api/shop-builder/free-item/create-free-order.md): Creates an order with all items from the free cart. The created order will get a done order status. ### Create order with particular free cart - [POST /v2/project/{project_id}/free/cart/{cart_id}](https://developers.xsolla.com/api/shop-builder/free-item/create-free-order-by-cart-id.md): Creates an order with all items from the particular free cart. The created order will get a done order status. ### Create order with specified free item - [POST /v2/project/{project_id}/free/item/{item_sku}](https://developers.xsolla.com/api/shop-builder/free-item/create-free-order-with-item.md): Creates an order with a specified free item. The created order will get a done order status. ## Webhooks ### Get information about webhook settings - [GET /v2/project/{project_id}/admin/webhook](https://developers.xsolla.com/api/shop-builder/common-webhooks/get-webhook.md): Gets the information about the webhook settings in Store. Check webhooks documentation to learn more. ### Update information about webhook settings - [PUT /v2/project/{project_id}/admin/webhook](https://developers.xsolla.com/api/shop-builder/common-webhooks/update-webhook.md): Updates the information about the webhook settings in Store. Check webhooks documentation to learn more. ## Pre-Orders ### Get information about item pre-order limit - [GET /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/common-pre-orders/get-pre-order-limit.md): Get pre-order limit of the item. Pre-Order limit API allows you to sell an item in a limited quantity. For configuring the pre-order itself, go to the Admin section of the desired item module: * Game Keys * Virtual Items & Currency * Bundles Aliases for this endpoint: * /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id} ### Add quantity to item pre-order limit - [POST /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/common-pre-orders/add-pre-order-limit.md): Add quantity to pre-order limit of the item. Pre-Order limit API allows you to sell an item in a limited quantity. For configuring the pre-order itself, go to the Admin section of the desired item module: * Game Keys * Virtual Items & Currency * Bundles Aliases for this endpoint: * /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id} ### Set quantity of item pre-order limit - [PUT /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/common-pre-orders/set-pre-order-limit.md): Set quantity of pre-order limit of the item. Pre-Order limit API allows you to sell an item in a limited quantity. For configuring the pre-order itself, go to the Admin section of the desired item module: * Game Keys * Virtual Items & Currency * Bundles Aliases for this endpoint: * /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id} ### Remove quantity of item pre-order limit - [DELETE /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/common-pre-orders/remove-pre-order-limit.md): Remove quantity of pre-order limit of the item. Pre-Order limit API allows you to sell an item in a limited quantity. For configuring the pre-order itself, go to the Admin section of the desired item module: * Game Keys * Virtual Items & Currency * Bundles Aliases for this endpoint: * /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id} ### Toggle item's pre-order limit - [PUT /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}/toggle](https://developers.xsolla.com/api/shop-builder/common-pre-orders/toggle-pre-order-limit.md): Enable/disable pre-order limit of the item. Pre-Order limit API allows you to sell an item in a limited quantity. For configuring the pre-order itself, go to the admin section of the desired item module: * Game Keys * Virtual Items & Currency * Bundles Aliases for this endpoint: * /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}/toggle ### Remove all quantity of item pre-order limit - [DELETE /v2/project/{project_id}/admin/items/pre_order/limit/item/sku/{item_sku}/all](https://developers.xsolla.com/api/shop-builder/common-pre-orders/remove-all-pre-order-limit.md): Remove all quantity of pre-order limit of the item. Pre-Order limit API allows you to sell an item in a limited quantity. For configuring the pre-order itself, go to the admin section of the desired item module: * Game Keys * Virtual Items & Currency * Bundles Aliases for this endpoint: * /v2/project/{project_id}/admin/items/pre_order/limit/item/id/{item_id}/all ## Merchant ### Get projects - [GET /v2/merchant/{merchant_id}/projects](https://developers.xsolla.com/api/shop-builder/common-merchant/get-projects.md): Gets the list of merchant's projects. NoticeThis API call does not contain the project_id path parameter, so you need to use the API key that is valid in all the company’s projects to set up authorization. ## Catalog This API allows getting any kind of sellable items or specific item. ### Get sellable items list - [GET /v2/project/{project_id}/items](https://developers.xsolla.com/api/shop-builder/common-catalog/get-sellable-items.md): Gets a sellable items list for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get sellable item by ID - [GET /v2/project/{project_id}/items/id/{item_id}](https://developers.xsolla.com/api/shop-builder/common-catalog/get-sellable-item-by-id.md): Gets a sellable item by its ID. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get sellable item by SKU - [GET /v2/project/{project_id}/items/sku/{sku}](https://developers.xsolla.com/api/shop-builder/common-catalog/get-sellable-item-by-sku.md): Gets a sellable item by SKU for building a catalog. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get sellable items list by specified group - [GET /v2/project/{project_id}/items/group/{external_id}](https://developers.xsolla.com/api/shop-builder/common-catalog/get-sellable-items-group.md): Gets a sellable items list from the specified group for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ## Common regions ### Get list of regions - [GET /v2/project/{project_id}/admin/region](https://developers.xsolla.com/api/shop-builder/common-regions/admin-get-regions.md): Gets list of regions. You can use a region for managing your regional restrictions. ### Create region - [POST /v2/project/{project_id}/admin/region](https://developers.xsolla.com/api/shop-builder/common-regions/admin-create-region.md): Creates region. You can use a region for managing your regional restrictions. ### Get region - [GET /v2/project/{project_id}/admin/region/{region_id}](https://developers.xsolla.com/api/shop-builder/common-regions/admin-get-region.md): Gets particular region. You can use a region for managing your regional restrictions. ### Update region - [PUT /v2/project/{project_id}/admin/region/{region_id}](https://developers.xsolla.com/api/shop-builder/common-regions/admin-update-region.md): Updates particular region. You can use a region for managing your regional restrictions. ### Delete region - [DELETE /v2/project/{project_id}/admin/region/{region_id}](https://developers.xsolla.com/api/shop-builder/common-regions/admin-delete-region.md): Deletes particular region. ## Catalog ### Get games list - [GET /v2/project/{project_id}/items/game](https://developers.xsolla.com/api/shop-builder/game-keys-catalog/get-games-list.md): Gets a games list for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get games list by specified group - [GET /v2/project/{project_id}/items/game/group/{external_id}](https://developers.xsolla.com/api/shop-builder/game-keys-catalog/get-games-group.md): Gets a games list from the specified group for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get game for catalog - [GET /v2/project/{project_id}/items/game/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-catalog/get-game-by-sku.md): Gets a game for the catalog. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get game key for catalog - [GET /v2/project/{project_id}/items/game/key/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-catalog/get-game-key-by-sku.md): Gets a game key for the catalog. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get game keys list by specified group - [GET /v2/project/{project_id}/items/game/key/group/{external_id}](https://developers.xsolla.com/api/shop-builder/game-keys-catalog/get-game-keys-group.md): Gets a game key list from the specified group for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get DRM list - [GET /v2/project/{project_id}/items/game/drm](https://developers.xsolla.com/api/shop-builder/game-keys-catalog/get-drm-list.md): Gets the list of available DRMs. ## Entitlement ### Get list of games owned by user - [GET /v2/project/{project_id}/entitlement](https://developers.xsolla.com/api/shop-builder/game-keys-entitlement/get-user-games.md): Get the list of games owned by the user. The response will contain an array of games owned by a particular user. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. ### Redeem game code by client - [POST /v2/project/{project_id}/entitlement/redeem](https://developers.xsolla.com/api/shop-builder/game-keys-entitlement/redeem-game-pin-code.md): Grants entitlement by a provided game code. AttentionYou can redeem codes only for the DRM-free platform. ### Grant entitlement (admin) - [POST /v2/project/{project_id}/admin/entitlement/grant](https://developers.xsolla.com/api/shop-builder/game-keys-entitlement/grant-entitlement-admin.md): Grants entitlement to user. AttentionGame codes or games for DRM free platform can be granted only. ### Revoke entitlement (admin) - [POST /v2/project/{project_id}/admin/entitlement/revoke](https://developers.xsolla.com/api/shop-builder/game-keys-entitlement/revoke-entitlement-admin.md): Revokes entitlement of user. AttentionGame codes or games for DRM free platform can be revoked only. ## Admin ### Create game - [POST /v2/project/{project_id}/admin/items/game](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-create-game.md): Creates a game in the project. ### Get list of games (admin) - [GET /v2/project/{project_id}/admin/items/game](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-get-game-list.md): Gets the list of games within a project for administration. Game consists of game keys which could be purchased by a user. NoteDo not use this endpoint for building a store catalog. ### Get game (admin) - [GET /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-get-game-by-sku.md): Gets a game for administration. Game consists of game keys which could be purchased by a user. NoteDo not use this endpoint for building a store catalog. ### Update game by SKU - [PUT /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-update-game-by-sku.md): Updates a game in the project by SKU. ### Delete game by SKU - [DELETE /v2/project/{project_id}/admin/items/game/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-delete-game-by-sku.md): Deletes a game in the project by SKU. ### Get game by ID (admin) - [GET /v2/project/{project_id}/admin/items/game/id/{item_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-get-game-by-id.md): Gets a game for administration. Game consists of game keys which could be purchased by a user. NoteDo not use this endpoint for building a store catalog. ### Update game by ID - [PUT /v2/project/{project_id}/admin/items/game/id/{item_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-update-game-by-id.md): Updates a game in the project by ID. ### Delete game by ID - [DELETE /v2/project/{project_id}/admin/items/game/id/{item_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-delete-game-by-id.md): Deletes a game in the project by ID. ### Upload codes - [POST /v2/project/{project_id}/admin/items/game/key/upload/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-upload-codes-by-sku.md): Uploads codes by game key SKU. ### Upload codes by ID - [POST /v2/project/{project_id}/admin/items/game/key/upload/id/{item_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-upload-codes-by-id.md): Uploads codes by game key ID. ### Get codes loading session information - [GET /v2/project/{project_id}/admin/items/game/key/upload/session/{session_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-get-codes-session.md): Gets codes loading session information. ### Get codes - [GET /v2/project/{project_id}/admin/items/game/key/request/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-get-codes-by-sku.md): Gets a certain number of codes by game key SKU. ### Get codes by ID - [GET /v2/project/{project_id}/admin/items/game/key/request/id/{item_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-get-codes-by-id.md): Gets a certain number of codes by game key ID. ### Delete codes - [DELETE /v2/project/{project_id}/admin/items/game/key/delete/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-delete-codes-by-sku.md): Deletes all codes by game key SKU. ### Delete codes by ID - [DELETE /v2/project/{project_id}/admin/items/game/key/delete/id/{item_id}](https://developers.xsolla.com/api/shop-builder/game-keys-admin/admin-delete-codes-by-id.md): Deletes all codes by game key ID. ## Common ### Get all promotion list - [GET /v3/project/{project_id}/admin/promotion](https://developers.xsolla.com/api/shop-builder/promotions-common/get-promotion-list.md): Gets the list of promotions of a project. ### Activate promotion - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/activate](https://developers.xsolla.com/api/shop-builder/promotions-common/activate-promotion.md): Activates a promotion. ### Deactivate promotion - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate](https://developers.xsolla.com/api/shop-builder/promotions-common/deactivate-promotion.md): Deactivates a promotion. ### Get redeemable promotion by code - [GET /v3/project/{project_id}/admin/promotion/redeemable/code/{code}](https://developers.xsolla.com/api/shop-builder/promotions-common/get-redeemable-promotion-by-code.md): Gets the promotion by a promo code or coupon code. ### Verify promotion code - [GET /v2/project/{project_id}/promotion/code/{code}/verify](https://developers.xsolla.com/api/shop-builder/promotions-common/verify-promotion-code.md): Determines if the code is a promo code or coupon code and if the user can apply it. ## Coupons This API allows to you to manage coupons. ### Redeem coupon code - [POST /v2/project/{project_id}/coupon/redeem](https://developers.xsolla.com/api/shop-builder/promotions-coupons/redeem-coupon.md): Redeems a coupon code. The user gets a bonus after a coupon is redeemed. ### Get coupon rewards - [GET /v2/project/{project_id}/coupon/code/{coupon_code}/rewards](https://developers.xsolla.com/api/shop-builder/promotions-coupons/get-coupon-rewards-by-code.md): Gets coupons rewards by its code. Can be used to allow users to choose one of many items as a bonus. The usual case is choosing a DRM if the coupon contains a game as a bonus (type=unit). ### Create coupon promotion - [POST /v3/project/{project_id}/admin/coupon](https://developers.xsolla.com/api/shop-builder/promotions-coupons/admin-create-coupon.md): Creates a coupon promotion. ### Get list of coupon promotions - [GET /v3/project/{project_id}/admin/coupon](https://developers.xsolla.com/api/shop-builder/promotions-coupons/get-coupons.md): Gets the list of coupon promotions of a project. ### Update coupon promotion - [PUT /v3/project/{project_id}/admin/coupon/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-coupons/update-coupon-promotion.md): Updates a coupon promotion. ### Get coupon promotion - [GET /v3/project/{project_id}/admin/coupon/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-coupons/get-coupon.md): Gets a specified coupon promotion. ### Delete coupon promotion - [DELETE /v3/project/{project_id}/admin/coupon/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-coupons/delete-coupon-promotion.md): Deletes coupon promotion. The deleted promotion: * Disappears from the list of promotions set up in your project. * Is no longer applied to the item catalog. User can’t get bonus items with this promotion. After deletion, the promotion can’t be restored. Coupon codes from the deleted promotion can be added to existing promotions. ### Activate coupon promotion - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/activate](https://developers.xsolla.com/api/shop-builder/promotions-coupons/activate-coupon.md): Activates a coupon promotion. Created coupon promotion is disabled by default. It will not be ready for redemption until you activate it. Use this endpoint to enable and activate a coupon promotion. ### Deactivate coupon promotion - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/deactivate](https://developers.xsolla.com/api/shop-builder/promotions-coupons/deactivate-coupon.md): Deactivates a coupon promotion. Created coupon promotion is disabled by default. It will not be ready for redemption until you activate it. Use this endpoint to disable and deactivate a coupon promotion. ### Create coupon code - [POST /v2/project/{project_id}/admin/coupon/{external_id}/code](https://developers.xsolla.com/api/shop-builder/promotions-coupons/create-coupon-code.md): Creates coupon code. ### Get coupon codes - [GET /v2/project/{project_id}/admin/coupon/{external_id}/code](https://developers.xsolla.com/api/shop-builder/promotions-coupons/get-coupon-codes.md): Gets coupon codes. ### Generate coupon codes - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/code/generate](https://developers.xsolla.com/api/shop-builder/promotions-coupons/generate-coupon-codes.md): Generates coupon codes. ### Get coupon limit for specified user - [GET /v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-coupons/get-coupon-user-limit.md): Gets the remaining number of times the specified user can use the coupon. User limit API allows you to limit the number of times users can use a coupon. For configuring the user limit itself, go to the Admin section: * Coupons ### Get unique coupon code limits - [GET /v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-coupons/get-coupon-code-limit.md): Gets the remaining number of times codes can be used. For filtering the codes, use the codes query parameter. For configuring the code limit itself, go to the Admin section: * Coupons ## Promo codes This API allows to manage promo codes. ### Redeem promo code - [POST /v2/project/{project_id}/promocode/redeem](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/redeem-promo-code.md): Redeems a code of promo code promotion. After redeeming a promo code, the user will get free items and/or the price of the cart and/or particular items will be decreased. ### Remove promo code from cart - [PUT /v2/project/{project_id}/promocode/remove](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/remove-cart-promo-code.md): Removes a promo code from a cart. After the promo code is removed, the total price of all items in the cart will be recalculated without bonuses and discounts provided by a promo code. ### Get promo code rewards - [GET /v2/project/{project_id}/promocode/code/{promocode_code}/rewards](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/get-promo-code-rewards-by-code.md): Gets promo code rewards by its code. Can be used to allow users to choose one of many items as a bonus. The usual case is choosing a DRM if the promo code contains a game as a bonus (type=unit). ### Create promo code promotion - [POST /v3/project/{project_id}/admin/promocode](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/create-promo-code.md): Creates a promo code promotion. ### Get list of promo code promotions - [GET /v3/project/{project_id}/admin/promocode](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/get-promo-codes.md): Gets the list of promo codes of a project. ### Update promo code promotion - [PUT /v3/project/{project_id}/admin/promocode/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/update-promo-code.md): Updates a promo code promotion. ### Get promo code promotion - [GET /v3/project/{project_id}/admin/promocode/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/get-promo-code.md): Gets a specified promo code promotion. ### Delete promo code promotion - [DELETE /v3/project/{project_id}/admin/promocode/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/delete-promo-code.md): Deletes promo code promotion. The deleted promotion: * Disappears from the list of promotions set up in your project. * Is no longer applied to the item catalog and the cart. User can’t get bonus items or purchase items using this promotion. After deletion, the promotion can’t be restored. Promo codes from the deleted promotion can be added to existing promotions. ### Activate promo code promotion - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/activate](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/activate-promo-code.md): Activates a promo code promotion. Created promo code promotion is disabled by default. It will not be ready for redemption until you activate it. Use this endpoint to enable and activate a promo code promotion. ### Deactivate promo code promotion - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/deactivate](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/deactivate-promo-code.md): Deactivates a promo code promotion. Created promo code promotion is disabled by default. It will not be ready for redemption until you activate it. Use this endpoint to disable and deactivate a promo code promotion. ### Create code for promo code promotion - [POST /v2/project/{project_id}/admin/promocode/{external_id}/code](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/create-promo-code-code.md): Creates code for a promo code promotion. ### Get codes of promo code promotion - [GET /v2/project/{project_id}/admin/promocode/{external_id}/code](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/get-promocode-codes.md): Gets codes of a promo code promotion. ### Generate codes for promo code promotion - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/code/generate](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/generate-promo-code-codes.md): Generates codes for a promo code promotion. ### Get promo code limit for specified user - [GET /v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/get-promo-code-user-limit.md): Gets the remaining number of times the specified user can use the promo code. User limit API allows you to limit the number of times users can use a promo code. For configuring the user limit itself, go to the Admin section: * Promo Codes ### Get promo code limit for codes - [GET /v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-promo-codes/get-promo-code-code-limit.md): Gets the remaining number of times codes can be used. For filtering the codes, use the codes query parameter. For configuring the code limit itself, go to the Admin section: * Promo Codes ## Unique catalog offers This API allows to you to manage unique catalog offers. ### Create unique catalog offer promotion - [POST /v3/project/{project_id}/admin/unique_catalog_offer](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/admin-create-unique-catalog-offer.md): Creates a unique catalog offer promotion. ### Get list of unique catalog offer promotions - [GET /v3/project/{project_id}/admin/unique_catalog_offer](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/get-unique-catalog-offers.md): Gets the list of unique catalog offer promotions of a project. ### Update unique catalog offer promotion - [PUT /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/update-unique-catalog-offer-promotion.md): Updates the unique catalog offer promotion. ### Get unique catalog offer promotion - [GET /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/get-unique-catalog-offer.md): Gets the specified unique catalog offer promotion. ### Delete unique catalog offer promotion - [DELETE /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/delete-unique-catalog-offer-promotion.md): Deletes unique catalog offer promotion. The deleted promotion: * Disappears from the list of promotions set up in your project. * Is no longer applied to the item catalog and the cart. User can’t buy items with this promotion. After deletion, the promotion can’t be restored. ### Activate unique catalog offer promotion - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/activate-unique-catalog-offer.md): Activates a unique catalog offer promotion. The created unique catalog offer promotion is disabled by default. It cannot be redeemed until you activate it. Use this endpoint to enable and activate a coupon promotion. ### Deactivate unique catalog offer promotion - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/deactivate-unique-catalog-offer.md): Deactivates a unique catalog offer promotion. The created unique catalog offer promotion is disabled by default. It cannot be redeemed until you activate it. Use this endpoint to disable and deactivate a coupon promotion. ### Create unique catalog offer code - [POST /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/create-unique-catalog-offer-code.md): Creates unique catalog offer code. ### Get unique catalog offer codes - [GET /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/get-unique-catalog-offer-codes.md): Gets unique catalog offer codes. ### Generate unique catalog offer codes - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate](https://developers.xsolla.com/api/shop-builder/promotions-unique-catalog-offers/generate-unique-catalog-offer-codes.md): Generates unique catalog offer codes. ## Discounts This API allows to you to manage discount promotions. ### Create discount promotion for item - [POST /v3/project/{project_id}/admin/promotion/item](https://developers.xsolla.com/api/shop-builder/promotions-discounts/create-item-promotion.md): Creates a discount promotion for an item. Promotions provide a discount (%) on items. The discount will be applied to all prices of the specified items. ### Get list of item promotions - [GET /v3/project/{project_id}/admin/promotion/item](https://developers.xsolla.com/api/shop-builder/promotions-discounts/get-item-promotion-list.md): Get the list of item promotions of a project. Promotions provide a discount (%) on items. The discount will be applied to all prices of the specified items. ### Update item promotion - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://developers.xsolla.com/api/shop-builder/promotions-discounts/update-item-promotion.md): Updates the promotion. NoteNew data will replace old data. If you want to update only a part of a promotion, you should transfer all required data in request as well. Promotions provide a discount (%) on items. The discount will be applied to all prices of the specified items. ### Get item promotion - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://developers.xsolla.com/api/shop-builder/promotions-discounts/get-item-promotion.md): Gets the promotion applied to particular items. Promotions provide a discount (%) on items. The discount will be applied to all prices of the specified items. ### Delete item promotion - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://developers.xsolla.com/api/shop-builder/promotions-discounts/delete-item-promotion.md): Deletes discount promotion. The deleted promotion: * Disappears from the list of promotions set up in your project. * Is no longer applied to the item catalog and the cart. User can’t buy items with this promotion. After deletion, the promotion can’t be restored. ## Bonuses This API allows to manage bonus promotions. ### Create bonus promotion - [POST /v3/project/{project_id}/admin/promotion/bonus](https://developers.xsolla.com/api/shop-builder/promotions-bonuses/create-bonus-promotion.md): Creates the bonus promotion. Promotion adds free bonus items to the purchase made by a user. The promotion can be applied to every purchase within a project or to a purchase that includes particular items. ### Get list of bonus promotions - [GET /v3/project/{project_id}/admin/promotion/bonus](https://developers.xsolla.com/api/shop-builder/promotions-bonuses/get-bonus-promotion-list.md): Gets the list of bonus promotions of a project. Promotion adds free bonus items to the purchase made by a user. The promotion can be applied to every purchase within a project or to a purchase that includes particular items. ### Update bonus promotion - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://developers.xsolla.com/api/shop-builder/promotions-bonuses/update-bonus-promotion.md): Updates the promotion. NoteNew data will replace old data. If you want to update only a part of a promotion, you should transfer all required data in request as well. Promotion adds free bonus items to the purchase made by a user. The promotion can be applied to every purchase within a project or to a purchase that includes particular items. ### Get bonus promotion - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://developers.xsolla.com/api/shop-builder/promotions-bonuses/get-bonus-promotion.md): Gets the bonus promotion. Promotion adds free bonus items to the purchase made by a user. The promotion can be applied to every purchase within a project or to a purchase that includes particular items. ### Delete bonus promotion - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://developers.xsolla.com/api/shop-builder/promotions-bonuses/delete-bonus-promotion.md): Deletes bonus promotion. The deleted promotion: * Disappears from the list of promotions set up in your project. * Is no longer applied to the item catalog and the cart. User can’t get bonus items with this promotion. After deletion, the promotion can’t be restored. ## Admin ### Get list of virtual items - [GET /v2/project/{project_id}/admin/items/virtual_items](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-items-list.md): Gets the list of virtual items within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Create virtual item - [POST /v2/project/{project_id}/admin/items/virtual_items](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-create-virtual-item.md): Creates a virtual item. ### Get list of virtual items by specified group external id - [GET /v2/project/{project_id}/admin/items/virtual_items/group/external_id/{external_id}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-items-list-by-group-external-id.md): Gets the list of virtual items within a group for administration. NoteDo not use this endpoint for building a store catalog. ### Get list of virtual items by specified group id - [GET /v2/project/{project_id}/admin/items/virtual_items/group/id/{group_id}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-items-list-by-group-id.md): Gets the list of virtual items within a group for administration. NoteDo not use this endpoint for building a store catalog. ### Get virtual item - [GET /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-item.md): Gets the virtual item within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Update virtual item - [PUT /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-update-virtual-item.md): Updates a virtual item. ### Delete virtual item - [DELETE /v2/project/{project_id}/admin/items/virtual_items/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-delete-virtual-item.md): Deletes a virtual item. ### Get list of virtual currencies - [GET /v2/project/{project_id}/admin/items/virtual_currency](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-currencies-list.md): Gets the list of virtual currencies within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Create virtual currency - [POST /v2/project/{project_id}/admin/items/virtual_currency](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-create-virtual-currency.md): Creates a virtual currency. ### Get virtual currency - [GET /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-currency.md): Gets the virtual currency within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Update virtual currency - [PUT /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-update-virtual-currency.md): Updates a virtual currency. ### Delete virtual currency - [DELETE /v2/project/{project_id}/admin/items/virtual_currency/sku/{virtual_currency_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-delete-virtual-currency.md): Deletes a virtual currency. ### Get list of virtual currency packages (admin) - [GET /v2/project/{project_id}/admin/items/virtual_currency/package](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-currency-packages-list.md): Gets the list of virtual currency packages within a project for administration. NoteDo not use this endpoint for building a store catalog. ### Create virtual currency package - [POST /v2/project/{project_id}/admin/items/virtual_currency/package](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-create-virtual-currency-package.md): Creates a virtual currency package. ### Update virtual currency package - [PUT /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-update-virtual-currency-package.md): Updates a virtual currency package. ### Delete virtual currency package - [DELETE /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-delete-virtual-currency-package.md): Deletes a virtual currency package. ### Get virtual currency package - [GET /v2/project/{project_id}/admin/items/virtual_currency/package/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-admin/admin-get-virtual-currency-package.md): Gets the virtual currency package within a project for administration. NoteDo not use this endpoint for building a store catalog. ## Catalog ### Get virtual items list - [GET /v2/project/{project_id}/items/virtual_items](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-items.md): Gets a virtual items list for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get virtual item by SKU - [GET /v2/project/{project_id}/items/virtual_items/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-items-sku.md): Gets a virtual item by SKU for building a catalog. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get all virtual items list - [GET /v2/project/{project_id}/items/virtual_items/all](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-all-virtual-items.md): Gets a list of all virtual items for searching on client-side. AttentionReturns only item SKU, name, groups and description NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get virtual currency list - [GET /v2/project/{project_id}/items/virtual_currency](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-currency.md): Gets a virtual currency list for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get virtual currency by SKU - [GET /v2/project/{project_id}/items/virtual_currency/sku/{virtual_currency_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-currency-sku.md): Gets a virtual currency by SKU for building a catalog. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get virtual currency package list - [GET /v2/project/{project_id}/items/virtual_currency/package](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-currency-package.md): Gets a virtual currency packages list for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThe use of the item catalog API calls is available without authorization, but to get a personalized catalog, you must pass the user JWT in the Authorization header. ### Get virtual currency package by SKU - [GET /v2/project/{project_id}/items/virtual_currency/package/sku/{virtual_currency_package_sku}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-currency-package-sku.md): Gets a virtual currency packages by SKU for building a catalog. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get items list by specified group - [GET /v2/project/{project_id}/items/virtual_items/group/{external_id}](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-virtual-items-group.md): Gets an items list from the specified group for building a catalog. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. NoteThis endpoint, accessible without authorization, returns generic data. However, authorization enriches the response with user-specific details for a personalized result, such as available user limits and promotions. ### Get item group list - [GET /v2/project/{project_id}/items/groups](https://developers.xsolla.com/api/shop-builder/virtual-items-currency-catalog/get-item-groups.md): Gets an item group list for building a catalog. ## Virtual payment ### Create order with specified item purchased by virtual currency - [POST /v2/project/{project_id}/payment/item/{item_sku}/virtual/{virtual_currency_sku}](https://developers.xsolla.com/api/shop-builder/virtual-payment/create-order-with-item-for-virtual-currency.md): Creates item purchase using virtual currency. ## Management ### Refresh all purchase limits for specified user - [DELETE /v2/project/{project_id}/admin/user/limit/item/all](https://developers.xsolla.com/api/shop-builder/user-limits-admin/reset-all-user-items-limit.md): Refreshes all purchase limits across all items for a specified user so they can purchase these items again. User limit API allows you to sell an item in a limited quantity. To configure the purchase limits, go to the Admin section of the desired item type module: * Game Keys * Virtual Items & Currency * Bundles ### Refresh purchase limit - [DELETE /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}/all](https://developers.xsolla.com/api/shop-builder/user-limits-admin/reset-user-item-limit.md): Refreshes the purchase limit for an item so a user can buy it again. If the user parameter is null, this call refreshes this limit for all users. User limit API allows you to sell an item in a limited quantity. To configure the purchase limits, go to the Admin section of the desired item type module: * Game Keys * Virtual Items & Currency * Bundles ### Get number of items available to specified user - [GET /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/get-user-item-limit.md): Gets the remaining number of items available to the specified user within the limit applied. User limit API allows you to sell an item in a limited quantity. To configure the purchase limits, go to the Admin section of the desired item type module: * Game Keys * Virtual Items & Currency * Bundles ### Increase number of items available to specified user - [POST /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/add-user-item-limit.md): Increases the remaining number of items available to the specified user within the limit applied. User limit API allows you to sell an item in a limited quantity. To configure the purchase limits, go to the Admin section of the desired item type module: * Game Keys * Virtual Items & Currency * Bundles ### Set number of items available to specified user - [PUT /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/set-user-item-limit.md): Sets the number of items the specified user can buy within the limit applied after it was increased or decreased. User limit API allows you to sell an item in a limited quantity. To configure the purchase limits, go to the Admin section of the desired item type module: * Game Keys * Virtual Items & Currency * Bundles ### Decrease number of items available to specified user - [DELETE /v2/project/{project_id}/admin/user/limit/item/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/remove-user-item-limit.md): Decreases the remaining number of items available to the specified user within the limit applied. User limit API allows you to sell an item in a limited quantity. To configure the purchase limits, go to the Admin section of the desired item type module: * Game Keys * Virtual Items & Currency * Bundles ### Refresh all promotion limits for specified user - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/all](https://developers.xsolla.com/api/shop-builder/user-limits-admin/reset-all-user-promotions-limit.md): Refreshes all limits across all promotions for the specified user so they can use these promotions again. User limit API allows you to limit the number of times users can use a promotion. For configuring the user limit itself, go to the Admin section of the desired promotion type: * Discount Promotions * Bonus Promotions ### Refresh promotion limit for users - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all](https://developers.xsolla.com/api/shop-builder/user-limits-admin/reset-user-promotion-limit.md): Refreshes the promotion limit so a user can use this promotion again. If the user parameter is null, this call refreshes this limit for all users. User limit API allows you to limit the number of times users can use a promotion. For configuring the user limit itself, go to the Admin section of the desired promotion type: * Discount Promotions * Bonus Promotions ### Get promotion limit for specified user - [GET /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/get-user-promotion-limit.md): Gets the remaining number of times the specified user can use the promotion within the limit applied. User limit API allows you to limit the number of times users can use a promotion. For configuring the user limit itself, go to the Admin section of the desired promotion type: * Discount Promotions * Bonus Promotions ### Increase promotion limit for specified user - [POST /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/add-user-promotion-limit.md): Increases the remaining number of times the specified user can use the promotion within the limit applied. User limit API allows you to limit the number of times users can use a promotion. For configuring the user limit itself, go to the Admin section of the desired promotion type: * Discount Promotions * Bonus Promotions ### Set promotion limit for specified user - [PUT /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/set-user-promotion-limit.md): Sets the number of times the specified user can use a promotion within the limit applied after it was increased or decreased. User limit API allows you to limit the number of times users can use a promotion. For configuring the user limit itself, go to the Admin section of the desired promotion type: * Discount Promotions * Bonus Promotions ### Decrease promotion limit for specified user - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://developers.xsolla.com/api/shop-builder/user-limits-admin/remove-user-promotion-limit.md): Decreases the remaining number of times the specified user can use a promotion within the limit applied. User limit API allows you to limit the number of times users can use a promotion. For configuring the user limit itself, go to the Admin section of the desired promotion type: * Discount Promotions * Bonus Promotions ## Admin ### Get list of value points - [GET /v2/project/{project_id}/admin/items/value_points](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-get-value-points-list.md): Gets the list of value points within a project for administration. ### Create value point - [POST /v2/project/{project_id}/admin/items/value_points](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-create-value-points.md): Creates a value point. ### Get value point - [GET /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-get-value-point.md): Gets a value point by the SKU within a project for administration. ### Update value point - [PUT /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-update-value-point.md): Updates a value point identified by an SKU. ### Delete value points - [DELETE /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-delete-value-point.md): Deletes a value point identified by an SKU. ### Get list of items with value points - [GET /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-get-items-value-point-reward.md): Gets list of all items with value points within a project for administration. ### Set value points for items - [PUT /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-set-items-value-point-reward.md): Assigns value points to one or several items by an SKU. Users receive value points after they purchase these items. Note that this PUT request overwrites all previously set value points for items in the project. To avoid unintentional deletion of value points, include all items and their respective value points in each PUT request. If you only want to update the value points for a specific item while preserving the value points of other items, you should retrieve the current set of value points using a GET request, modify the desired item's value points, and then send the modified set of value points back with the updated value points for the specific item. ### Partially update value points for items - [PATCH /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-patch-items-value-point-reward.md): Partially updates the number of value points for one or more items by the item’s SKU. Users receive these value points after purchasing the specified items. Principles of updating value points: * If an item does not yet have value points, sending a non-zero value in the amount field creates them. * If an item already has value points, sending a non-zero value in the amount field updates them. * If amount is set to 0, the existing value points for that item are deleted. Unlike the PUT method (Set value points for items), this PATCH method does not overwrite all existing value points for items in the project, it only updates the specified items. A single request can update up to 100 items. Duplicate item SKUs cannot be included in the same request. ### Delete value points from items - [DELETE /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-delete-items-value-point-reward.md): Removes value point rewards from ALL items. ### Get list of reward chains - [GET /v3/project/{project_id}/admin/reward_chain](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-get-reward-chains.md): Gets list of reward chains. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 10 items per response. To get more data page by page, use limit and offset fields. ### Create reward chain - [POST /v3/project/{project_id}/admin/reward_chain](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-create-reward-chain.md): Creates reward chain. ### Get reward chain - [GET /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-get-reward-chain.md): Gets particular reward chain. ### Update reward chain - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-update-reward-chain.md): Updates particular reward chain. ### Delete reward chain - [DELETE /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-delete-reward-chain.md): Deletes particular reward chain. ### Toggle reward chain - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-toggle-reward-chain.md): Enable/disable reward chain. ### Reset reward chain - [POST /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset](https://developers.xsolla.com/api/shop-builder/reward-chain-value-points-admin/admin-reset-reward-chain.md): Resets value points and progress of all users in the reward chain. After the reset, you can update the validity period of the reward chain and the user can progress through it again. Notice You should not reset the reward chain during its validity period. In this case, users may lose earned value points before they claim their reward. ## Client ### Get current user's reward chains - [GET /v2/project/{project_id}/user/reward_chain](https://developers.xsolla.com/api/shop-builder/reward-chain-client/get-reward-chains-list.md): Client endpoint. Gets the current user’s reward chains. AttentionAll projects have the limitation to the number of items that you can get in the response. The default and maximum value is 50 items per response. To get more data page by page, use limit and offset fields. ### Get current user's value point balance - [GET /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance](https://developers.xsolla.com/api/shop-builder/reward-chain-client/get-user-reward-chain-balance.md): Client endpoint. Gets the current user’s value point balance. ### Claim step reward - [POST /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim](https://developers.xsolla.com/api/shop-builder/reward-chain-client/claim-user-reward-chain-step-reward.md): Client endpoint. Claims the current user’s step reward from a reward chain. ## Clans client ### Get top 10 contributors to reward chain under clan - [GET /v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top](https://developers.xsolla.com/api/shop-builder/clan-reward-chain-client/get-user-clan-top-contributors.md): Retrieves the list of top 10 contributors to the specific reward chain under the current user's clan. If a user doesn't belong to a clan, the call returns an empty array. ### Update current user's clan - [PUT /v2/project/{project_id}/user/clan/update](https://developers.xsolla.com/api/shop-builder/clan-reward-chain-client/user-clan-update.md): Updates a current user's clan via user attributes. Claims all rewards from reward chains that were not claimed for a previous clan and returns them in the response. If the user was in a clan and now is not — their inclusion in the clan will be revoked. If the user changed the clan — the clan will be changed. ## Admin ### Get list of offer chains - [GET /v2/project/{project_id}/admin/offer_chain](https://developers.xsolla.com/api/shop-builder/offer-chain-admin/admin-get-offer-chains.md): Gets list of offer chains for administration. NoticeAll projects have a limit on to the number of items that can be returned in a single response. The default and maximum value is 10 items per response. To get more data, use the limit and offset query parameters for pagination. ### Create offer chain - [POST /v2/project/{project_id}/admin/offer_chain](https://developers.xsolla.com/api/shop-builder/offer-chain-admin/admin-create-offer-chain.md): Creates an offer chain. ### Get offer chain - [GET /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://developers.xsolla.com/api/shop-builder/offer-chain-admin/admin-get-offer-chain.md): Gets a particular offer chain for administration. ### Update offer chain - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://developers.xsolla.com/api/shop-builder/offer-chain-admin/admin-update-offer-chain.md): Updates a particular offer chain. ### Delete offer chain - [DELETE /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://developers.xsolla.com/api/shop-builder/offer-chain-admin/admin-delete-offer-chain.md): Deletes a particular offer chain. After deletion:All rewards already received by users are retained.Uncompleted steps become unavailable, and their rewards can no longer be obtained. Unlike disabling the offer chain via the Toggle offer chain call, deletion is irreversible and user progress is not preserved. ### Toggle offer chain - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle](https://developers.xsolla.com/api/shop-builder/offer-chain-admin/admin-toggle-offer-chain.md): Enables or disables an offer chain. When the offer chain is disabled, users temporarily lose access to it, but their progress is preserved. After the offer chain is re-enabled, users can continue from the step where they left off. ## Admin ### Get list of daily rewards - [GET /v2/project/{project_id}/admin/daily_chain](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-get-daily-chains.md): Gets a list of daily rewards for administration. NoticeA method returns a paginated list of items. The maximum and default value is 50 items per response. To get more items from the list, use the limit and offset parameters and fetch more pages. For example, when calling a method with limit = 25 and offset = 100, the response returns 25 items starting from the 101st item in the overall list. ### Create daily reward - [POST /v2/project/{project_id}/admin/daily_chain](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-create-daily-chain.md): Creates a daily reward. ### Get daily reward - [GET /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-get-daily-chain.md): Gets a particular daily reward for administration. ### Update daily reward - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-update-daily-chain.md): Updates a particular daily reward. ### Delete daily reward - [DELETE /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-delete-daily-chain.md): Deletes a particular daily reward. ### Toggle daily reward - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-toggle-daily-chain.md): Enables or disables a daily reward. ### Reset daily reward - [POST /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset](https://developers.xsolla.com/api/shop-builder/daily-chain-admin/admin-reset-daily-chain.md): Resets progress for all users in the daily reward. Applies only to daily rewards of the rolling type. ## Client ### Get current user's daily rewards - [GET /v2/project/{project_id}/user/daily_chain](https://developers.xsolla.com/api/shop-builder/daily-chain-client/get-daily-chains-list.md): Client endpoint. Gets the current user's daily rewards. NoticeA method returns a paginated list of items. The maximum and default value is 50 items per response. To get more items from the list, use the limit and offset parameters and fetch more pages. For example, when calling a method with limit = 25 and offset = 100, the response returns 25 items starting from the 101st item in the overall list. ### Get current user's daily reward by its ID - [GET /v2/project/{project_id}/user/daily_chain/{daily_chain_id}](https://developers.xsolla.com/api/shop-builder/daily-chain-client/get-user-daily-chain-by-id.md): Client endpoint. Gets the current user’s daily reward by its ID. ### Claim daily reward step - [POST /v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim](https://developers.xsolla.com/api/shop-builder/daily-chain-client/claim-user-daily-chain-step-reward.md): Client endpoint. Claims the current user's step reward from a daily reward. All steps can only be claimed in sequential order. The reward for a missed step cannot be obtained for virtual or real currency, or by watching an ad ## Admin ### Get information about upsell in project - [GET /v2/project/{project_id}/admin/items/upsell](https://developers.xsolla.com/api/shop-builder/upsell-admin/get-upsell-configurations-for-project-admin.md): Retrieves the information about upsell in project: whether it's enabled, type of upsell, and the SKU list of items that are a part of this upsell. ### Create upsell - [POST /v2/project/{project_id}/admin/items/upsell](https://developers.xsolla.com/api/shop-builder/upsell-admin/post-upsell.md): Creates an upsell for a project. ### Update upsell - [PUT /v2/project/{project_id}/admin/items/upsell](https://developers.xsolla.com/api/shop-builder/upsell-admin/put-upsell.md): Update an upsell for a project. ### Activate/Deactivate project's upsell - [PUT /v2/project/{project_id}/admin/items/upsell/{toggle}](https://developers.xsolla.com/api/shop-builder/upsell-admin/put-upsell-toggle-active-inactive.md): Changes an upsell’s status in a project to be either active or inactive. ## Client ### Get list of upsell items in project - [GET /v2/project/{project_id}/items/upsell](https://developers.xsolla.com/api/shop-builder/upsell-client/get-upsell-for-project-client.md): Gets a list of upsell items in a project if they have already been set up. ## Admin ### Import items via JSON file - [POST /v1/projects/{project_id}/import/from_external_file](https://developers.xsolla.com/api/shop-builder/connector-admin/import-items-from-external-file.md): Imports items into the store from a JSON file via the specified URL. Refer to the documentation for more information about import from a JSON file. ### Get status of items import - [GET /v1/admin/projects/{project_id}/connectors/import_items/import/status](https://developers.xsolla.com/api/shop-builder/connector-admin/get-items-import-status.md): Retrieves information about the progress of importing items into the project. This API call retrieves data on the last import carried out through the API or Publisher Account.