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

# List Expenses

> Retrieve a list of `Expense` objects.

You can use query parameters to filter, sort, and paginate the results.


You can set the `money_decimals` query parameter to specify the number of decimal places for money fields.

Examples:

- `?money_decimals=2` will return money values rounded to 2 decimal places.
- `?money_decimals=max` will return money values with the maximum precision.



## OpenAPI

````yaml /api-reference/services_documented/billing_reseller_api.yaml get /billing/org/v1/expenses
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Billing Reseller API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: '2026-05-14T07:00:22.640261+00:00'
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: addendums
    description: Operations on client addendums
    x-displayName: addendums
  - name: calc_rules
    x-displayName: calc_rules
  - name: currencies
    x-displayName: currencies
  - name: erp-invoices
    x-displayName: erp-invoices
  - name: expenses
    description: Operations on expenses
    x-displayName: expenses
  - name: plans
    description: Operations on tariff plans and their contents
    x-displayName: plans
  - name: products
    x-displayName: products
  - name: reports
    description: >-
      Operations involving reports and the associated background tasks that
      handle their processing
    x-displayName: reports
  - name: trials
    x-displayName: trials
paths:
  /billing/org/v1/expenses:
    get:
      tags:
        - expenses
      summary: List Expenses
      description: >-
        Retrieve a list of `Expense` objects.


        You can use query parameters to filter, sort, and paginate the results.



        You can set the `money_decimals` query parameter to specify the number
        of decimal places for money fields.


        Examples:


        - `?money_decimals=2` will return money values rounded to 2 decimal
        places.

        - `?money_decimals=max` will return money values with the maximum
        precision.
      operationId: v1_expenses_list
      parameters:
        - in: query
          name: addendum_id
          schema:
            type: array
            items:
              type: integer
              nullable: true
          description: Filter by Addendum ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: calc_rule_type
          schema:
            type: array
            items:
              type: string
              x-spec-enum-id: 46d5e926a44582db
              enum:
                - commit
                - commit_hourly
                - overcommit
                - staged
                - stepped
          description: |-
            Filter by calculation rule type. Can be multiple.

            - `commit` - commit
            - `overcommit` - overcommit
            - `stepped` - stepped
            - `staged` - staged
            - `commit_hourly` - `commit_hourly`
          explode: true
          style: form
        - in: query
          name: client_id
          schema:
            type: array
            items:
              type: integer
              maximum: 2147483647
              minimum: -2147483648
          description: Filter by client ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: comment
          schema:
            type: string
        - in: query
          name: company_name
          schema:
            type: string
          description: |-
            Filter by client's company name (client's name).
            Case insensitive. Supports partial matches.
        - in: query
          name: created_after
          schema:
            type: string
            format: date-time
          description: >+
            Filter by creation date-time.


            Returns items created after the specified date-time (ISO 8601/RFC
            3339 format, UTC.)



            You can specify a date with a time separated by a space, or just a
            date.



            **Examples:**


            - `&created_after=2025-05-15`

            - `&created_after=2025-05-15 12:00:00`

            - `&created_after=2025-05-15T12:00:00Z`

        - in: query
          name: created_before
          schema:
            type: string
            format: date-time
          description: >-
            Filter by creation date-time.


            Returns items created before the specified date-time (ISO 8601/RFC
            3339 format, UTC.)



            You can specify a date with a time separated by a space, or just a
            date.



            **Examples:**


            - `&created_before=2025-05-15`

            - `&created_before=2025-05-15 12:00:00`

            - `&created_before=2025-05-15T12:00:00Z`
        - in: query
          name: created_on
          schema:
            type: string
            format: date
        - in: query
          name: currency_char_code
          schema:
            type: array
            items:
              type: string
          description: |-
            Filter by currency char code (e.g. USD, EUR). Can be multiple.


            Returns currencies with the specified char code.


            **Examples:**

            - `&currency_char_code=USD`
            - `&currency_char_codeEUR&currency_char_codeUSD`



            **Available values:**

            - `EUR` - Euro
            - `USD` - US Dollar
          explode: true
          style: form
        - in: query
          name: currency_id
          schema:
            type: array
            items:
              type: integer
          description: |-
            Filter by currency ID. Can be multiple.


            Returns currencies with the specified ID.


            **Examples:**

            - `&currency_id=1`
            - `&currency_id=1&currency_id=2`



            **Available values:**

            - `1` - US Dollar
            - `2` - Euro
          explode: true
          style: form
        - in: query
          name: deleted
          schema:
            type: boolean
          description: |-
            Filter by deleted status.


            Returns items based on their deletion status.

             - `true` - only deleted items
            - `false` - only non-deleted items
            - `none` - all items (default)
        - in: query
          name: description
          schema:
            type: string
        - in: query
          name: discount_id
          schema:
            type: array
            items:
              type: integer
              nullable: true
          description: Filter by Discount ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: feature_id
          schema:
            type: array
            items:
              type: integer
              nullable: true
          description: Filter by feature ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: feature_name
          schema:
            type: string
          description: Filter by feature name. Case insensitive. Supports partial matches.
        - in: query
          name: for_date
          schema:
            type: string
            format: date-time
          description: |-
            Filter by date.

            Returns items for the specified date (ISO 8601 format, UTC.)


            **Examples:**


            - `&for_date=2025-05-15`
        - in: query
          name: for_date_after
          schema:
            type: string
            format: date-time
          description: >+
            Filter by date.


            Returns items after and including the specified date (ISO 8601
            format, UTC.)



            **Examples:**


            - `&for_date_after=2025-05-15`

        - in: query
          name: for_date_before
          schema:
            type: string
            format: date-time
          description: >-
            Filter by date.


            Returns items on or before the specified date (ISO 8601 format,
            UTC.)



            **Examples:**


            - `&for_date_before=2025-05-15`
        - in: query
          name: id
          schema:
            type: integer
        - in: query
          name: invoice_id
          schema:
            type: array
            items:
              type: integer
          explode: true
          style: form
        - in: query
          name: invoice_item_id
          schema:
            type: array
            items:
              type: integer
          explode: true
          style: form
        - name: limit
          required: false
          in: query
          description: Number of results to return per page. Maximum is `100`.
          schema:
            type: integer
        - in: query
          name: metric_ext_name
          schema:
            type: string
          description: Filter by metric code. Case insensitive. Supports partial matches.
        - in: query
          name: metric_id
          schema:
            type: array
            items:
              type: integer
          description: Filter by metric ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: money_value
          schema:
            type: number
        - in: query
          name: money_value__from
          schema:
            type: number
        - in: query
          name: money_value__to
          schema:
            type: number
        - name: offset
          required: false
          in: query
          description: The initial index from which to return the results.
          schema:
            type: integer
        - in: query
          name: ordering
          schema:
            type: array
            items:
              type: string
              enum:
                - '-addendum_id'
                - '-calc_rule_type'
                - '-created_at'
                - '-currency_id'
                - '-feature_name'
                - '-for_date'
                - '-id'
                - '-money_value'
                - '-period_range_end'
                - '-period_range_start'
                - '-plan_item_id'
                - '-product_id'
                - '-product_name'
                - '-region_id'
                - '-region_name'
                - '-tax_rate'
                - addendum_id
                - calc_rule_type
                - created_at
                - currency_id
                - feature_name
                - for_date
                - id
                - money_value
                - period_range_end
                - period_range_start
                - plan_item_id
                - product_id
                - product_name
                - region_id
                - region_name
                - tax_rate
          description: >-
            Ordering of the results.


            Default sort order is ascending. Put `-` before value for descending
            sort order: `-id`.


            For sorting by multiple parameters write them as comma separated
            string: `-client_id,id`.



            - `addendum_id` - Addendum id

            - `-addendum_id` - Addendum id (descending)

            - `period_range_start` - Period range start

            - `-period_range_start` - Period range start (descending)

            - `period_range_end` - Period range end

            - `-period_range_end` - Period range end (descending)

            - `calc_rule_type` - Calc rule type

            - `-calc_rule_type` - Calc rule type (descending)

            - `created_at` - Created at

            - `-created_at` - Created at (descending)

            - `currency_id` - Currency id

            - `-currency_id` - Currency id (descending)

            - `feature_name` - Feature name

            - `-feature_name` - Feature name (descending)

            - `for_date` - For date

            - `-for_date` - For date (descending)

            - `id` - Id

            - `-id` - Id (descending)

            - `money_value` - Money value

            - `-money_value` - Money value (descending)

            - `plan_item_id` - Plan item id

            - `-plan_item_id` - Plan item id (descending)

            - `product_name` - Product name

            - `-product_name` - Product name (descending)

            - `product_id` - Product id

            - `-product_id` - Product id (descending)

            - `tax_rate` - Tax rate

            - `-tax_rate` - Tax rate (descending)

            - `region_id` - Region id

            - `-region_id` - Region id (descending)

            - `region_name` - Region name

            - `-region_name` - Region name (descending)
          explode: false
          style: form
        - in: query
          name: payer_id
          schema:
            type: array
            items:
              type: integer
          description: Filter by payer ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: period_contains
          schema:
            type: string
            format: date-time
          description: >-
            Filter by period range.


            Returns items with a period containing the specified date-time (ISO
            8601/RFC 3339 format, UTC.)



            You can specify a date with a time separated by a space.



            **Examples:**



            - `&period_contains=2025-05-15 12:00:00`

            - `&period_contains=2025-05-15T12:00:00Z`
        - in: query
          name: period_ends_before
          schema:
            type: string
            format: date-time
          description: >+
            Filter by period range.


            Returns items with a period ending before the specified date-time
            (ISO 8601/RFC 3339 format, UTC.)



            You can specify a date with a time separated by a space.



            **Examples:**


            - `&period_ends_before=2025-05-15 12:00:00`

            - `&period_ends_before=2025-05-15T12:00:00Z`

        - in: query
          name: period_outside
          schema:
            type: string
            format: date-time
          description: >-
            Filter by period range.


            Returns items excluding those with a period containing the specified
            date-time (ISO 8601/RFC 3339 format, UTC.)



            You can specify a date with a time separated by a space.



            **Examples:**


            - `&period_outside=2025-05-15 12:00:00`

            - `&period_outside=2025-05-15T12:00:00Z`
        - in: query
          name: period_starts_after
          schema:
            type: string
            format: date-time
          description: >-
            Filter by period range.


            Returns items with a period beginning after the specified date-time
            (ISO 8601/RFC 3339 format, UTC.)


            You can specify a date with a time separated by a space.



            **Examples:**


            - `&period_starts_after=2025-05-15 12:00:00`

            - `&period_starts_after=2025-05-15T12:00:00Z`
        - in: query
          name: plan_id
          schema:
            type: array
            items:
              type: integer
          description: Filter by plan ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: plan_name
          schema:
            type: string
          description: Filter by plan name. Case insensitive. Supports partial matches.
        - in: query
          name: product_category_id
          schema:
            type: array
            items:
              type: integer
          description: Filter by Product Category ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: product_category_name
          schema:
            type: string
          description: >-
            Filter by product category name. Case insensitive. Supports partial
            matches.
        - in: query
          name: product_id
          schema:
            type: array
            items:
              type: integer
          description: |-
            Filter by product ID. Can be multiple.

            Returns products with the specified ID.

            **Examples:**

            - `&product_id=1`
            - `&product_id=1&product_id=2`



            **Available values:**

            - `1` - CDN
            - `2` - Object Storage
            - `3` - Web Security
            - `4` - Streaming
            - `5` - Cloud
            - `6` - Colocation Services
            - `7` - WG Private Cloud
            - `8` - p2p
            - `9` - DDoS Protection
            - `10` - Managed DNS
            - `11` - Other Services
            - `12` - Premium Support
            - `13` - Connectivity
            - `14` - Hosting (G-Hosting)
            - `15` - Managed Services
            - `16` - Rent
            - `17` - Software development
            - `18` - VM Ware
            - `19` - LaaS
            - `20` - AWS Cloud
            - `21` - FastEdge
            - `22` - Technical Support
            - `23` - WAAP
            - `25` - Edge Proxy
            - `32` - AI Managed Dedicated Compute
            - `65` - Gclaw
          explode: true
          style: form
        - in: query
          name: product_internal_name
          schema:
            type: array
            items:
              type: string
          description: |-
            Filter by product internal name. Can be multiple.

            Returns products with the specified internal name.

            **Examples:**

            - `&product_internal_name=CDN`
            - `&product_internal_name=CDN&product_internal_name=DNS`



            **Available values:**

            - `AI_DEDCOMP` - AI Managed Dedicated Compute
            - `AWS_CLOUD` - AWS Cloud
            - `CDN` - CDN
            - `CLOUD` - Cloud
            - `CONNECT` - Colocation Services
            - `CONNECTIVITY` - Connectivity
            - `DDOS` - Web Security
            - `DNS` - Managed DNS
            - `FAST_EDGE` - FastEdge
            - `GCLAW` - Gclaw
            - `GHOST` - Hosting (G-Hosting)
            - `INFRASTRUCTURE_PROTECTION` - DDoS Protection
            - `LAAS` - LaaS
            - `MANAGED_SERVICES` - Managed Services
            - `OTHER_SERVICES` - Other Services
            - `P2P` - p2p
            - `PREMIUM_SUPPORT` - Premium Support
            - `RENT` - Rent
            - `SHIELD_PROXY` - Edge Proxy
            - `SOFTWARE_DEVELOPMENT` - Software development
            - `STORAGE` - Object Storage
            - `STREAMING` - Streaming
            - `TECHNICAL_SUPPORT` - Technical Support
            - `VMWARE` - VM Ware
            - `WAAP` - WAAP
            - `WG_PRIVATE_CLOUD` - WG Private Cloud
          explode: true
          style: form
        - in: query
          name: product_name
          schema:
            type: string
          description: Filter by product name. Case insensitive. Supports partial matches.
        - in: query
          name: region_id
          schema:
            type: array
            items:
              type: integer
          description: Filter by region ID. Can be multiple.
          explode: true
          style: form
        - in: query
          name: region_int_name
          schema:
            type: array
            items:
              type: string
          description: Filter by region internal name. Can be multiple.
          explode: true
          style: form
        - in: query
          name: region_name
          schema:
            type: string
          description: Filter by region name. Case insensitive. Supports partial matches.
        - in: query
          name: subscription_id
          schema:
            type: array
            items:
              type: integer
              nullable: true
          description: Filter expenses by associated subscription IDs.
          explode: true
          style: form
        - in: query
          name: tax_rate
          schema:
            type: number
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedExpenseForOrgSerializerV1List'
          description: Request successful.
        '401':
          description: Authentication credentials were not provided or are invalid.
        '403':
          description: You do not have permission to perform this action.
