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

# Plan metadata

> Read static plan fields and combine them with a group quote.

`GET /plans` returns static plan metadata: identifiers, plan classification, plan design amounts, brand assets, and required disclaimers. Group-specific pricing comes from the group's [quote](/guides/quotes).

## The plan payload

```bash theme={null}
curl https://www.getprescience.com/api/partner/v1/plans \
  -H "Authorization: Bearer $PRESCIENCE_API_KEY"
```

```json Response (200) theme={null}
{
  "plans": [
    {
      "id": "diamond",
      "name": "Prescience Diamond",
      "carrierName": "Prescience",
      "planType": "self_funded_level_funded",
      "deductibleIndividualCents": 150000,
      "deductibleFamilyCents": 300000,
      "oopMaxIndividualCents": 705000,
      "oopMaxFamilyCents": 1410000,
      "hsaEligible": true,
      "employeePremiumCents": 0,
      "assets": {
        "logoUrl": "https://www.getprescience.com/img/prescience-wordmark.svg",
        "markUrl": "https://www.getprescience.com/img/prescience-mark.svg"
      },
      "disclaimers": [
        "Final plan documents govern. Benefit details are confirmed during onboarding."
      ]
    }
  ]
}
```

The payload is static per API version, so it is safe to cache for a day. Use the `assets` URLs directly or mirror them in your CDN.

## Combining plan and quote data

Use the plan payload for static fields and the group's quote for employer-specific amounts:

| Data                                  | Source                                                                                                                 |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Logo and name                         | `plan.assets.markUrl`, `plan.name`                                                                                     |
| Plan classification                   | `plan.planType`, `plan.hsaEligible`                                                                                    |
| Monthly amount                        | `quote.monthly.totalCents`, `quote.monthly.pepmCents`                                                                  |
| Employee premium contribution         | `plan.employeePremiumCents`                                                                                            |
| Prior-cost comparison                 | `quote.comparison.*`                                                                                                   |
| Deductible and out-of-pocket maximums | `plan.deductibleIndividualCents`, `plan.deductibleFamilyCents`, `plan.oopMaxIndividualCents`, `plan.oopMaxFamilyCents` |
| Disclaimers and quote assumptions     | `plan.disclaimers`, `quote.assumptions`                                                                                |

<Warning>
  Use approved display names such as **Prescience Diamond** or **Prescience-managed health benefits** in customer-facing surfaces. Treat `planType` as backend classification for eligibility, quoting, and regulated workflows, not as marketing copy. `carrierName` is a display string, not a legal classification. See [Compliance](/resources/compliance).
</Warning>

## Wiring selection

When the employer accepts a quote, create an [enrollment](/guides/enrollment) with the `groupId`, the `quoteId`, and the admin's identity for the `signatory`.

<Tip>
  Quotes expire at `expiresAt` (configuration-driven; 30 days by default). If a stale quote is selected past expiry, catch the `410 quote_expired` from `POST /enrollments`, create a new quote (`POST /quotes` is deterministic, so an unchanged census re-prices identically), and retry the enrollment with the new `quoteId`.
</Tip>
