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

# List active plans

> List current, non-archived plans in the environment selected by your API key.

Returns the current, non-archived plans for the organization identified by your API key. The `items` array is empty when no plans have been created. Previous plan versions are retained for historical subscriptions but do not appear here.

Each item includes `monthlyCredits`, `monthlyPriceCents`, and `stripeSyncStatus`. A free plan has a price of `0` and no Stripe sync status. For a paid plan, wait for `stripeSyncStatus: "synced"` before sending customers to Checkout. Use [Create a plan](https://docs.integrateledger.com/api-reference/plans/create.md) to add one independently or [Get a plan](https://docs.integrateledger.com/api-reference/plans/get.md) to read a specific ID. See [Catalog](https://docs.integrateledger.com/catalog.md) for versioning behavior.


## OpenAPI

````yaml openapi.json GET /v1/plans
openapi: 3.1.0
info:
  title: Ledger API
  version: 0.1.0
servers:
  - url: https://api.integrateledger.com
    description: Hosted Ledger API
security: []
paths:
  /v1/plans:
    get:
      tags:
        - Plans
      summary: List active plans
      operationId: listPlans
      responses:
        '200':
          description: Active plans
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanList'
        '401':
          description: Invalid Ledger API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
      security:
        - ApiKey: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: |-
            curl --request GET 'https://api.integrateledger.com/v1/plans' \
              -H "Authorization: Bearer $LEDGER_API_KEY"
        - lang: python
          label: Python SDK (source only)
          source: |-
            import os
            from ledger_sdk import Ledger

            ledger = Ledger(api_key=os.environ["LEDGER_API_KEY"])
            ledger.list_plans()
        - lang: typescript
          label: TypeScript SDK (source only)
          source: >-
            import { Ledger } from "@ledger/sdk";


            const ledger = new Ledger({ apiKey: process.env.LEDGER_API_KEY ?? ""
            });

            await ledger.listPlans();
components:
  schemas:
    PlanList:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PlanItem'
      required:
        - items
    PlanItem:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[a-zA-Z0-9_-]+$
        name:
          type: string
          minLength: 1
          maxLength: 120
        monthlyCredits:
          type: integer
          exclusiveMinimum: 0
          maximum: 2147483647
        monthlyPriceCents:
          type: integer
          minimum: 0
          maximum: 2147483647
        stripeSyncStatus:
          type: string
          nullable: true
          enum:
            - pending
            - synced
            - failed
            - null
      required:
        - id
        - name
        - monthlyCredits
        - monthlyPriceCents
      additionalProperties: false
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.