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

# Gets a list of subscriptions

`GET /api/v1/subscriptions`

## Request

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

Lists subscriptions.

## Query parameters

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

## Headers

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

## Response `200`

A list of subscriptions

- object
  - `data` Subscription[]
    - `id` string: Unique identifier for the subscription
    - `user_id` string: Unique identifier for the user associated with the subscription
    - `product_id` string: Unique identifier for the product associated with the subscription
    - `recurring_invoice_id` string: Unique identifier for the recurring invoice associated with the subscription
    - `is_recurring` boolean: Indicates whether the subscription is recurring
    - `frequency_id` string: integer const representation of the frequency
    - `auto_bill` string: enum setting
    - `promo_code` string: Promotional code applied to the subscription
    - `promo_discount` number: Discount percentage or amount applied to the subscription
    - `is_amount_discount` boolean: Indicates whether the discount is a fixed amount
    - `allow_cancellation` boolean: Indicates whether the subscription can be cancelled
    - `per_seat_enabled` boolean: Indicates whether the subscription pricing is per seat
    - `currency_id` integer: Unique identifier for the currency used in the subscription
    - `max_seats_limit` integer: Maximum number of seats allowed for the subscription
    - `trial_enabled` boolean: Indicates whether the subscription has a trial period
    - `trial_duration` integer: Duration of the trial period in days
    - `allow_query_overrides` boolean: Indicates whether query overrides are allowed for the subscription
    - `allow_plan_changes` boolean: Indicates whether plan changes are allowed for the subscription
    - `refund_period` integer: Number of days within which refunds can be requested
    - `webhook_configuration` string: Webhook configuration for the subscription
    - `is_deleted` boolean: Indicates whether the subscription has been deleted
    - `archived_at` number: Timestamp
    - `created_at` number: Timestamp
    - `updated_at` number: Timestamp
  - `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-05-24** `93bb427f804b`: 1 breaking
  - the `meta` response's property type changed from `object` to no type for status `200`
- **2024-06-06** `8e82a2bd77e0`: 1 breaking, 3 info
  - the response's body type changed from no type to `object` for status `default`
  - added the optional property `code` to the response with the `default` status
  - added the optional property `message` to the response with the `default` status
  - added the optional property `meta/pagination` to the response with the `200` status
- **2024-06-05** `e61df65649e2`: 1 breaking, 3 warning
  - the response's body type changed from `object` to no type for status `default`
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `message` from the response with the `default` status
  - removed the optional property `meta/pagination` from the response with the `200` status

[Operation history](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/changes/api/v1/subscriptions/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)
