---
title: "Get User Plans"
method: GET
path: "/api/v1/plans"
tags: ["User APIs", "plans"]
---

# Get User Plans

`GET /api/v1/plans`

Get all active subscription plans for the current user's client.

Returns the active plan (status: active/trialing) with full details.
If the plan has a Stripe subscription, all Stripe subscription fields
are included in the stripe_subscription field. If the plan doesn't have a Stripe subscription,
this should be beacuse it's an Enterprise plan.

This is the new version of the plans endpoint. The /subscriptions/plan
endpoint is kept for backward compatibility.

Returns:
    PlanFullResponse: Active plan with full details

## Response `200`

Successful Response

- PlanFullResponse — Full plan response schema with all plan fields and optional Stripe subscription details
  - `name` string, required
  - `product_id` string, uuid, nullable
  - `client_id` string, uuid, required
  - `amount` number, required
  - `billing_cycle` string
  - `status` string, nullable
  - `starts_at` string, date-time, nullable
  - `ends_at` string, date-time, nullable
  - `config` object, nullable
  - `id` union, required
    - string, uuid
    - string
  - `canceled_at` string, date-time, nullable
  - `trial_end` string, date-time, nullable
  - `stripe_subscription_id` string, nullable
  - `stripe_customer_id` string, nullable — Stripe customer id (cus_...) for this plan/client
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `created_by` string, nullable
  - `updated_by` string, nullable
  - `billing_email` string, email, nullable
  - `daily_token_limit` number, nullable — Configured daily token limit from plan
  - `enterprise_fields` EnterpriseFields
    - `mcp_amount` number, nullable — MCP subscription item unit amount (dollars) from stripe_subscription_items
    - `mcp_billing_cycle` string, nullable — MCP subscription item recurring interval (e.g. month/year) from stripe_subscription_items
  - `grace_period_started_at` string, date-time, nullable
  - `failed_payment_retry_count` integer
  - `is_suspended` boolean
  - `suspended_at` string, date-time, nullable
  - `source` string, nullable — Where the plan record came from: 'database' or 'stripe'
  - `stripe_cancel_at` string, date-time, nullable — Scheduled cancellation date from linked Stripe subscription
  - `stripe_canceled_at` string, date-time, nullable — Actual cancellation date from linked Stripe subscription
  - `stripe_subscription` object, nullable — Full Stripe subscription details if the plan is linked to a Stripe subscription
  - `stripe_customer_name` string, nullable — Stripe customer name for the client
  - `payment_method` PaymentMethodSummary
    - `type` string, nullable — Payment method type (card, bank, etc.)
    - `brand` string, nullable — Card or bank brand (visa, mastercard, etc.)
    - `exp_month` integer, nullable — Expiration month
    - `exp_year` integer, nullable — Expiration year
    - `last4` string, nullable — Last 4 digits
  - `invoice_payment` boolean — True when the client is configured for invoice billing. Derived from client.payment_method == 'invoice'.

---

[API](https://skmtc.net/carbonarc/apis/carbon-arc-client-admin-api.md) · [All operations](https://skmtc.net/carbonarc/apis/carbon-arc-client-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/carbonarc/carbon-arc-client-admin-api/revisions/a8ca30023371/schema)
