# LiveOps 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 LiveOps API provides endpoints to drive ongoing player engagement with dynamic promotions and personalized experiences. Use the endpoints to manage coupons, promo codes, discounts, bonuses, unique catalog offers, reward chains, daily chains, offer chains, and upsell. 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 [LiveOps API](https://developers.xsolla.com/_bundle/api/liveops/index.yaml) ## Common ### Get all promotion list - [GET /v3/project/{project_id}/admin/promotion](https://developers.xsolla.com/api/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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. ## 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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/personalized-catalog/delete-filter-rule-by-id.md): Deletes a specific rule. ## Management ### Refresh all promotion limits for specified user - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/all](https://developers.xsolla.com/api/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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 daily rewards - [GET /v2/project/{project_id}/admin/daily_chain](https://developers.xsolla.com/api/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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 list of offer chains - [GET /v2/project/{project_id}/admin/offer_chain](https://developers.xsolla.com/api/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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/liveops/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. ## Client ### Get current user's offer chains - [GET /v2/project/{project_id}/user/offer_chain](https://developers.xsolla.com/api/liveops/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/liveops/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/liveops/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/liveops/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-client-side ### 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/liveops/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. ## Admin ### Get information about upsell in project - [GET /v2/project/{project_id}/admin/items/upsell](https://developers.xsolla.com/api/liveops/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/liveops/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/liveops/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/liveops/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/liveops/upsell-client/get-upsell-for-project-client.md): Gets a list of upsell items in a project if they have already been set up.