> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.neetocal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List packages

> List packages in the workspace.

<Warning>This endpoint is part of API v1, which is deprecated. Please use the [v2 API](/getting-started/introduction) instead.</Warning>

<Info>Replace `{your-subdomain}` with your workspace’s subdomain. <br /> Learn how to find your subdomain in [Workspace subdomain](/getting-started/workspace-subdomain).</Info>


## OpenAPI

````yaml bundled-v1/packages.yaml GET /packages
openapi: 3.0.3
info:
  title: NeetoCal Packages APIs
  version: 1.0.0
servers:
  - description: NeetoCal APIs
    url: https://{your-subdomain}.neetocal.com/api/external/v1
    variables:
      your-subdomain:
        default: spinkart
        description: >-
          Replace **spinkart** with your [workspace's
          subdomain](/getting-started/workspace-subdomain).
security: []
tags:
  - name: Packages
    description: APIs to manage packages of the workspace.
paths:
  /packages:
    get:
      tags:
        - Packages
      summary: List packages
      description: List packages in the workspace.
      parameters:
        - $ref: '#/components/parameters/api_key_header'
        - $ref: '#/components/parameters/page_number_param'
        - $ref: '#/components/parameters/page_size_param'
      responses:
        '200':
          description: OK - Request succeeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/package_list_response'
components:
  parameters:
    api_key_header:
      in: header
      name: X-Api-Key
      description: >-
        Use the X-Api-Key header to provide your workspace API key. Refer to
        [Authentication](/getting-started/authentication) for more information.
      required: true
      schema:
        type: string
    page_number_param:
      in: query
      name: page_number
      description: >-
        Retrieve paginated results by specifying the desired page number. If
        this parameter is absent, all results will be returned.
      required: false
      schema:
        type: integer
    page_size_param:
      in: query
      name: page_size
      description: >-
        Set the number of results returned in the response. Defaulting to 30
        when omitted.
      required: false
      schema:
        type: integer
  schemas:
    package_list_response:
      type: object
      properties:
        packages:
          type: array
          items:
            $ref: '#/components/schemas/package'
          description: >-
            Array of packages available in the workspace, each containing fee
            configuration and package details.
        pagination:
          $ref: '#/components/schemas/pagination'
          description: >-
            Pagination information including total records, pages, and current
            page details.
    package:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the package.
          example: aff17ff8-1bf8-4e77-a3c5-2f86104f9a20
        name:
          type: string
          description: Human-readable name for the package.
          example: Consultation Package
        slug:
          type: string
          description: >-
            URL-friendly identifier for the package, used in public URLs and API
            calls.
          example: consultation-package
        status:
          type: string
          description: Current status of the package (e.g., "enabled", "disabled").
          example: enabled
          enum:
            - enabled
            - disabled
        duration:
          type: integer
          description: Duration of the package in seconds.
          example: 7200
        fee:
          $ref: '#/components/schemas/package_fee'
          description: >-
            Fee configuration for the package, including amount, currency, and
            payment settings.
    pagination:
      type: object
      properties:
        total_records:
          type: integer
          description: Total number of records.
        total_pages:
          type: integer
          description: Total number of pages available.
        current_page_number:
          type: integer
          description: Current page number.
        page_size:
          type: integer
          description: Number of records per page.
    package_fee:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the fee configuration.
          example: 1b217cc5-69b5-4fb1-a13c-c22f9c14e7f9
        amount:
          type: string
          description: The fee amount as a string to preserve decimal precision.
          example: '120.0'
        currency:
          type: string
          description: The currency code for the fee amount (e.g., "inr", "usd").
          example: inr
        feeable_id:
          type: string
          description: >-
            ID of the entity this fee is associated with (package ID in this
            case).
          example: aff17ff8-1bf8-4e77-a3c5-2f86104f9a20
        feeable_type:
          type: string
          description: Type of entity this fee is associated with.
          example: Package
        payment_provider:
          type: string
          description: >-
            Payment service provider used for processing payments (e.g.,
            "stripe", "cash").
          example: cash
        kind:
          type: string
          description: Type of fee structure (e.g., "fixed", "percentage").
          example: fixed
        min_amount:
          type: string
          description: Minimum amount that can be charged for this fee.
          example: '120.0'
        taxes:
          type: array
          description: Array of tax configurations applied to this fee.
          items:
            type: object
        is_default:
          type: boolean
          description: >-
            Indicates whether this is the default fee configuration for the
            package.
        display_amount:
          type: string
          nullable: true
          description: >-
            Custom display amount for the fee (if different from the actual
            amount).
        is_tax_enabled:
          type: boolean
          description: Whether tax calculation is enabled for this fee.
        is_tip_enabled:
          type: boolean
          description: Whether tipping is enabled for this fee.
        is_tax_applicable_on_tip:
          type: boolean
          description: Whether taxes are calculated on top of tips.
        vpas:
          type: array
          description: Virtual Payment Addresses for UPI payments (India-specific).
          items:
            type: object
        amount_in_smallest_currency_unit:
          type: integer
          description: >-
            Fee amount in the smallest currency unit (e.g., paise for INR, cents
            for USD).
          example: 12000

````