This API allows getting any kind of sellable items or specific item.
- Get list of reward chains
Shop Builder API (2.0.0)
- Version: 2.0.0
- Servers:
https://store.xsolla.com/api - Contact Us by Email
- 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.
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.
To pass attributes before a purchase, you can use Xsolla Login API or pass them into user.attributes property while generating token using Pay Station API.
Project ID. You can find this parameter in your Publisher Account next to the name of the project.
- Mock serverhttps://xsolla.redocly.app/_mock/api/shop-builder/v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards
- https://store.xsolla.com/api/v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
-u <username>:<password> \
https://xsolla.redocly.app/_mock/api/shop-builder/v2/project/44056/admin/items/value_point_3/value_points/rewardsProject ID. You can find this parameter in your Publisher Account next to the name of the project.
- Mock serverhttps://xsolla.redocly.app/_mock/api/shop-builder/v3/project/{project_id}/admin/reward_chain
- https://store.xsolla.com/api/v3/project/{project_id}/admin/reward_chain
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://xsolla.redocly.app/_mock/api/shop-builder/v3/project/44056/admin/reward_chain?limit=50&offset=0&enabled=0'{ "has_more": true, "items": [ { … }, { … } ] }
Project ID. You can find this parameter in your Publisher Account next to the name of the project.
A reward chain.
Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Object with localizations for item’s description. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Object with localizations for item’s description. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Object with localizations for long description of item. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both variants for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Object with localizations for long description of item. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character locale codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both variants for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Reward chain validity periods. If multiple periods are specified, both date_from and date_until are required.
Start date for the specified reward chain.
Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Object with localizations for item’s name. Accepts value in one of two formats: two-letter lowercase language codes (e.g., en) or five-character language codes (e.g., en-US). While both formats are accepted as input, responses return two-letter lowercase language codes. When both options for the same language are provided (e.g., en and en-US), the last provided value is stored. You can find the full list of supported languages in the documentation.
Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores.
Conditions for validating user attributes. Determine reward availability for reward chain steps based on whether user attributes match all specified conditions.
Recurrent reset period of the reward chain.
Weekly type of reward chain refresh.
Conditions for validating user attributes. Determine chain availability based on whether user attributes match all specified conditions.
Whether the chain is visible to all users:
- If
true, the chain is always displayed, regardless of the user's authentication status or attributes. - If
false, the chain is displayed only if no personalized chain is found. For example, if the user is not authenticated or their attributes don’t match any personalized chain.
Applies only in the context of personalized chains and is used if the attribute_conditions array is not passed.
Whether to reset the reward chain (value points and progress of all users) after its end date:
- If
true, the reward chain will be reset after its end date. - If
false, the reward chain will not be reset after its end date.
Can’t be
true if: - A reset period is set in
recurrent_schedule. - The
nullvalue is passed inperiods.date_until.
- Mock serverhttps://xsolla.redocly.app/_mock/api/shop-builder/v3/project/{project_id}/admin/reward_chain
- https://store.xsolla.com/api/v3/project/{project_id}/admin/reward_chain
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://xsolla.redocly.app/_mock/api/shop-builder/v3/project/44056/admin/reward_chain \
-H 'Content-Type: application/json' \
-d '{
"name": {
"en": "Reward chain"
},
"description": {
"en": "Reward chain description."
},
"long_description": {
"en": "Reward chain long description."
},
"is_enabled": true,
"image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
"order": 1,
"periods": [
{
"date_from": "2026-01-01T01:00:00+05:00",
"date_until": "2026-01-31T23:59:59+05:00"
},
{
"date_from": "2026-02-01T01:00:00+05:00",
"date_until": "2026-02-28T23:59:59+05:00"
}
],
"value_point": {
"sku": "com.xsolla.value_point_1"
},
"steps": [
{
"name": {
"en": "First step of the reward chain"
},
"image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
"reward": [
{
"sku": "com.xsolla.item_1",
"quantity": 5
},
{
"sku": "com.xsolla.item_2",
"quantity": 1
}
],
"price": {
"amount": 10
}
},
{
"name": {
"en": "Second step of the reward chain"
},
"image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
"reward": [
{
"sku": "com.xsolla.item_3",
"quantity": 5
},
{
"sku": "com.xsolla.item_4",
"quantity": 1
}
],
"price": {
"amount": 15
}
}
],
"recurrent_schedule": {
"interval_type": "weekly",
"day_of_week": 1,
"time": "01:00:00+08:00"
},
"attribute_conditions": [
{
"attribute": "race",
"operator": "eq",
"value": "ork",
"type": "string",
"can_be_missing": false
}
],
"is_always_visible": true,
"is_reset_after_end": true
}'{ "reward_chain_id": 10 }