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

# List Invoice Items

> Workspace-scoped, cursor-paginated list of `invoice_item` records. Served by the generic read-only resource handler over the data-views pipeline (Hasura row-level security).

## Filtering & sorting on related objects

Filter and sort on a **related (included) object** by nesting into the relationship — the same relationships you pass to `include`.

* **To-one** relations nest directly: `{ "issuer": { "name": { "_eq": "Acme" } } }`, and sort by a dot-path: `"orderBy": { "field": "issuer.name", "direction": "asc" }`.
* **To-many** relations must be quantified with `_some`, `_every`, or `_none`: `{ "items": { "_some": { "quantity": { "_gt": 1 } } } }`. They are **not** directly sortable (a to-many sort needs an aggregate proxy).
* **Composite** `composite_*` columns are virtual — filter and sort on their underlying source fields, not on the composite.

Workspace row-level security applies at every hop, so a related-object filter never widens your tenant scope. Full operator set, deep-nesting rules, and pagination notes: [Filtering & sorting](/api-reference/filtering-and-sorting).

This resource's related objects (the ones you can `include`) and how to filter or sort on each:

| Relationship       | Cardinality              | Filter on a field                                        | Sort by a field                            |
| ------------------ | ------------------------ | -------------------------------------------------------- | ------------------------------------------ |
| `invoice`          | to-one (invoice)         | `{ "invoice": { "grand_total": { "_eq": … } } }`         | `"field": "invoice.grand_total"` ✅         |
| `ledger_account`   | to-one (ledger\_account) | `{ "ledger_account": { "name": { "_eq": … } } }`         | `"field": "ledger_account.name"` ✅         |
| `applied_tax_rate` | to-one (tax\_rate)       | `{ "applied_tax_rate": { "field_name": { "_eq": … } } }` | `"field": "applied_tax_rate.field_name"` ✅ |
| `media`            | to-one (media)           | `{ "media": { "file_name": { "_eq": … } } }`             | `"field": "media.file_name"` ✅             |

Replace `field_name` with any field of the related object. See its object-reference page for the full field list.

**Filter by a to-one relation** (and sort by it):

```json theme={null}
{
  "root": "invoice_items",
  "whereClause": { "invoice": { "grand_total": { "_ilike": "%acme%" } } },
  "orderBy": { "field": "invoice.grand_total", "direction": "asc" }
}
```


## OpenAPI

````yaml GET /v1/invoice-items
openapi: 3.1.0
info:
  title: Well Document API
  version: 1.0.0
  description: API for uploading and managing financial documents in the Well platform
servers:
  - url: https://api.wellapp.ai
security: []
paths:
  /v1/invoice-items:
    get:
      tags:
        - Records read endpoints
      summary: List Invoice Items
      description: >-
        Workspace-scoped, cursor-paginated list of `invoice_item` records.
        Served by the generic read-only resource handler over the data-views
        pipeline (Hasura row-level security).
      operationId: listInvoiceItems
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            maximum: 200
          description: Page size (max 200).
        - name: cursor
          in: query
          schema:
            type: string
          description: Opaque keyset cursor; omit for the first page.
        - name: orderBy
          in: query
          schema:
            type: string
          description: Field to order by.
        - name: direction
          in: query
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: workspaceId
          in: query
          schema:
            type: string
            format: uuid
          description: Optional explicit workspace scope (Firebase-authenticated callers).
      responses:
        '200':
          description: A page of invoice_item records.
          content:
            application/json:
              example:
                data:
                  - type: invoice_item
                    id: uuid
                    attributes: {}
                meta:
                  total: 0
                  count: 0
                links:
                  next: null
        '401':
          description: Unauthenticated.
        '403':
          description: Workspace scope not permitted.

````