components:
  schemas:
    PaginatedExpenseForOrgSerializerV1List:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/ExpenseForOrgSerializerV1'
    ExpenseForOrgSerializerV1:
      type: object
      description: >-
        Resolve client/payer for expenses that may be linked via addendum or
        directly via client.
      properties:
        id:
          type: integer
          readOnly: true
        client_id:
          type: string
          readOnly: true
          description: The ID of the client associated with the expense.
        payer_id:
          type: string
          readOnly: true
          description: The ID of the payer associated with the expense.
        client:
          allOf:
            - $ref: '#/components/schemas/CustomerPayerCommonShort'
          readOnly: true
          description: The client associated with the expense.
        comment:
          type: string
          readOnly: true
          nullable: true
          description: Public comment
        for_date:
          type: string
          format: date-time
          readOnly: true
          description: Date of expense
        period_range:
          allOf:
            - $ref: '#/components/schemas/DateTimeTZRange'
          readOnly: true
          description: The time range for which the expense is calculated.
        calc_rule_type:
          type: string
          readOnly: true
          description: Type of the calculation rule applied to the expense.
        currency:
          allOf:
            - $ref: '#/components/schemas/CurrencyCommonShort'
          readOnly: true
          description: The currency used in the expense.
        money_value:
          description: The monetary value of the expense.
          type: string
          format: decimal
          pattern: ^\d{1,3}\.\d{12}$
          readOnly: true
        tax_value:
          description: The monetary value of the tax applied to the expense.
          type: string
          format: decimal
          pattern: ^\d{1,3}\.\d{12}$
          readOnly: true
        tax_rate:
          type: string
          format: decimal
          pattern: ^\d{1,2}\.\d{2}$
          readOnly: true
          description: The tax rate applied to the expense.
        usage:
          allOf:
            - $ref: '#/components/schemas/Usage'
          readOnly: true
          description: Usage details associated with the expense.
        metric_ext_name:
          type: string
          readOnly: true
          description: Metric code of the feature associated with the expense.
        region:
          allOf:
            - $ref: '#/components/schemas/StatisticRegionCommonShort'
          readOnly: true
          description: The region associated with the expense.
        discount_value:
          description: The monetary value of the discount applied to the expense.
          type: string
          format: decimal
          pattern: ^\d{1,3}\.\d{12}$
          readOnly: true
        discount:
          allOf:
            - $ref: '#/components/schemas/DiscountCommonShort'
          readOnly: true
          description: The discount applied to the expense, if any.
        deleted:
          type: boolean
          readOnly: true
          description: Indicates whether the expense has been deleted.
        description:
          type: string
          readOnly: true
          description: Description of the expense.
        product_category:
          allOf:
            - $ref: '#/components/schemas/ProductCategoryCommonShort'
          readOnly: true
          description: The product category associated with the feature of the expense.
        product:
          allOf:
            - $ref: '#/components/schemas/ProductCommonShort'
          readOnly: true
          description: The product associated with the expense.
        addendum:
          allOf:
            - $ref: '#/components/schemas/AddendumCommonShort'
          readOnly: true
          description: The addendum associated with the expense.
        plan:
          allOf:
            - $ref: '#/components/schemas/PlanCommonShort'
          readOnly: true
          description: The plan associated with the expense.
        feature:
          allOf:
            - $ref: '#/components/schemas/FeatureCommonShort'
          readOnly: true
          description: The feature associated with the expense.
        subscription:
          type: string
          readOnly: true
          description: The subscription associated with the expense.
        plan_item:
          allOf:
            - $ref: '#/components/schemas/AdminPlanItemCommonShort'
          readOnly: true
          description: The plan item associated with the expense.
        invoices:
          type: array
          items:
            $ref: '#/components/schemas/InvoiceItemIDsShort'
          readOnly: true
          description: List of invoice item IDs associated with the expense.
      required:
        - addendum
        - calc_rule_type
        - client
        - client_id
        - comment
        - currency
        - deleted
        - description
        - discount
        - discount_value
        - feature
        - for_date
        - id
        - invoices
        - metric_ext_name
        - money_value
        - payer_id
        - period_range
        - plan
        - plan_item
        - product
        - product_category
        - region
        - subscription
        - tax_rate
        - tax_value
        - usage
    CustomerPayerCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        company_name:
          type: string
          readOnly: true
      required:
        - company_name
        - id
    DateTimeTZRange:
      type: object
      description: Date-time range with start and end fields.
      properties:
        start:
          type: string
          format: date-time
          nullable: true
        end:
          type: string
          format: date-time
          nullable: true
    CurrencyCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        char_code:
          type: string
          description: Currency iso4217 char code
          pattern: ^[A-Z]{3}$
          maxLength: 3
        symbol:
          type: string
          nullable: true
          description: Currency symbol, for example '$'
          maxLength: 10
      required:
        - char_code
        - id
    Usage:
      type: object
      description: >-
        Resolve a Unit from an Expense via `plan_item` or
        subscription.`price_json`.
      properties:
        amount:
          type: string
          format: decimal
          pattern: ^\d{1,3}\.\d{12}$
          readOnly: true
          description: The amount of usage
        unit_name:
          type: string
          nullable: true
          readOnly: true
          description: The name of the unit of measurement for the usage
      required:
        - amount
        - unit_name
    StatisticRegionCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        external_name:
          type: string
          readOnly: true
      required:
        - external_name
        - id
        - name
    DiscountCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        relative_value:
          type: string
          format: decimal
          pattern: ^-?\d{0,24}(?:\.\d{0,12})?$
        comment:
          type: string
          nullable: true
          description: Public comment
          maxLength: 1000
      required:
        - id
        - relative_value
    ProductCategoryCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
      required:
        - id
        - name
    ProductCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        internal_name:
          type: string
          maxLength: 25
      required:
        - id
        - internal_name
        - name
    AddendumCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        active_range:
          allOf:
            - $ref: '#/components/schemas/DateTimeTZRange'
          readOnly: true
        status:
          enum:
            - upcoming
            - active
            - paused
            - stopped
          type: string
          x-spec-enum-id: a6691db649b8bdef
          description: |-
            Addendum status

            - `upcoming` - upcoming
            - `active` - active
            - `paused` - paused
            - `stopped` - stopped
      required:
        - active_range
        - id
    PlanCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
      required:
        - id
        - name
    FeatureCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          readOnly: true
        erp_sku_id:
          type: string
          readOnly: true
          nullable: true
      required:
        - erp_sku_id
        - id
        - name
    AdminPlanItemCommonShort:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        default:
          type: boolean
          readOnly: true
        comment:
          type: string
          nullable: true
          description: Public comment
          maxLength: 1000
        description:
          type: string
          nullable: true
          description: Description for internal use
          maxLength: 1000
      required:
        - default
        - id
    InvoiceItemIDsShort:
      type: object
      properties:
        invoice_id:
          type: integer
          readOnly: true
        invoice_date:
          type: string
          format: date
          readOnly: true
        invoice_item_id:
          type: integer
          readOnly: true
      required:
        - invoice_date
        - invoice_id
        - invoice_item_id
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234$abcdef`
      type: apiKey
      in: header
      name: Authorization

````