---
title: "Retrieve the associations between plans and add-ons."
method: GET
path: "/api/v1/billing/planaddons"
tags: ["Billing"]
---

# Retrieve the associations between plans and add-ons.

`GET /api/v1/billing/planaddons`

## Request

- Base URL: `https://go.outseta.com`
- URL: `https://go.outseta.com/api/v1/billing/planaddons`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Standard filtering applies, so the associations of a single plan are retrieved
with ?Plan.Uid={planUid} and those of a single add-on with ?AddOn.Uid={addOnUid}.
A PlanAddOns collection nested inside a plan or an add-on holds at most 100
entries, so a plan with more add-ons than that is read in full through this
endpoint, which is paginated and has no such maximum.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

- object
  - `metadata` CollectionMetadata
    - `limit` integer
    - `offset` integer
    - `total` integer
  - `items` PlanAddOn[]
    - `Uid` string, nullable
    - `_objectType` string, nullable
    - `Created` string, date-time, required
    - `Updated` string, date-time, required
    - `ActivityEventData` unknown
    - `Plan` Plan
      - `Uid` string, nullable
      - `_objectType` string, nullable
      - `Created` string, date-time, required
      - `Updated` string, date-time, required
      - `ActivityEventData` unknown
      - `Name` string, nullable
      - `Description` string, nullable
      - `PlanFamily` PlanFamily
        - `Uid` string, nullable
        - `_objectType` string, nullable
        - `Created` string, date-time, required
        - `Updated` string, date-time, required
        - `ActivityEventData` unknown
        - `SchemaLessData` object, nullable
        - `Name` string, nullable
        - `IsActive` boolean
        - `IsDefault` boolean
        - `Plans` Plan[], nullable
      - `AccountRegistrationMode` 1 | 2: `1` - Individual, `2` - Team
      - `IsQuantityEditable` boolean, required
      - `MinimumQuantity` integer
      - `MaximumPeople` integer, nullable
      - `MonthlyRate` number
      - `AnnualRate` number
      - `QuarterlyRate` number
      - `OneTimeRate` number
      - `SetupFee` number
      - `SkipSetupFeeOnPlanChange` boolean
      - `IsTaxable` boolean, required
      - `IsActive` boolean
      - `IsPerUser` boolean
      - `RequirePaymentInformation` boolean
      - `TrialPeriodDays` integer
      - `TrialUntilDate` string, date-time, nullable
      - `ExpiresAfterMonths` integer
      - `ExpirationDate` string, date-time, nullable
      - `PostLoginPath` string, nullable
      - `StripeTaxCodeId` string, nullable
      - `UnitOfMeasure` string, nullable
      - `PlanAddOns` PlanAddOn[], nullable
      - `ContentGroups` ContentGroup[], nullable
        - `Uid` string, nullable
        - `_objectType` string, nullable
        - `Created` string, date-time, required
        - `Updated` string, date-time, required
        - `ActivityEventData` unknown
        - `Name` string, required
        - `AccessDeniedPath` string, nullable
        - `ContentGroupItems` ContentGroupItem[], nullable
          - `Uid` string, nullable
          - `_objectType` string, nullable
          - `Created` string, date-time, required
          - `Updated` string, date-time, required
          - `ActivityEventData` unknown
          - `Pattern` string, required
          - `MatchMode` 1 | 2, required: `1` - Equals, `2` - StartsWith
          - `ContentGroup` ContentGroup, required (recursive)
        - `AllowedPlans` Plan[], nullable
        - `AllowedProducts` StripeProduct[], nullable
          - `Uid` string, nullable
          - `_objectType` string, nullable
          - `Created` string, date-time, required
          - `Updated` string, date-time, required
          - `ActivityEventData` unknown
          - `SchemaLessData` object, nullable
          - `StripeId` string, nullable
          - `IsLivemode` boolean
          - `Name` string, nullable
          - `DefaultPriceId` string, nullable
          - `Description` string, nullable
          - `IsActive` boolean
          - `TaxCodeId` string, nullable
          - `UnitLabel` string, nullable
          - `ContentGroups` ContentGroup[], nullable
          - `StripePrices` StripePrice[], nullable
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `SchemaLessData` object, nullable
            - `StripeId` string, nullable
            - `IsLivemode` boolean
            - `BillingScheme` string, nullable
            - `Currency` string, nullable
            - `CustomUnitAmount_Maximum` integer, nullable
            - `CustomUnitAmount_Minimum` integer, nullable
            - `CustomUnitAmount_Preset` integer, nullable
            - `IsActive` boolean
            - `Nickname` string, nullable
            - `Recurring_Interval` string, nullable
            - `Recurring_IntervalCount` integer, nullable
            - `Recurring_StripeMeter` StripeMeter
              - …
            - `Recurring_UsageType` string, nullable
            - `StripeProduct` StripeProduct (recursive)
            - `TaxBehavior` string, nullable
            - `TiersMode` string, nullable
            - `TransformQuantity_DivideBy` integer, nullable
            - `Type` string, nullable
            - `UnitAmount` integer, nullable
            - `UnitAmountDecimal` number, nullable
            - `ShowInSignUpForm` boolean
            - `CurrencySymbol` string, nullable
            - `CurrencyUnitAmount` number, nullable
            - `CurrencyUnitAmountDecimal` number, nullable
            - `Recurring_IntervalDays` integer, nullable
            - `Recurring_Description` string, nullable
            - `StripeMeterId` string, nullable
            - `StripeProductId` string, nullable
          - `AccountRegistrationMode` 1 | 2: `1` - Individual, `2` - Team
          - `ExpiresAfterMonths` integer
          - `ExpirationDate` string, date-time, nullable
          - `IsPerUser` boolean
          - `IsQuantityEditable` boolean
          - `MaximumPeople` integer, nullable
          - `MigratedAddOnUid` string, nullable
          - `MigratedPlanUid` string, nullable
          - `MinimumQuantity` integer, nullable
          - `PostLoginPath` string, nullable
          - `PostPurchaseUrl` string, nullable
          - `RequirePaymentInformation` boolean
          - `StripeProductCrossSells` StripeProductCrossSell[], nullable
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `StripeProduct` StripeProduct (recursive)
            - `CrossSellProduct` StripeProduct (recursive)
            - `IsUserSelectable` boolean
          - `TrialPeriodDays` integer
          - `TrialUntilDate` string, date-time, nullable
          - `CanDelete` boolean
          - `NumberOfPurchases` integer
          - `NumberOfSubscriptions` integer
          - `Quantity` integer, nullable
          - `StripeProductFamily` StripeProductFamily
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `SchemaLessData` object, nullable
            - `Name` string, nullable
            - `IsActive` boolean
            - `IsDefault` boolean
            - `StripeProducts` StripeProduct[], nullable
        - `AllowedAddOns` AddOn[], nullable
          - `Uid` string, nullable
          - `_objectType` string, nullable
          - `Created` string, date-time, required
          - `Updated` string, date-time, required
          - `ActivityEventData` unknown
          - `Name` string, nullable
          - `BillingAddOnType` 1 | 2 | 3: `1` - Recurring, `2` - Usage, `3` - OneTime
          - `IsQuantityEditable` boolean, required
          - `MinimumQuantity` integer
          - `MonthlyRate` number
          - `AnnualRate` number
          - `SetupFee` number
          - `UnitOfMeasure` string, nullable
          - `IsTaxable` boolean, required
          - `IsBilledDuringTrial` boolean, required
          - `ExpiresAfterMonths` integer
          - `ExpirationDate` string, date-time, nullable
          - `StripeTaxCodeId` string, nullable
          - `PlanAddOns` PlanAddOn[], nullable
          - `ContentGroups` ContentGroup[], nullable
          - `IsPerUser` boolean
          - `QuarterlyRate` number
          - `OneTimeRate` number
          - `SubscriptionCount` integer
          - `Quantity` integer
      - `NumberOfSubscriptions` integer, nullable
    - `AddOn` AddOn
      - `Uid` string, nullable
      - `_objectType` string, nullable
      - `Created` string, date-time, required
      - `Updated` string, date-time, required
      - `ActivityEventData` unknown
      - `Name` string, nullable
      - `BillingAddOnType` 1 | 2 | 3: `1` - Recurring, `2` - Usage, `3` - OneTime
      - `IsQuantityEditable` boolean, required
      - `MinimumQuantity` integer
      - `MonthlyRate` number
      - `AnnualRate` number
      - `SetupFee` number
      - `UnitOfMeasure` string, nullable
      - `IsTaxable` boolean, required
      - `IsBilledDuringTrial` boolean, required
      - `ExpiresAfterMonths` integer
      - `ExpirationDate` string, date-time, nullable
      - `StripeTaxCodeId` string, nullable
      - `PlanAddOns` PlanAddOn[], nullable
      - `ContentGroups` ContentGroup[], nullable
        - `Uid` string, nullable
        - `_objectType` string, nullable
        - `Created` string, date-time, required
        - `Updated` string, date-time, required
        - `ActivityEventData` unknown
        - `Name` string, required
        - `AccessDeniedPath` string, nullable
        - `ContentGroupItems` ContentGroupItem[], nullable
          - `Uid` string, nullable
          - `_objectType` string, nullable
          - `Created` string, date-time, required
          - `Updated` string, date-time, required
          - `ActivityEventData` unknown
          - `Pattern` string, required
          - `MatchMode` 1 | 2, required: `1` - Equals, `2` - StartsWith
          - `ContentGroup` ContentGroup, required (recursive)
        - `AllowedPlans` Plan[], nullable
          - `Uid` string, nullable
          - `_objectType` string, nullable
          - `Created` string, date-time, required
          - `Updated` string, date-time, required
          - `ActivityEventData` unknown
          - `Name` string, nullable
          - `Description` string, nullable
          - `PlanFamily` PlanFamily
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `SchemaLessData` object, nullable
            - `Name` string, nullable
            - `IsActive` boolean
            - `IsDefault` boolean
            - `Plans` Plan[], nullable
          - `AccountRegistrationMode` 1 | 2: `1` - Individual, `2` - Team
          - `IsQuantityEditable` boolean, required
          - `MinimumQuantity` integer
          - `MaximumPeople` integer, nullable
          - `MonthlyRate` number
          - `AnnualRate` number
          - `QuarterlyRate` number
          - `OneTimeRate` number
          - `SetupFee` number
          - `SkipSetupFeeOnPlanChange` boolean
          - `IsTaxable` boolean, required
          - `IsActive` boolean
          - `IsPerUser` boolean
          - `RequirePaymentInformation` boolean
          - `TrialPeriodDays` integer
          - `TrialUntilDate` string, date-time, nullable
          - `ExpiresAfterMonths` integer
          - `ExpirationDate` string, date-time, nullable
          - `PostLoginPath` string, nullable
          - `StripeTaxCodeId` string, nullable
          - `UnitOfMeasure` string, nullable
          - `PlanAddOns` PlanAddOn[], nullable
          - `ContentGroups` ContentGroup[], nullable
          - `NumberOfSubscriptions` integer, nullable
        - `AllowedProducts` StripeProduct[], nullable
          - `Uid` string, nullable
          - `_objectType` string, nullable
          - `Created` string, date-time, required
          - `Updated` string, date-time, required
          - `ActivityEventData` unknown
          - `SchemaLessData` object, nullable
          - `StripeId` string, nullable
          - `IsLivemode` boolean
          - `Name` string, nullable
          - `DefaultPriceId` string, nullable
          - `Description` string, nullable
          - `IsActive` boolean
          - `TaxCodeId` string, nullable
          - `UnitLabel` string, nullable
          - `ContentGroups` ContentGroup[], nullable
          - `StripePrices` StripePrice[], nullable
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `SchemaLessData` object, nullable
            - `StripeId` string, nullable
            - `IsLivemode` boolean
            - `BillingScheme` string, nullable
            - `Currency` string, nullable
            - `CustomUnitAmount_Maximum` integer, nullable
            - `CustomUnitAmount_Minimum` integer, nullable
            - `CustomUnitAmount_Preset` integer, nullable
            - `IsActive` boolean
            - `Nickname` string, nullable
            - `Recurring_Interval` string, nullable
            - `Recurring_IntervalCount` integer, nullable
            - `Recurring_StripeMeter` StripeMeter
              - …
            - `Recurring_UsageType` string, nullable
            - `StripeProduct` StripeProduct (recursive)
            - `TaxBehavior` string, nullable
            - `TiersMode` string, nullable
            - `TransformQuantity_DivideBy` integer, nullable
            - `Type` string, nullable
            - `UnitAmount` integer, nullable
            - `UnitAmountDecimal` number, nullable
            - `ShowInSignUpForm` boolean
            - `CurrencySymbol` string, nullable
            - `CurrencyUnitAmount` number, nullable
            - `CurrencyUnitAmountDecimal` number, nullable
            - `Recurring_IntervalDays` integer, nullable
            - `Recurring_Description` string, nullable
            - `StripeMeterId` string, nullable
            - `StripeProductId` string, nullable
          - `AccountRegistrationMode` 1 | 2: `1` - Individual, `2` - Team
          - `ExpiresAfterMonths` integer
          - `ExpirationDate` string, date-time, nullable
          - `IsPerUser` boolean
          - `IsQuantityEditable` boolean
          - `MaximumPeople` integer, nullable
          - `MigratedAddOnUid` string, nullable
          - `MigratedPlanUid` string, nullable
          - `MinimumQuantity` integer, nullable
          - `PostLoginPath` string, nullable
          - `PostPurchaseUrl` string, nullable
          - `RequirePaymentInformation` boolean
          - `StripeProductCrossSells` StripeProductCrossSell[], nullable
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `StripeProduct` StripeProduct (recursive)
            - `CrossSellProduct` StripeProduct (recursive)
            - `IsUserSelectable` boolean
          - `TrialPeriodDays` integer
          - `TrialUntilDate` string, date-time, nullable
          - `CanDelete` boolean
          - `NumberOfPurchases` integer
          - `NumberOfSubscriptions` integer
          - `Quantity` integer, nullable
          - `StripeProductFamily` StripeProductFamily
            - `Uid` string, nullable
            - `_objectType` string, nullable
            - `Created` string, date-time, required
            - `Updated` string, date-time, required
            - `ActivityEventData` unknown
            - `SchemaLessData` object, nullable
            - `Name` string, nullable
            - `IsActive` boolean
            - `IsDefault` boolean
            - `StripeProducts` StripeProduct[], nullable
        - `AllowedAddOns` AddOn[], nullable
      - `IsPerUser` boolean
      - `QuarterlyRate` number
      - `OneTimeRate` number
      - `SubscriptionCount` integer
      - `Quantity` integer
    - `IsUserSelectable` boolean, required

## Other responses

- `401`: Unauthorized

---

[API](https://skmtc.dev/outseta/apis/outseta-api.md) · [All operations](https://skmtc.dev/outseta/apis/outseta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/outseta/apis/outseta-api/revisions/c362823af82d?raw)
