# Get list of bonus promotions 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. Endpoint: GET /v3/project/{project_id}/admin/promotion/bonus 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). ## Response 200 fields (application/json): - `promotions` (array) - `promotions.id` (integer) Promotion ID. Unique promotion identifier within the project. - `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":"Summer season bonus","de-DE":"Sommersaison Bonus"} - `promotions.is_enabled` (boolean) - `promotions.condition` (array,null) Set of items required to be included in the purchase for applying a promotion. If this parameters is null, a promotion will be applied to any purchases within a project. - `promotions.condition.sku` (string) Item SKU. - `promotions.bonus` (array,null) - `promotions.bonus.quantity` (number) Item quantity. - `promotions.attribute_conditions` (array) Conditions for validating user attributes. Determine promotion availability based on whether user attributes match all specified conditions. - `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" - `promotions.excluded_promotions` (array) List of promotion IDs to exclude when applying this promotion. Example: [12, 789] Example: [12,789] - `promotions.price_conditions` (array,null) Array of objects with conditions that set the price range for applying the promotion. The promotion applies only to items whose price meets all the conditions in the array. If you pass this array, set the value of the [condition](/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) object to null. - `promotions.price_conditions.operator` (string, required) Comparison operator for setting the price range for applying the promotion. Enum: "ge", "gt", "le", "lt", "eq", "ne" - `promotions.price_conditions.value` (string, required) Value for determining the price range for applying the promotion. - `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"