> ## Documentation Index
> Fetch the complete documentation index at: https://docs.belio.co.ke/llms.txt
> Use this file to discover all available pages before exploring further.

# List Bundles

> Retrieve a list of bundles for a product type

<Note>
  Refer to [Authentication](/authentication) for information on how to obtain a
  bearer token. This endpoint requires the `bundle.list` API client
  authorization scope to access the list of bundles. You can set up scopes on
  the [API Clients](https://cloud.belio.co.ke/team-overview/api-access-keys)
  page.
</Note>

### Rate Limit

This endpoint is rate limited to **1** request per second.


## OpenAPI

````yaml GET /bundle/{productType}
openapi: 3.1.0
info:
  title: Belio API
  description: OpenAPI Specification for Belio's REST API
  contact:
    name: Belio API Support
    url: https://belio.co.ke
  version: 1.0.0
servers:
  - url: https://api.belio.co.ke
    description: API Server
security:
  - bearerAuth: []
paths:
  /bundle/{productType}:
    get:
      tags:
        - Bundle
      description: Retrieve a list of bundles for a product type
      operationId: listBundles
      parameters:
        - name: productType
          in: path
          required: true
          schema:
            type: string
            enum:
              - SMS
              - DATA_BUNDLE
          description: Type of product associated with the bundle e.g SMS, DATA_BUNDLE
      responses:
        '200':
          description: List of available bundles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BundlesResponse'
        '401':
          description: Unauthenticated - invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '403':
          description: Unauthorized - Permission denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not Found - the requested resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '429':
          description: Rate limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
components:
  schemas:
    BundlesResponse:
      type: object
      properties:
        desc:
          type: object
          description: The response
          properties:
            result:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - DataBundleResponse
                      - SmsBundleResponse
                    description: Type of product associated with the bundle
                  reference:
                    type: string
                    description: Unique identifier for the bundle
                  band:
                    type: string
                    enum:
                      - STARTER
                      - STANDARD
                      - ENTERPRISE
                      - CUSTOM
                      - PERSONAL
                      - SANDBOX
                    description: Category of the bundle
                  bandName:
                    type: string
                    description: Specific category name of the bundle
                  rates:
                    type: object
                    description: Pricing details for different networks
                    properties:
                      Safaricom:
                        type: number
                        format: float
                        description: Price of the bundle for Safaricom network
                      Airtel:
                        type: number
                        format: float
                        description: Price of the bundle for Airtel network
                  balances:
                    type: array
                    description: List of balances associated with the bundle
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                            - DataBundleBalanceResponse
                            - SmsBundleBalanceResponse
                          description: Type of product associated with the balance
                        id:
                          type: number
                          description: Unique identifier for the balance
                        channel:
                          type: string
                          enum:
                            - Safaricom
                            - Airtel
                          description: Network channel associated with the balance
                        denomination:
                          type: string
                          enum:
                            - 10MB
                            - 20MB
                            - 25MB
                            - 30MB
                            - 50MB
                            - 100MB
                            - 150MB
                            - 200MB
                            - 250MB
                            - 500MB
                            - 750MB
                            - 1GB
                            - 2GB
                            - 3GB
                            - 5GB
                            - 10GB
                          description: >-
                            Denomination for the data bundle balance. Only
                            available when type is `DataBundleBalanceResponse`
                        balance:
                          type: number
                          format: float
                          description: Current balance amount
                        allotted:
                          type: number
                          format: float
                          description: Total amount allotted to the balance
                        reserved:
                          type: number
                          format: float
                          description: Amount reserved from the balance
                        expiry:
                          type: string
                          format: date-time
                          description: Expiry date of the balance
                  validity:
                    type:
                      - string
                      - 'null'
                    description: Validity period of the bundle e.g 30 days
                  createdAt:
                    type: string
                    format: date-time
                    description: Timestamp when the bundle was created
                  updatedAt:
                    type:
                      - string
                      - 'null'
                    format: date-time
                    description: Timestamp when the bundle was last updated
    APIError:
      type: object
      properties:
        desc:
          type: string
        result:
          description: Optional structured error details.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````