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

# List all price levels

> Returns a list of price levels. NOTE: QuickBooks Desktop does not support pagination for price levels; hence, there is no `cursor` parameter. Users typically have few price levels.



## OpenAPI

````yaml GET /quickbooks-desktop/price-levels
openapi: 3.1.0
info:
  title: Conductor API
  version: 0.0.1
servers:
  - url: https://api.conductor.is/v1
security:
  - BearerAuth: []
paths:
  /quickbooks-desktop/price-levels:
    get:
      summary: List all price levels
      description: >-
        Returns a list of price levels. NOTE: QuickBooks Desktop does not
        support pagination for price levels; hence, there is no `cursor`
        parameter. Users typically have few price levels.
      parameters:
        - in: query
          name: ids
          description: >-
            Filter for specific price levels by their QuickBooks-assigned unique
            identifier(s).


            **IMPORTANT**: If you include this parameter, QuickBooks will ignore
            all other query parameters for this request.


            **NOTE**: If any of the values you specify in this parameter are not
            found, the request will return an error.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for specific price levels by their QuickBooks-assigned
              unique identifier(s).


              **IMPORTANT**: If you include this parameter, QuickBooks will
              ignore all other query parameters for this request.


              **NOTE**: If any of the values you specify in this parameter are
              not found, the request will return an error.
            example:
              - 80000001-1234567890
        - in: query
          name: names
          description: >-
            Filter for specific price levels by their name(s), case-insensitive.
            Like `id`, `name` is a unique identifier for a price level.


            **IMPORTANT**: If you include this parameter, QuickBooks will ignore
            all other query parameters for this request.


            **NOTE**: If any of the values you specify in this parameter are not
            found, the request will return an error.
          schema:
            type: array
            items:
              type: string
            description: >-
              Filter for specific price levels by their name(s),
              case-insensitive. Like `id`, `name` is a unique identifier for a
              price level.


              **IMPORTANT**: If you include this parameter, QuickBooks will
              ignore all other query parameters for this request.


              **NOTE**: If any of the values you specify in this parameter are
              not found, the request will return an error.
            example:
              - Wholesale 20% Discount
        - in: query
          name: limit
          description: >-
            The maximum number of objects to return.


            **IMPORTANT**: QuickBooks Desktop does not support cursor-based
            pagination for price levels. This parameter will limit the response
            size, but you cannot fetch subsequent results using a cursor. For
            pagination, use the name-range parameters instead (e.g.,
            `nameFrom=A&nameTo=B`).


            When this parameter is omitted, the endpoint returns all price
            levels without limit, unlike paginated endpoints which default to
            150 records. This is acceptable because price levels typically have
            low record counts.
          schema:
            type: integer
            minimum: 1
            description: >-
              The maximum number of objects to return.


              **IMPORTANT**: QuickBooks Desktop does not support cursor-based
              pagination for price levels. This parameter will limit the
              response size, but you cannot fetch subsequent results using a
              cursor. For pagination, use the name-range parameters instead
              (e.g., `nameFrom=A&nameTo=B`).


              When this parameter is omitted, the endpoint returns all price
              levels without limit, unlike paginated endpoints which default to
              150 records. This is acceptable because price levels typically
              have low record counts.
            example: 10
        - in: query
          name: status
          description: Filter for price levels that are active, inactive, or both.
          schema:
            type: string
            enum:
              - active
              - all
              - inactive
            default: active
            description: Filter for price levels that are active, inactive, or both.
            example: active
        - in: query
          name: updatedAfter
          description: >-
            Filter for price levels updated on or after this date/time. Accepts
            the following ISO 8601 formats:

            - **date-only** (YYYY-MM-DD) - QuickBooks Desktop interprets the
            date as the **start of the specified day** in the local timezone of
            the end-user's computer (e.g., `2025-01-01` →
            `2025-01-01T00:00:00`).

            - **datetime without timezone** (YYYY-MM-DDTHH:mm:ss) - QuickBooks
            Desktop interprets the timestamp in the local timezone of the
            end-user's computer.

            - **datetime with timezone** (YYYY-MM-DDTHH:mm:ss±HH:mm) -
            QuickBooks Desktop interprets the timestamp using the specified
            timezone.
          schema:
            type: string
            description: >-
              Filter for price levels updated on or after this date/time.
              Accepts the following ISO 8601 formats:

              - **date-only** (YYYY-MM-DD) - QuickBooks Desktop interprets the
              date as the **start of the specified day** in the local timezone
              of the end-user's computer (e.g., `2025-01-01` →
              `2025-01-01T00:00:00`).

              - **datetime without timezone** (YYYY-MM-DDTHH:mm:ss) - QuickBooks
              Desktop interprets the timestamp in the local timezone of the
              end-user's computer.

              - **datetime with timezone** (YYYY-MM-DDTHH:mm:ss±HH:mm) -
              QuickBooks Desktop interprets the timestamp using the specified
              timezone.
            example: '2025-01-01T12:34:56.000Z'
        - in: query
          name: updatedBefore
          description: >-
            Filter for price levels updated on or before this date/time. Accepts
            the following ISO 8601 formats:

            - **date-only** (YYYY-MM-DD) - QuickBooks Desktop interprets the
            date as the **end of the specified day** in the local timezone of
            the end-user's computer (e.g., `2025-01-01` →
            `2025-01-01T23:59:59`).

            - **datetime without timezone** (YYYY-MM-DDTHH:mm:ss) - QuickBooks
            Desktop interprets the timestamp in the local timezone of the
            end-user's computer.

            - **datetime with timezone** (YYYY-MM-DDTHH:mm:ss±HH:mm) -
            QuickBooks Desktop interprets the timestamp using the specified
            timezone.
          schema:
            type: string
            description: >-
              Filter for price levels updated on or before this date/time.
              Accepts the following ISO 8601 formats:

              - **date-only** (YYYY-MM-DD) - QuickBooks Desktop interprets the
              date as the **end of the specified day** in the local timezone of
              the end-user's computer (e.g., `2025-01-01` →
              `2025-01-01T23:59:59`).

              - **datetime without timezone** (YYYY-MM-DDTHH:mm:ss) - QuickBooks
              Desktop interprets the timestamp in the local timezone of the
              end-user's computer.

              - **datetime with timezone** (YYYY-MM-DDTHH:mm:ss±HH:mm) -
              QuickBooks Desktop interprets the timestamp using the specified
              timezone.
            example: '2025-02-01T12:34:56.000Z'
        - in: query
          name: nameContains
          description: >-
            Filter for price levels whose `name` contains this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameStartsWith` or `nameEndsWith`.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` contains this substring,
              case-insensitive.


              **NOTE**: If you use this parameter, you cannot also use
              `nameStartsWith` or `nameEndsWith`.
            example: ABC
        - in: query
          name: nameStartsWith
          description: >-
            Filter for price levels whose `name` starts with this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameContains` or `nameEndsWith`.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` starts with this substring,
              case-insensitive.


              **NOTE**: If you use this parameter, you cannot also use
              `nameContains` or `nameEndsWith`.
            example: ABC
        - in: query
          name: nameEndsWith
          description: >-
            Filter for price levels whose `name` ends with this substring,
            case-insensitive.


            **NOTE**: If you use this parameter, you cannot also use
            `nameContains` or `nameStartsWith`.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` ends with this substring,
              case-insensitive.


              **NOTE**: If you use this parameter, you cannot also use
              `nameContains` or `nameStartsWith`.
            example: ABC
        - in: query
          name: nameFrom
          description: >-
            Filter for price levels whose `name` is alphabetically greater than
            or equal to this value.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` is alphabetically greater
              than or equal to this value.
            example: A
        - in: query
          name: nameTo
          description: >-
            Filter for price levels whose `name` is alphabetically less than or
            equal to this value.
          schema:
            type: string
            description: >-
              Filter for price levels whose `name` is alphabetically less than
              or equal to this value.
            example: Z
        - in: query
          name: itemIds
          description: Filter for price levels containing these items.
          schema:
            type: array
            items:
              type: string
            description: Filter for price levels containing these items.
            example:
              - 80000001-1234567890
        - in: query
          name: currencyIds
          description: Filter for price levels in these currencies.
          schema:
            type: array
            items:
              type: string
            description: Filter for price levels in these currencies.
            example:
              - 80000001-1234567890
        - in: header
          name: Conductor-End-User-Id
          description: The ID of the End-User to receive this request.
          schema:
            type: string
            description: The ID of the End-User to receive this request.
            example: end_usr_1234567abcdefg
            x-stainless-naming:
              typescript:
                method_argument: conductorEndUserId
              mcp:
                method_argument: conductorEndUserId
          required: true
      responses:
        '200':
          description: Returns a list of price levels.
          headers:
            Conductor-Request-Id:
              schema:
                type: string
                description: The unique identifier for this API request.
                example: req_1234567abcdefg
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectType:
                    type: string
                    const: list
                    description: The type of object. This value is always `"list"`.
                    example: list
                  url:
                    type: string
                    description: The endpoint URL where this list can be accessed.
                    example: /v1/quickbooks-desktop/price-levels
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/qbd_price_level'
                    description: The array of price levels.
                required:
                  - objectType
                  - url
                  - data
                additionalProperties: false
      security:
        - BearerAuth: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Conductor from 'conductor-node';

            const conductor = new Conductor({
              apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted
            });

            const priceLevels = await conductor.qbd.priceLevels.list({
              conductorEndUserId: 'end_usr_1234567abcdefg',
            });

            console.log(priceLevels.data);
        - lang: Python
          source: |-
            import os
            from conductor import Conductor

            conductor = Conductor(
                api_key=os.environ.get("CONDUCTOR_SECRET_KEY"),  # This is the default and can be omitted
            )
            price_levels = conductor.qbd.price_levels.list(
                conductor_end_user_id="end_usr_1234567abcdefg",
            )
            print(price_levels.data)
