---
title: "Get all plans"
method: GET
path: "/plans"
tags: ["Plans"]
---

# Get all plans

`GET /plans`

## Request

- Base URL: `https://api-m.sandbox.paypal.com`
- URL: `https://api-m.sandbox.paypal.com/plans`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/api/oauth-proxy` scopes: `read`, `write`
- TypeScript: <https://skmtc.dev/paypal/apis/usage-based-billing-api/docs/plans/get.ts> (a function with typed inputs; its response is checked against the schema)

## Query parameters

- `per_page` integer
- `page` integer

## Response `200`

A list of plans

- object
  - `plans` Plan[]
    - `id` string: Unique identifier of the plan. This ID is used internally to track the plan and cannot be modified.
    - `name` string
    - `code` string
    - `billing_cycle` 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'YEARLY': The billing cycle indicating how often the subscription is charged
    - `description` string
    - `amount` Amount
      - `value` number, required: The amount value in the corresponding currency unit (e.g., two decimals for USD, no decimals for JPY).
      - `currency_code` string, required: Currency code in ISO 4217 format.
    - `trial_period` integer
    - `pay_in_advance` boolean
    - `taxes` TaxResponse[]: List of tax entities configured for the plan.
      - `name` string, required: Name of the tax
      - `rate` string: The percentage rate of the tax applied to transactions. A decimal amount from 0.01 to 100.00 inclusive, always with exactly two decimal places, no leading zeros except 0.xx.
      - `description` string: Detailed description of the tax for internal reference
      - `code` string: Unique code used to identify the tax. Must contain only alphanumeric characters, underscores, and hyphens.
      - `id` string, uuid: Unique identifier of the tax
      - `created_at` string, date-time: The effective start date of the subscription; can be past, current, or future. Date must be provided in ISO 8601 format
    - `usage_based_charges` UsageBasedCharge[]
      - `id` string, required: Unique identifier of the charge
      - `metric_id` string, required: Unique identifier of the metric
      - `charge_model` 'STANDARD' | 'GRADUATED' | 'PACKAGE' | 'PERCENTAGE' | 'VOLUME': The pricing model applied to this charge
      - `properties` object: Pricing thresholds that determine the charges
      - `taxes` TaxResponse[]: List of tax entities configured for the usage based charge.
        - `name` string, required: Name of the tax
        - `rate` string: The percentage rate of the tax applied to transactions. A decimal amount from 0.01 to 100.00 inclusive, always with exactly two decimal places, no leading zeros except 0.xx.
        - `description` string: Detailed description of the tax for internal reference
        - `code` string: Unique code used to identify the tax. Must contain only alphanumeric characters, underscores, and hyphens.
        - `id` string, uuid: Unique identifier of the tax
        - `created_at` string, date-time: The effective start date of the subscription; can be past, current, or future. Date must be provided in ISO 8601 format
      - `min_amount` Amount
        - `value` number, required: The amount value in the corresponding currency unit (e.g., two decimals for USD, no decimals for JPY).
        - `currency_code` string, required: Currency code in ISO 4217 format.
    - `minimum_commitment` MinimumCommitment: Minimum commitment for this plan.
      - `amount` Amount, required
        - `value` number, required: The amount value in the corresponding currency unit (e.g., two decimals for USD, no decimals for JPY).
        - `currency_code` string, required: Currency code in ISO 4217 format.
      - `invoice_display_name` string: Specifies the name that will be displayed on an invoice. If no value is set for this field, the default name will be used as the display name.
      - `taxes` TaxResponse[]: List of tax entities configured for the minimum commitment.
        - `name` string, required: Name of the tax
        - `rate` string: The percentage rate of the tax applied to transactions. A decimal amount from 0.01 to 100.00 inclusive, always with exactly two decimal places, no leading zeros except 0.xx.
        - `description` string: Detailed description of the tax for internal reference
        - `code` string: Unique code used to identify the tax. Must contain only alphanumeric characters, underscores, and hyphens.
        - `id` string, uuid: Unique identifier of the tax
        - `created_at` string, date-time: The effective start date of the subscription; can be past, current, or future. Date must be provided in ISO 8601 format
      - `id` string, uuid: Unique identifier of the minimum commitment, created by Lago.
      - `plan_code` string: The unique code representing the plan to be attached to the customer.
      - `created_at` string, date-time: The date and time when the minimum commitment was created. It is expressed in UTC format according to the ISO 8601 datetime standard. This field provides the timestamp for the exact moment when the minimum commitment was initially created.
      - `updated_at` string, date-time: The date and time when the minimum commitment was updated. It is expressed in UTC format according to the ISO 8601 datetime standard. This field provides the timestamp for the exact moment when the minimum commitment was initially created.
    - `created_at` string, date-time: Date and time in ISO 8601 format.
  - `metadata` PaginationMetadata
    - `total_count` integer
    - `total_pages` integer
    - `current_page` integer

## Other responses

- `403`: Authorization failed due to insufficient permissions.
- `404`: Resource Not Found.
- `500`: Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.dev/paypal/apis/usage-based-billing-api.md) - [All operations](https://skmtc.dev/paypal/apis/usage-based-billing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paypal/apis/usage-based-billing-api/revisions/22fb46514ac4?raw)
