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

# Get Subscription

> Retrieve the active team's subscription plan and credit balance.

Returns the team's current subscription — plan details, Stripe status, and credit balances (monthly, purchased top-ups, coupon). Agents can call this to check whether a team is billable before enqueuing an expensive job.

Resolves to the team selected by the authenticated caller's session. API-key callers are scoped to the team that owns the key.

## Response

```json 200 theme={null}
{
  "plan": {
    "id": "plan-uuid",
    "slug": "pro",
    "name": "Pro",
    "description": "For growing creators",
    "price_cents": 2900,
    "currency": "usd",
    "monthly_credits": 500,
    "allowed_models": ["fal:nano-banana-pro", "fal:kling-v2.5-pro"],
    "allowed_features": ["influencer", "slides"],
    "is_active": true,
    "sort_order": 20
  },
  "status": "active",
  "cancel_at_period_end": false,
  "current_period_end": "2026-05-21T12:00:00Z",
  "credits_remaining": 342,
  "credits_topup_balance": 1000,
  "coupon_credits_balance": 0,
  "has_access": true
}
```

### Fields

<ResponseField name="plan" type="object | null">
  The plan row. `null` when the team has never had a subscription. See
  [List Plans](./plans) for the full plan shape.
</ResponseField>

<ResponseField name="status" type="string | null">
  Stripe subscription status. One of `trialing`, `active`, `past_due`,
  `canceled`, `unpaid`, `incomplete`, `incomplete_expired`, `paused`.
</ResponseField>

<ResponseField name="cancel_at_period_end" type="boolean">
  `true` when the subscription will not auto-renew at
  `current_period_end`.
</ResponseField>

<ResponseField name="current_period_end" type="string | null">
  ISO-8601 timestamp of the next renewal. Also the date at which
  monthly credits reset.
</ResponseField>

<ResponseField name="credits_remaining" type="integer">
  Monthly-plan credits left in the current period. Resets on renewal.
</ResponseField>

<ResponseField name="credits_topup_balance" type="integer">
  Purchased top-up credits. Non-expiring. Spent AFTER the monthly
  balance depletes.
</ResponseField>

<ResponseField name="coupon_credits_balance" type="integer">
  Promotional credits from claimed coupons. Non-expiring.
</ResponseField>

<ResponseField name="has_access" type="boolean">
  Computed: `true` when `status ∈ (active, trialing, past_due)` AND
  `current_period_end` is in the future. Use this to decide whether a
  team can generate, not `status` alone.
</ResponseField>

## Example

```bash cURL theme={null}
curl https://api.supapost.so/billing/subscription \
  -H "Authorization: Bearer YOUR_API_KEY"
```