components:
  schemas:
    qbd_price_level:
      type: object
      properties:
        id:
          type: string
          description: >-
            The unique identifier assigned by QuickBooks to this price level.
            This ID is unique across all price levels but not across different
            QuickBooks object types.
          example: 80000001-1234567890
        objectType:
          type: string
          const: qbd_price_level
          description: The type of object. This value is always `"qbd_price_level"`.
          example: qbd_price_level
        createdAt:
          type: string
          description: >-
            The date and time when this price level was created, in ISO 8601
            format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop
            interprets in the local timezone of the end-user's computer.
          example: '2025-01-01T12:34:56.000Z'
        updatedAt:
          type: string
          description: >-
            The date and time when this price level was last updated, in ISO
            8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop
            interprets in the local timezone of the end-user's computer.
          example: '2025-02-01T12:34:56.000Z'
        revisionNumber:
          type: string
          description: >-
            The current QuickBooks-assigned revision number of this price level
            object, which changes each time the object is modified. When
            updating this object, you must provide the most recent
            `revisionNumber` to ensure you're working with the latest data;
            otherwise, the update will return an error.
          example: '1721172183'
        name:
          type: string
          description: >-
            The case-insensitive unique name of this price level, unique across
            all price levels.


            **NOTE**: Price levels do not have a `fullName` field because they
            are not hierarchical objects, which is why `name` is unique for them
            but not for objects that have parents.
          example: Wholesale 20% Discount
        isActive:
          type: boolean
          description: >-
            Indicates whether this price level is active. Inactive objects are
            typically hidden from views and reports in QuickBooks. Defaults to
            `true`.
          example: true
        priceLevelType:
          type: string
          enum:
            - fixed_percentage
            - per_item
          description: The price level's type.
          example: fixed_percentage
        fixedPercentage:
          type:
            - string
            - 'null'
          description: >-
            The fixed percentage adjustment applied to all items for this price
            level (instead of a per-item price level). Once you create the price
            level, you cannot change this.


            When this price level is applied to a customer, it automatically
            adjusts the `rate` and `amount` columns for applicable line items in
            sales orders and invoices for that customer. This value supports
            both positive and negative values - a value of "20" increases prices
            by 20%, while "-10" decreases prices by 10%.
          example: '-10.0'
        perItemPriceLevels:
          type: array
          items:
            $ref: '#/components/schemas/qbd_per_item_price_level'
          description: The per-item price level configurations for this price level.
        currency:
          type:
            - object
            - 'null'
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the names of its parent objects with its own `name`,
                separated by colons. Not case-sensitive.
              example: Parent:Child:Grandchild
          required:
            - id
            - fullName
          additionalProperties: false
          description: >-
            The price level's currency. For built-in currencies, the name and
            code are standard ISO 4217 international values. For user-defined
            currencies, all values are editable.
          example:
            id: 80000001-1234567890
            fullName: USD
      required:
        - id
        - objectType
        - createdAt
        - updatedAt
        - revisionNumber
        - name
        - isActive
        - priceLevelType
        - fixedPercentage
        - perItemPriceLevels
        - currency
      additionalProperties: false
      title: The Price Level object
      x-conductor-object-type: other
      summary: >-
        A price level is a configuration that establishes a default price for
        items. It can be applied to customers to automatically adjust item
        prices for those customers. Price levels can be either fixed percentages
        or per-item price levels.
    qbd_per_item_price_level:
      type: object
      properties:
        item:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                The unique identifier assigned by QuickBooks to this object.
                This ID is unique across all objects of the same type, but not
                across different QuickBooks object types.
              example: 80000001-1234567890
            fullName:
              type:
                - string
                - 'null'
              description: >-
                The fully-qualified unique name for this object, formed by
                combining the names of its parent objects with its own `name`,
                separated by colons. Not case-sensitive.
              example: Parent:Child:Grandchild
          required:
            - id
            - fullName
          additionalProperties: false
          description: >-
            The item associated with this per-item price level. This can refer
            to any good or service that the business buys or sells, including
            item types such as a service item, inventory item, or special
            calculation item like a discount item or sales-tax item.
          example:
            id: 80000001-1234567890
            fullName: Widget A
        customPrice:
          type:
            - string
            - 'null'
          description: >-
            The fixed amount custom price for this per-item price level that
            overrides the standard price for the specified item. Used when
            setting an absolute price value for the item in this price level.
          example: '19.99'
        customPricePercent:
          type:
            - string
            - 'null'
          description: >-
            The fixed discount percentage for this per-item price level that
            modifies the specified item's standard price. Used to create a fixed
            percentage markup or discount specific to this item within this
            price level.
          example: '15.0'
      required:
        - item
        - customPrice
        - customPricePercent
      additionalProperties: false
      title: The Per-Item Price Level object
      x-conductor-object-type: nested
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Conductor secret key using Bearer auth (e.g., `"Authorization:
        Bearer {{YOUR_SECRET_KEY}}"`).

````

Built with [Mintlify](https://mintlify.com).