Get Bundle Group

Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status.

GET/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}
API
Management
Updated
Apr 26, 2026

management-api:GET:/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}

Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status.

API ownership

  • API family: Management API
  • Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
  • Do not use from: Browser-only storefront code or public clients.
  • Guide route: /apis/management/latest

The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.

Operation

  • Method: GET
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/bundle-groups/\{bundle_group_id\}
  • Summary: Get Bundle Group
  • Description: Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status.
  • OpenAPI contract: management-api
  • Operation ID: Not documented in the OpenAPI contract.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters4 parameters
NameInRequiredTypeDescription
app_slugpathYesstringApp slug
team_slugpathYesstringTeam slug
product_bundle_group_idpathYesstringProduct bundle group UUID
searchqueryNostringSearch on bundle name
Request bodyNo documented body

Not documented in the OpenAPI contract.

Responses4 statuses
StatusDescriptionContent
200Product bundle groupapplication/json (object)
400Invalid request (e.g. bad UUID, validation error)application/json (object)
401Unauthorized accessapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

Product Bundle Group Response

PropertyTypeRequiredDetails
dataobjectNo-
detailsstring[]NoAdditional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes
successbooleanNo-
Bundle Group
PropertyTypeRequiredDetails
bundlesobject[]NoBundles associated with the group
complianceobjectNoCompliance level for the bundle group, "none" means that there is no valid/complete configuration, "partial" means that some of the rules are valid, "full" means that all rules are valid
created_atstringNoCreation timestamp
descriptionstringNo-
end_datestringNoEnd date of the bundle group
idstringNoID
marketsobject[]NoMarkets associated with the bundle group
namestringNoName of the bundle group
start_datestringNoStart date of the bundle group
translationsobjectNoBundle group translations
updated_atstringNoLast updated timestamp
Bundle
PropertyTypeRequiredDetails
attributesobject[]No-
compliantobjectNoCompliance level for the bundle
created_atstringNoCreation timestamp
discount_percentageintegerNoDiscount percentage [1-100]
discount_typestringNoDiscount type [fixed, relative]
discountsobjectNoDiscount for bundle. Amount is stored in cents
idstringNoID
rulesobject[]NoBundle rules
statusstringNoStatus of the bundle
updated_atstringNoLast updated timestamp
Compliance
PropertyTypeRequiredDetails
infostring[]NoExplanation of any issues with the bundle, it will be empty if the bundle is fully compliant
levelstringNoCompliance level for the bundle, "full" if all rules are valid, "partial" if some rules are valid but it can still be used as a bundle, "none" if no rules are valid
Bundle Group Market
PropertyTypeRequiredDetails
activebooleanNo-
country_codesstring[]No-
created_atstringNo-
currency_codestringNo-
idstringNo-
localestringNo-
namestringNo-
slugstringNo-
store_group_idstringNoStore group ID
store_group_slugstringNoStore group slug
updated_atstringNo-
Bundle Group Translation
PropertyTypeRequiredDetails
descriptionobject[]No-
nameobject[]No-
{
  "data": {
    "bundles": [
      {
        "attributes": [],
        "compliant": {
          "info": null,
          "level": null
        },
        "created_at": "string",
        "discount_percentage": 0,
        "discount_type": "string",
        "discounts": {},
        "id": "string",
        "rules": [],
        "status": "string",
        "updated_at": "string"
      }
    ],
    "compliance": {
      "info": [
        "string"
      ],
      "level": "string"
    },
    "created_at": "string",
    "description": "string",
    "end_date": "string",
    "id": "string",
    "markets": [
      {
        "active": false,
        "country_codes": [],
        "created_at": "string",
        "currency_code": "string",
        "id": "string",
        "locale": "string",
        "name": "string",
        "slug": "string",
        "store_group_id": "string",
        "store_group_slug": "string",
        "updated_at": "string"
      }
    ],
    "name": "string",
    "start_date": "string",
    "translations": {
      "description": [
        {
          "id": null,
          "locale": null,
          "value": null
        }
      ],
      "name": [
        {
          "id": null,
          "locale": null,
          "value": null
        }
      ]
    },
    "updated_at": "string"
  },
  "details": [
    "string"
  ],
  "success": false
}

400 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

401 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

500 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

Contract identity

Use these fields to confirm you are implementing the intended endpoint contract.

  • API family: Management API
  • Method: GET
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/bundle-groups/\{bundle_group_id\}
  • Operation ID: Not documented in the OpenAPI contract.
  • OpenAPI tag: Product Bundle Groups
  • OpenAPI summary: Get Bundle Group

Get Bundle Group

# Get Bundle Group Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status.
GET /api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}
Purpose

Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status.

Required inputs

