---
title: "Gets a list of recurring_expenses"
method: GET
path: "/api/v1/recurring_expenses"
tags: ["recurring_expenses"]
---

# Gets a list of recurring_expenses

`GET /api/v1/recurring_expenses`

## Request

- Base URL: `https://demo.invoiceninja.com`
- URL: `https://demo.invoiceninja.com/api/v1/recurring_expenses`
- Auth: none declared. Required headers: `X-API-TOKEN`, `X-Requested-With`
- TypeScript: <https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/docs/api/v1/recurring_expenses/get.ts> (a function with typed inputs; its response is checked against the schema)

Lists recurring_expenses, search and filters allow fine grained lists to be generated.

    Query parameters can be added to performed more fine grained filtering of the recurring_expenses, these are handled by the RecurringExpenseFilters class which defines the methods available

## Query parameters

- `include` string
- `index` string
- `per_page` integer
- `page` integer
- `sort` string[]

## Headers

- `X-API-TOKEN` string, required
- `X-Requested-With` string, required

## Response `200`

A list of recurring_expenses

- object
  - `data` RecurringExpense[]
    - `id` string: The hashed id of the recurring expense
    - `user_id` string: The hashed id of the user who created the recurring expense
    - `assigned_user_id` string: The hashed id of the user assigned to this recurring expense
    - `client_id` string: The hashed id of the client
    - `invoice_id` string: The hashed id of the invoice
    - `bank_id` string: The id of the bank associated with this recurring expense
    - `invoice_currency_id` string: The currency id of the invoice associated with this recurring expense
    - `expense_currency_id` string: The currency id of the expense associated with this recurring expense
    - `invoice_category_id` string: The category id of the invoice
    - `payment_type_id` string: The payment type id
    - `private_notes` string: The recurring expense private notes
    - `public_notes` string: The recurring expense public notes
    - `transaction_reference` string: The recurring expense transaction reference
    - `transcation_id` string: The transaction id of the recurring expense
    - `custom_value1` string: Custom value field
    - `custom_value2` string: Custom value field
    - `custom_value3` string: Custom value field
    - `custom_value4` string: Custom value field
    - `tax_name1` string: The tax name
    - `tax_name2` string: The tax name
    - `tax_rate1` number, float: The tax rate
    - `tax_rate2` number, float: The tax rate
    - `tax_name3` string: The tax name
    - `tax_rate3` number, float: The tax rate
    - `amount` number, float: The total amount of the recurring expense
    - `frequency_id` number: The frequency this recurring expense fires
    - `remaining_cycles` number: The number of remaining cycles for this recurring expense
    - `foreign_amount` number, float: The foreign currency amount of the recurring expense
    - `exchange_rate` number, float: The exchange rate for the expernse
    - `date` string: The date of the expense
    - `payment_date` string: The date the expense was paid
    - `should_be_invoiced` boolean: Boolean flag determining if the expense should be invoiced
    - `is_deleted` boolean: Boolean flag determining if the recurring expense is deleted
    - `last_sent_date` string, date: The Date it was sent last
    - `next_send_date` string, date: The next send date
    - `invoice_documents` boolean: Boolean flag determining if the documents associated with this expense should be passed onto the invoice if it is converted to an invoice
    - `updated_at` number: Timestamp
    - `archived_at` number: Timestamp
    - `calculate_tax_by_amount` boolean: Flag indicating whether to calculate tax based on amount rather than percentage
    - `category_id` string: The unique identifier of the expense category
    - `currency_id` string: The unique identifier of the currency
    - `next_send_date_client` string, date: The next scheduled send date for the client
    - `number` string: The unique number assigned to this recurring expense
    - `project_id` string: The unique identifier of the project associated with this recurring expense
    - `tax_amount1` number, float: The amount of the first tax
    - `tax_amount2` number, float: The amount of the second tax
    - `tax_amount3` number, float: The amount of the third tax
    - `transaction_id` string: The unique identifier of the transaction
    - `uses_inclusive_taxes` boolean: Flag indicating whether taxes are included in the price
    - `vendor_id` string: The unique identifier of the vendor associated with this recurring expense
  - `meta` Meta
    - `pagination` Pagination
      - `total` integer: The total number of items
      - `count` integer: The number of items per page
      - `per_page` integer: The number of items per page
      - `current_page` integer: The current page number
      - `total_pages` integer: The total number of pages
      - `links` object: The pagination links

## Other responses

- `401`: Authentication error
- `403`: Authorization error
- `422`: Validation error
- `default`: Unexpected Error

## Changes

- **2026-05-06** `89876e7e51d6`: 1 info
  - added the new optional `query` request parameter `sort`
- **2026-04-20** `69a36036d334`: 3 info
  - added the new optional `query` request parameter `page`
  - added the new optional `query` request parameter `per_page`
  - the response optional property `data/items/id` became read-only for the status `200`
- **2025-11-22** `00ad5cc89fad`: 12 info
  - added the optional property `data/items/calculate_tax_by_amount` to the response with the `200` status
  - added the optional property `data/items/category_id` to the response with the `200` status
  - added the optional property `data/items/currency_id` to the response with the `200` status
  - added the optional property `data/items/next_send_date_client` to the response with the `200` status
  - …8 more
- **2025-05-24** `93bb427f804b`: 1 breaking
  - the `meta` response's property type changed from `object` to no type for status `200`
- **2024-06-06** `8e82a2bd77e0`: 2 breaking, 41 info
  - the response's body type changed from no type to `object` for status `default`
  - the `data/items/` response's property type changed from no type to `object` for status `200`
  - added the optional property `code` to the response with the `default` status
  - added the optional property `data/items/amount` to the response with the `200` status
  - …39 more

[Operation history](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/changes/api/v1/recurring_expenses/get.md)

---

[API](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference.md) - [All operations](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/revisions/bcda1f823746?raw)
