---
title: "GET /api/plans/"
method: GET
path: "/api/plans/"
tags: ["api"]
---

# GET /api/plans/

`GET /api/plans/`

A simple ViewSet for viewing and editing Products.

## Response `200`

- Plan[]
  - `plan_name` string, required — Name of the plan
  - `plan_duration` 'monthly' | 'quarterly' | 'yearly', required — Duration of the plan
  - `status` 'active' | 'archived' | 'experimental', required
  - `external_links` InitialExternalPlanLink[], required — The external links that this plan has.
    - `source` 'stripe', required
    - `external_plan_id` string, required
  - `plan_id` string, required
  - `parent_plan` PlanNameAndID, required
    - `plan_name` string, required — Name of the plan
    - `plan_id` string, required
  - `target_customer` LightweightCustomer, required
    - `customer_name` string, nullable, required — The display name of the customer
    - `email` string, email, nullable, required — The primary email address of the customer, must be the same as the email address used to create the customer in the payment provider
    - `customer_id` string, required — The id provided when creating the customer, we suggest matching with your internal customer id in your backend
  - `display_version` PlanVersion, required
    - `description` string, nullable, required
    - `flat_fee_billing_type` 'in_arrears' | 'in_advance', required
    - `flat_rate` number, double, required
    - `components` PlanComponent[], required
      - `billable_metric` Metric, required
        - `metric_id` string, required
        - `event_name` string, required — Name of the event that this metric is tracking.
        - `property_name` string, nullable, required — The name of the property of the event that should be used for this metric. Doesn't apply if the metric is of type 'counter' with an aggregation of count.
        - `aggregation_type` string, required
        - `granularity` 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'quarters' | 'years' | 'total' | 'null', nullable, required — The granularity of the metric. Only applies to metrics of type 'gauge' or 'rate'.
        - `event_type` 'delta' | 'total' | 'null', nullable, required — Used only for metrics of type 'gauge'. Please refer to our documentation for an explanation of the different types.
        - `metric_type` 'counter' | 'rate' | 'custom' | 'gauge', required — The type of metric that this is. Please refer to our documentation for an explanation of the different types.
        - `metric_name` string, required
        - `numeric_filters` NumericFilter[], required
          - `property_name` string, required
          - `operator` 'gte' | 'gt' | 'eq' | 'lt' | 'lte', required
          - `comparison_value` number, double, required
        - `categorical_filters` CategoricalFilter[], required
          - `property_name` string, required
          - `operator` 'isin' | 'isnotin', required
          - `comparison_value` string[], required
        - `is_cost_metric` boolean, required — Whether or not this metric is a cost metric (used to track costs to your business).
        - `custom_sql` string, nullable, required — A custom SQL query that can be used to define the metric. Please refer to our documentation for more information.
        - `proration` 'seconds' | 'minutes' | 'hours' | 'days' | 'months' | 'quarters' | 'years' | 'total' | 'null', nullable, required — The proration of the metric. Only applies to metrics of type 'gauge'.
      - `tiers` PriceTier[], required
        - `type` 'flat' | 'per_unit' | 'free', required
        - `range_start` number, double, required
        - `range_end` number, double, nullable, required
        - `cost_per_batch` number, double, nullable, required
        - `metric_units_per_batch` number, double, nullable, required
        - `batch_rounding_type` 'round_up' | 'round_down' | 'round_nearest' | 'no_rounding', nullable, required
      - `pricing_unit` PricingUnit, required
        - `code` string, required
        - `name` string, required
        - `symbol` string, required
    - `features` Feature[], required
      - `feature_name` string, required
      - `feature_description` string, nullable, required
    - `price_adjustment` PriceAdjustment, required
      - `price_adjustment_name` string, required
      - `price_adjustment_description` string, nullable, required
      - `price_adjustment_type` 'percentage' | 'fixed' | 'price_override', required
      - `price_adjustment_amount` number, double, required
    - `usage_billing_frequency` 'monthly' | 'quarterly' | 'end_of_period' | 'null', nullable, required
    - `version` integer, required
    - `status` 'active' | 'retiring' | 'grandfathered' | 'archived' | 'inactive', required
    - `plan_name` string, required
    - `currency` PricingUnit, required
      - `code` string, required
      - `name` string, required
      - `symbol` string, required
  - `num_versions` integer, required — The number of versions that this plan has.
  - `active_subscriptions` integer, required — The number of active subscriptions that this plan has across all versions.
  - `tags` Tag[], required — The tags that this plan has.
    - `tag_name` string, required
    - `tag_hex` string, nullable
    - `tag_color` string, nullable

## Changes

- **2023-01-16** `36b48cae00a3` — 5 breaking, 10 warning, 27 info
  - the `items/display_version` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - the `items/tags/items/` response's property type/format changed from `string`/`` to `object`/`` for status `200`
  - removed the required property `items/active_version` from the response with the `200` status
  - removed the required property `items/plan_description` from the response with the `200` status
  - …38 more

[Change history](https://skmtc.dev/uselotus/apis/lotus-api/changes/api/plans/get.md)

---

[API](https://skmtc.dev/uselotus/apis/lotus-api.md) · [All operations](https://skmtc.dev/uselotus/apis/lotus-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/uselotus/lotus-api/revisions/36b48cae00a3/schema)