app_slug path team_slug path product_bundle_group_id path

Primary response

200 ยท Product bundle group

Operation key

management-api:GET:/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}

## API ownership - API family: Management API - Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data. - Do not use from: Browser-only storefront code or public clients. - Guide route: [/apis/management/latest](/apis/management/latest) The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation. ## Operation - Method: `GET` - Path: `/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}` - Summary: Get Bundle Group - Description: Retrieves a single product bundle group including all associated bundles, markets, translations, and compliance status. - OpenAPI contract: management-api - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:GET:/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}` Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID. ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | app_slug | path | Yes | string | App slug | | team_slug | path | Yes | string | Team slug | | product_bundle_group_id | path | Yes | string | Product bundle group UUID | | search | query | No | string | Search on bundle name | ## Request body Not documented in the OpenAPI contract. ## Responses | Status | Description | Content | | --- | --- | --- | | 200 | Product bundle group | application/json (object) | | 400 | Invalid request (e.g. bad UUID, validation error) | application/json (object) | | 401 | Unauthorized access | application/json (object) | | 500 | Internal server error | application/json (object) | ### 200 - object #### Product Bundle Group Response | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object | No | - | | `details` | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes | | `success` | boolean | No | - | ##### Bundle Group | Property | Type | Required | Details | | --- | --- | --- | --- | | `bundles` | object[] | No | Bundles associated with the group | | `compliance` | object | No | Compliance level for the bundle group, "none" means that there is no valid/complete configuration, "partial" means that some of the rules are valid, "full" means that all rules are valid | | `created_at` | string | No | Creation timestamp | | `description` | string | No | - | | `end_date` | string | No | End date of the bundle group | | `id` | string | No | ID | | `markets` | object[] | No | Markets associated with the bundle group | | `name` | string | No | Name of the bundle group | | `start_date` | string | No | Start date of the bundle group | | `translations` | object | No | Bundle group translations | | `updated_at` | string | No | Last updated timestamp | ##### Bundle | Property | Type | Required | Details | | --- | --- | --- | --- | | `attributes` | object[] | No | - | | `compliant` | object | No | Compliance level for the bundle | | `created_at` | string | No | Creation timestamp | | `discount_percentage` | integer | No | Discount percentage [1-100] | | `discount_type` | string | No | Discount type [fixed, relative] | | `discounts` | object | No | Discount for bundle. Amount is stored in cents | | `id` | string | No | ID | | `rules` | object[] | No | Bundle rules | | `status` | string | No | Status of the bundle | | `updated_at` | string | No | Last updated timestamp | ##### Compliance | Property | Type | Required | Details | | --- | --- | --- | --- | | `info` | string[] | No | Explanation of any issues with the bundle, it will be empty if the bundle is fully compliant | | `level` | string | No | Compliance level for the bundle, "full" if all rules are valid, "partial" if some rules are valid but it can still be used as a bundle, "none" if no rules are valid | ##### Bundle Group Market | Property | Type | Required | Details | | --- | --- | --- | --- | | `active` | boolean | No | - | | `country_codes` | string[] | No | - | | `created_at` | string | No | - | | `currency_code` | string | No | - | | `id` | string | No | - | | `locale` | string | No | - | | `name` | string | No | - | | `slug` | string | No | - | | `store_group_id` | string | No | Store group ID | | `store_group_slug` | string | No | Store group slug | | `updated_at` | string | No | - | ##### Bundle Group Translation | Property | Type | Required | Details | | --- | --- | --- | --- | | `description` | object[] | No | - | | `name` | object[] | No | - |
Generated example (synthetic) ```json { "data": { "bundles": [ { "attributes": [], "compliant": { "info": null, "level": null }, "created_at": "string", "discount_percentage": 0, "discount_type": "string", "discounts": {}, "id": "string", "rules": [], "status": "string", "updated_at": "string" } ], "compliance": { "info": [ "string" ], "level": "string" }, "created_at": "string", "description": "string", "end_date": "string", "id": "string", "markets": [ { "active": false, "country_codes": [], "created_at": "string", "currency_code": "string", "id": "string", "locale": "string", "name": "string", "slug": "string", "store_group_id": "string", "store_group_slug": "string", "updated_at": "string" } ], "name": "string", "start_date": "string", "translations": { "description": [ { "id": null, "locale": null, "value": null } ], "name": [ { "id": null, "locale": null, "value": null } ] }, "updated_at": "string" }, "details": [ "string" ], "success": false } ```
### 400 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 401 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 500 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Management API - Method: `GET` - Path: `/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}` - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:GET:/api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}` - OpenAPI tag: Product Bundle Groups - OpenAPI summary: Get Bundle Group