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

# Get Subscription Status

> Get the current subscription status for a tenant.

Returns the active subscription, plan details, and tenant info for the given tenant.

## Authentication

Pass your public key as a query parameter (`?publicKey=pk_live_...`). No bearer token required or accepted.

## Request

<ParamField query="publicKey" type="string" required>
  Your public key (`pk_live_...` or `pk_test_...`)
</ParamField>

<ParamField query="tenantId" type="string" required>
  The external tenant ID from your application
</ParamField>

<ParamField query="productSlug" type="string">
  Scope the lookup to a specific product (e.g. `product-a`, `product-b`). Required for multi-product orgs where a tenant holds one subscription per product. Omit for single-product orgs — returns the most recently created active subscription.
</ParamField>

## Response

<ResponseField name="success" type="boolean" />

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="active" type="boolean">Whether the subscription is active or trial</ResponseField>
    <ResponseField name="status" type="string">One of: `active`, `trial`, `past_due`, `canceled`, `expired`, `none`</ResponseField>

    <ResponseField name="tenant" type="object">
      <Expandable>
        <ResponseField name="id" type="string" />

        <ResponseField name="name" type="string" />

        <ResponseField name="isActive" type="boolean" />
      </Expandable>
    </ResponseField>

    <ResponseField name="subscription" type="object | null">
      <Expandable>
        <ResponseField name="id" type="string" />

        <ResponseField name="status" type="string" />

        <ResponseField name="trialEndsAt" type="string | null" />

        <ResponseField name="currentPeriodStart" type="string" />

        <ResponseField name="currentPeriodEnd" type="string" />

        <ResponseField name="capacityUnits" type="number">Seat count (seat-based plans)</ResponseField>
        <ResponseField name="usedCapacity" type="number">Active seat allocations</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="plan" type="object | null">
      <Expandable>
        <ResponseField name="id" type="string" />

        <ResponseField name="name" type="string" />

        <ResponseField name="productId" type="string | null">ID of the product this plan belongs to</ResponseField>
        <ResponseField name="productName" type="string | null">Display name of the product</ResponseField>
        <ResponseField name="productSlug" type="string | null">URL-safe product identifier (e.g. `ats`). Use this to scope subsequent `can-access` calls to the same product.</ResponseField>

        <ResponseField name="billingInterval" type="string" />

        <ResponseField name="features" type="string[]">Feature keys included in this plan</ResponseField>
        <ResponseField name="limits" type="object">Numeric usage limits</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash Single-product org theme={null}
  curl "https://app.crovver.com/api/public/subscriptions/status?publicKey=pk_live_...&tenantId=workspace_123"
  ```

  ```bash Multi-product: scope to a specific product theme={null}
  curl "https://app.crovver.com/api/public/subscriptions/status?publicKey=pk_live_...&tenantId=workspace_123&productSlug=product-a"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Active theme={null}
  {
    "success": true,
    "data": {
      "active": true,
      "status": "active",
      "tenant": { "id": "workspace_123", "name": "Acme Corp", "isActive": true },
      "subscription": {
        "id": "sub_uuid",
        "status": "active",
        "trialEndsAt": null,
        "currentPeriodStart": "2026-05-01T00:00:00Z",
        "currentPeriodEnd": "2026-06-01T00:00:00Z",
        "capacityUnits": 10,
        "usedCapacity": 7
      },
      "plan": {
        "id": "plan_uuid",
        "name": "Growth",
        "productId": "prod_uuid",
        "productName": "Product A",
        "productSlug": "product-a",
        "billingInterval": "monthly",
        "features": ["feature_x", "feature_y"],
        "limits": { "api_calls": 10000 }
      }
    }
  }
  ```

  ```json 200 No active subscription theme={null}
  {
    "success": true,
    "data": {
      "active": false,
      "status": "none",
      "tenant": { "id": "workspace_123", "name": "Acme Corp", "isActive": true },
      "subscription": null,
      "plan": null
    }
  }
  ```
</ResponseExample>
