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

# List expenses

> Returns a paginated list of expenses



## OpenAPI

````yaml /openapi-public.json get /v1/expenses
openapi: 3.0.1
info:
  title: Light API
  version: 1.0.0
servers: []
security:
  - apiKeyAuth: []
  - bearerAuth: []
paths:
  /v1/expenses:
    get:
      tags:
        - v1 - Expenses
      summary: List expenses
      description: Returns a paginated list of expenses
      operationId: listExpenses
      parameters:
        - name: sort
          in: query
          schema:
            type: string
            description: >-
              Sort string in the format `field:direction`. To provide multiple
              sort fields, separate them with commas.


              Available directions: `asc`, `desc`. 


              Available fields: `userId`, `status`, `performedDate`,
              `createdAt`.
            example: amount:desc,createdAt:asc
        - name: filter
          in: query
          schema:
            type: string
            description: >-
              Filter string in the format `field:operator:value`. To provide
              multiple filters, separate them with commas.


              Available operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`,
              `lt`, `lte`.
               - For `in` and `not_in` operators, provide multiple values separated by the pipe character (`|`). 

              Available fields: `id`, `userId`, `status`, `performedDate`,
              `createdAt`, `updatedAt`.
            example: state:in:IN_DRAFT|SCHEDULED|PAID,amount:gte:500,vendorId:ne:null
        - name: limit
          in: query
          description: Maximum number of items to return. Default is 50, maximum is 200.
          schema:
            maximum: 200
            type: integer
            format: int32
        - name: offset
          in: query
          description: >-
            Number of items to skip before starting to collect the result set.
            Deprecated, use 'cursor' instead.
          deprecated: true
          schema:
            type: integer
            format: int64
        - name: cursor
          in: query
          description: >-
            The cursor position to start returning results from.

            To opt-in into cursor-based pagination, provide `0` for the initial
            request.

            For subsequent requests, use `nextCursor` and `prevCursor` from the
            previous response to navigate.

            Cursor values are opaque and should not be constructed manually.
          schema:
            type: string
      responses:
        default:
          description: default response
          content:
            application/json;charset=UTF-8:
              schema:
                $ref: '#/components/schemas/GetExternalExpensesResponseV1Model'
components:
  schemas:
    GetExternalExpensesResponseV1Model:
      type: object
      properties:
        billingAmountTotal:
          type: integer
          format: int64
        records:
          type: array
          description: List of records for the current page
          items:
            $ref: '#/components/schemas/ExternalExpenseV1Model'
        hasMore:
          type: boolean
          description: Boolean flag indicating if there are more records available
        total:
          type: integer
          description: >-
            Total number of records (only for offset pagination). This field is
            not guaranteed to be returned and only available for offset
            pagination, please do not rely on it and migrate to cursor
            pagination.
          format: int64
          nullable: true
          deprecated: true
        nextCursor:
          type: string
          description: Cursor for fetching the next page (only for cursor pagination)
          nullable: true
        prevCursor:
          type: string
          description: Cursor for fetching the previous page (only for cursor pagination)
          nullable: true
    ExternalExpenseV1Model:
      type: object
      properties:
        id:
          type: string
          format: uuid
        receiptDocumentKey:
          type: string
        originalCurrency:
          type: string
          example: USD
        billingCurrency:
          type: string
          example: USD
        status:
          type: string
          description: >-
            ⚠️ This enum is not exhaustive; new values may be added in the
            future.
          enum:
            - CREATED
            - IN_DRAFT
            - SUBMITTED_FOR_REVIEW
            - CANCELLED
        userId:
          type: string
          format: uuid
        companyId:
          type: string
          format: uuid
        performedDate:
          type: string
          format: date
        lineItems:
          type: array
          items:
            $ref: '#/components/schemas/ExternalExpenseLineItemV1Model'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    ExternalExpenseLineItemV1Model:
      type: object
      properties:
        id:
          type: string
          format: uuid
        expenseId:
          type: string
          format: uuid
        originalAmount:
          type: integer
          format: int64
        billingAmount:
          type: integer
          format: int64
        accountId:
          type: string
          format: uuid
        costCenterId:
          type: string
          format: uuid
        description:
          type: string
        reimbursementCategoryId:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      description: >-
        Basic authentication header of the form **Basic** **<api_key>**, where
        **<api_key>** is your api key.
      name: Authorization
      in: header
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````