# Get all promotion list Gets the list of promotions of a project. Endpoint: GET /v3/project/{project_id}/admin/promotion Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) Project ID. You can find this parameter in your Publisher Account next to the name of the project. Example: 44056 ## Query parameters: - `limit` (integer) Limit for the number of elements on the page. Example: 50 - `offset` (integer) Number of the element from which the list is generated (the count starts from 0). - `enabled` (integer) Filter elements by is_enabled flag. ## Response 200 fields (application/json): - `promotions` (array) - `promotions.id` (integer) Promotion ID. Unique promotion identifier within the project. Example: 1 - `promotions.promotion_periods` (array) Promotion validity periods. If multiple periods are specified, both date_from and date_until are required. - `promotions.promotion_periods.date_from` (string, required) Start date for the specified promotion. Example: "2020-08-11T10:00:00+03:00" - `promotions.promotion_periods.date_until` (string,null) End date for the specified promotion. If set to null, the promotion is indefinite. Can be null only if a single validity period is specified. Example: "2020-08-11T20:00:00+03:00" - `promotions.name` (object) Name of promotion. Should contain key/value pairs where key is a locale with "^[a-z]{2}-[A-Z]{2}$" format, value is string. Example: {"en-US":"Coupon title","de-DE":"Gutscheintitel"} - `promotions.bonus` (array) - `promotions.bonus.item` (object) - `promotions.bonus.item.sku` (string) Unique item ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores. Example: "game_01" - `promotions.bonus.item.name` (object) Item name. Example: {"en":"Game name"} - `promotions.bonus.item.type` (string) Type of item: virtual_good/virtual_currency/bundle/physical_good/unit. Example: "unit" - `promotions.bonus.item.bundle_type` (string) Bundle type. Returned if item type is a bundle. Enum: "standard", "virtual_currency_package" - `promotions.bonus.item.description` (string,null) Item description. Example: "Game description" - `promotions.bonus.item.image_url` (string,null) Image URL. Example: "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png" - `promotions.bonus.item.content` (array) - `promotions.bonus.item.unit_items` (array) If the item has the unit type, it includes all items in the unit. In the most cases the user should choose one of them as a coupon bonus. - `promotions.bonus.item.unit_items.is_free` (boolean) - `promotions.bonus.item.unit_items.type` (string) Type of item: game_key. Example: "game_key" - `promotions.bonus.item.unit_items.drm_name` (string) DRM name. Example: "Steam" - `promotions.bonus.item.unit_items.drm_sku` (string) Unique DRM ID. The SKU may contain only lowercase and uppercase Latin alphanumeric characters, periods, dashes, and underscores. Example: "steam" - `promotions.bonus.quantity` (number) Item quantity. - `promotions.condition` (array,null) - `promotions.is_enabled` (boolean) - `promotions.type` (string) Promotion type. Example: "item_discount" - `promotions.discount` (object,null) Example: {"discount":{"percent":"10.99"}} - `promotions.discount.percent` (string,null) Percent discount. The price of cart will be decreased using a value calculated by using this percent and then rounded to 2 decimal places. Example: "10.00" - `promotions.limits` (object) Promotion limits. - `promotions.limits.per_user` (object,null) Promotion limitation for a separate user. - `promotions.limits.per_user.total` (integer) Total number of items a user can purchase. You can set this number in Publisher Account or use admin endpoints for Store entities (limits object). Example: 5 - `promotions.limits.per_item` (integer,null) Global item limitation. Example: 10 - `promotions.limits.recurrent_schedule` (object,null) Limit refresh period. - `promotions.limits.recurrent_schedule.per_user` (object) User limit refresh period. - `promotions.limits.recurrent_schedule.per_user.interval_type` (string) Recurrent refresh period type. Enum: "daily", "weekly", "monthly" - `promotions.limits.recurrent_schedule.per_user.day_of_week` (integer,null) Day of the week when the limits refresh. Where 1 is Monday and 7 is Sunday. Not null only for weekly limit refresh period type. - `promotions.limits.recurrent_schedule.per_user.day_of_month` (integer,null) Day of the month when limits refresh. If there's no selected day of the month as it's shorter, then the refresh will occur on the last day of the month. Not null only for monthly limit refresh period type. - `promotions.limits.recurrent_schedule.per_user.time` (string) Time of limit refresh in the desired time zone (rounding to hours). Example: "11:00:00+03:00" - `promotions.limits.recurrent_schedule.per_user.reset_next_date` (integer) Date and time when limits refresh (Unix Timestamp). Example: 1677553200 - `promotions.limits.recurrent_schedule.per_user.displayable_reset_start_date` (string) Date and time of the first limit refresh (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `promotions.limits.recurrent_schedule.per_user.displayable_reset_next_date` (string) Date and time when limits should reset (ISO 8601). Example: "2023-02-28T11:00:00+08:00" - `total_promotions_count` (integer) Total number of promotions. - `active_promotions_count` (integer) Number of active promotions. - `inactive_promotions_count` (integer) Number of deactivated promotions. ## Response 401 fields (application/json): - `statusCode` (integer) Example: 401 - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred"