Schematic planbundle API

The planbundle API from Schematic — 2 operation(s) for planbundle.

Operations 2

POST /plan-bundles Create plan bundle #
PUT /plan-bundles/{plan_bundle_id} Update plan bundle #

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/schematic-planbundle-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

schematic-planbundle-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Schematic accesstokens Planbundle API
  version: '0.1'
  description: Schematic API
  x-rules-engine-schema-version: v97288f60
servers:
- url: https://api.schematichq.com
security:
- ApiKeyAuth: []
tags:
- name: planbundle
paths:
  /plan-bundles:
    post:
      operationId: createPlanBundle
      summary: Create plan bundle
      tags:
      - planbundle
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePlanBundleRequestBody'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PlanBundleResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: CreatePlanBundleParams
                required:
                - data
                - params
                title: CreatePlanBundleResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /plan-bundles/{plan_bundle_id}:
    put:
      operationId: updatePlanBundle
      summary: Update plan bundle
      tags:
      - planbundle
      parameters:
      - name: plan_bundle_id
        in: path
        description: plan_bundle_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePlanBundleRequestBody'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PlanBundleResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: UpdatePlanBundleParams
                required:
                - data
                - params
                title: UpdatePlanBundleResponse
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    BillingCreditBurnStrategy:
      type: string
      enum:
      - expiration_priority
      - first_in_first_out
      - last_in_first_out
      - plan_first_then_credit_bundles_first_in_first_out
    BillingCreditRolloverPolicy:
      type: string
      enum:
      - expire
      - none
      - rollover
    CreateBillingPlanCreditGrantRequestBody:
      type: object
      properties:
        apply_to_existing:
          type:
          - boolean
          - 'null'
        auto_topup_amount:
          type:
          - integer
          - 'null'
          format: int64
          minimum: 1
        auto_topup_amount_type:
          allOf:
          - $ref: '#/components/schemas/CreditAutoTopupAmountType'
        auto_topup_enabled:
          type:
          - boolean
          - 'null'
        auto_topup_expiry_type:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryType'
        auto_topup_expiry_unit:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryUnit'
        auto_topup_expiry_unit_count:
          type:
          - integer
          - 'null'
          format: int64
          minimum: 1
        auto_topup_threshold_credits:
          type:
          - integer
          - 'null'
          format: int64
          minimum: 0
        auto_topup_threshold_percent:
          type:
          - integer
          - 'null'
          format: int64
          maximum: 100
          minimum: 1
        credit_amount:
          type: integer
          format: int64
          maximum: 9999999999
          minimum: 0
        credit_id:
          type: string
        expiry_type:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryType'
        expiry_unit:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryUnit'
        expiry_unit_count:
          type:
          - integer
          - 'null'
          format: int64
          minimum: 1
        plan_id:
          type: string
        plan_version_id:
          type:
          - string
          - 'null'
        reset_cadence:
          $ref: '#/components/schemas/BillingPlanCreditGrantResetCadence'
        reset_start:
          $ref: '#/components/schemas/BillingPlanCreditGrantResetStart'
        reset_type:
          allOf:
          - $ref: '#/components/schemas/BillingPlanCreditGrantResetType'
      required:
      - reset_cadence
      - reset_start
      - credit_id
      - plan_id
      - credit_amount
      title: CreateBillingPlanCreditGrantRequestBody
    PlanType:
      type: string
      enum:
      - plan
      - add_on
    UpsertBillingProductRequestBody:
      type: object
      properties:
        billing_product_id:
          type:
          - string
          - 'null'
        charge_type:
          $ref: '#/components/schemas/ChargeType'
        currency:
          type:
          - string
          - 'null'
        currency_prices:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PlanCurrencyPriceRequestBody'
          maxItems: 50
        is_trialable:
          type: boolean
        monthly_price:
          type:
          - integer
          - 'null'
          format: int64
        monthly_price_id:
          type:
          - string
          - 'null'
        one_time_price:
          type:
          - integer
          - 'null'
          format: int64
        one_time_price_id:
          type:
          - string
          - 'null'
        trial_days:
          type:
          - integer
          - 'null'
          format: int64
        yearly_price:
          type:
          - integer
          - 'null'
          format: int64
        yearly_price_id:
          type:
          - string
          - 'null'
      required:
      - charge_type
      - is_trialable
      title: UpsertBillingProductRequestBody
    EntitlementPriceBehavior:
      type: string
      enum:
      - credit_burndown
      - overage
      - pay_as_you_go
      - pay_in_advance
      - tier
    EntitlementValueType:
      type: string
      enum:
      - boolean
      - credit
      - numeric
      - trait
      - unknown
      - unlimited
    BillingProductPriceInterval:
      type: string
      enum:
      - day
      - month
      - one-time
      - year
    BillingPriceView:
      type: object
      properties:
        billing_scheme:
          $ref: '#/components/schemas/BillingPriceScheme'
        created_at:
          type: string
          format: date-time
        currency:
          type: string
        id:
          type: string
        interval:
          $ref: '#/components/schemas/BillingProductPriceInterval'
        is_active:
          type: boolean
        meter_event_name:
          type:
          - string
          - 'null'
        meter_event_payload_key:
          type:
          - string
          - 'null'
        meter_id:
          type:
          - string
          - 'null'
        nickname:
          type:
          - string
          - 'null'
        package_size:
          type: integer
          format: int64
        price:
          type: integer
          format: int64
        price_decimal:
          type:
          - string
          - 'null'
        price_external_id:
          type: string
        price_id:
          type: string
        price_tier:
          type: array
          items:
            $ref: '#/components/schemas/BillingProductPriceTierResponseData'
          maxItems: 100
        product_external_id:
          type: string
        product_id:
          type: string
        product_name:
          type: string
        provider_type:
          $ref: '#/components/schemas/BillingProviderType'
        tiers_mode:
          allOf:
          - $ref: '#/components/schemas/BillingTiersMode'
        updated_at:
          type: string
          format: date-time
        usage_type:
          $ref: '#/components/schemas/BillingPriceUsageType'
      required:
      - id
      - billing_scheme
      - created_at
      - currency
      - interval
      - is_active
      - package_size
      - price
      - price_external_id
      - product_external_id
      - provider_type
      - updated_at
      - usage_type
      - price_id
      - product_id
      - product_name
      - price_tier
      title: BillingPriceView
    FeatureType:
      type: string
      enum:
      - boolean
      - event
      - trait
    FeatureLifecyclePhase:
      type: string
      enum:
      - add_on
      - alpha
      - beta
      - deprecated
      - ga
      - inactive
      - in_plan
      - internal_testing
      - legacy
    BillingProductResponseData:
      type: object
      properties:
        account_id:
          type: string
        created_at:
          type: string
          format: date-time
        currency:
          type:
          - string
          - 'null'
          description: Deprecated; currencies are associated with prices, not products
          deprecated: true
        environment_id:
          type: string
        external_id:
          type: string
        is_active:
          type: boolean
        name:
          type: string
        price:
          type: number
        price_decimal:
          type:
          - string
          - 'null'
        product_id:
          type: string
        provider_type:
          $ref: '#/components/schemas/BillingProviderType'
        quantity:
          type: number
        updated_at:
          type: string
          format: date-time
      required:
      - account_id
      - created_at
      - environment_id
      - external_id
      - is_active
      - name
      - price
      - product_id
      - provider_type
      - quantity
      - updated_at
      title: BillingProductResponseData
    PlanResponseData:
      type: object
      properties:
        audience_type:
          type:
          - string
          - 'null'
          deprecated: true
        company_id:
          type:
          - string
          - 'null'
        copied_from_plan_id:
          type:
          - string
          - 'null'
        created_at:
          type: string
          format: date-time
        description:
          type: string
        icon:
          $ref: '#/components/schemas/PlanIcon'
        id:
          type: string
        name:
          type: string
        plan_type:
          $ref: '#/components/schemas/PlanType'
        updated_at:
          type: string
          format: date-time
      required:
      - created_at
      - description
      - icon
      - id
      - name
      - plan_type
      - updated_at
      title: PlanResponseData
    PlanBundleCreditGrantRequestBody:
      type: object
      properties:
        action:
          $ref: '#/components/schemas/PlanBundleAction'
        create_req:
          $ref: '#/components/schemas/CreateBillingPlanCreditGrantRequestBody'
        credit_grant_id:
          type:
          - string
          - 'null'
        delete_req:
          $ref: '#/components/schemas/DeleteBillingPlanCreditGrantRequestBody'
        update_req:
          $ref: '#/components/schemas/UpdateBillingPlanCreditGrantRequestBody'
      required:
      - action
      title: PlanBundleCreditGrantRequestBody
    BillingProductPriceTierResponseData:
      type: object
      properties:
        flat_amount:
          type:
          - integer
          - 'null'
          format: int64
        per_unit_price:
          type:
          - integer
          - 'null'
          format: int64
        per_unit_price_decimal:
          type:
          - string
          - 'null'
        up_to:
          type:
          - integer
          - 'null'
          format: int64
      title: BillingProductPriceTierResponseData
    PlanEntitlementResponseData:
      type: object
      properties:
        billing_linked_resource:
          $ref: '#/components/schemas/BillingLinkedResourceResponseData'
        billing_threshold:
          type:
          - integer
          - 'null'
          format: int64
        consumption_rate:
          type:
          - number
          - 'null'
        created_at:
          type: string
          format: date-time
        currency_prices:
          type: array
          items:
            $ref: '#/components/schemas/EntitlementCurrencyPricesResponseData'
          maxItems: 1000
        environment_id:
          type: string
        feature:
          $ref: '#/components/schemas/FeatureResponseData'
        feature_id:
          type: string
        id:
          type: string
        metered_monthly_price:
          $ref: '#/components/schemas/BillingPriceView'
        metered_yearly_price:
          $ref: '#/components/schemas/BillingPriceView'
        metric_period:
          allOf:
          - $ref: '#/components/schemas/MetricPeriod'
        metric_period_month_reset:
          allOf:
          - $ref: '#/components/schemas/MetricPeriodMonthReset'
        plan:
          $ref: '#/components/schemas/PlanResponseData'
        plan_id:
          type: string
        price_behavior:
          allOf:
          - $ref: '#/components/schemas/EntitlementPriceBehavior'
        rule_id:
          type: string
        rule_id_usage_exceeded:
          type:
          - string
          - 'null'
        soft_limit:
          type:
          - integer
          - 'null'
          format: int64
        updated_at:
          type: string
          format: date-time
        usage_based_product:
          $ref: '#/components/schemas/BillingProductResponseData'
        value_bool:
          type:
          - boolean
          - 'null'
        value_credit:
          $ref: '#/components/schemas/BillingCreditResponseData'
        value_numeric:
          type:
          - integer
          - 'null'
          format: int64
        value_trait:
          $ref: '#/components/schemas/EntityTraitDefinitionResponseData'
        value_trait_id:
          type:
          - string
          - 'null'
        value_type:
          $ref: '#/components/schemas/EntitlementValueType'
      required:
      - created_at
      - currency_prices
      - environment_id
      - feature_id
      - id
      - plan_id
      - rule_id
      - updated_at
      - value_type
      title: PlanEntitlementResponseData
    PlanTraitResponseData:
      type: object
      properties:
        account_id:
          type: string
        created_at:
          type: string
          format: date-time
        environment_id:
          type: string
        id:
          type: string
        plan_id:
          type: string
        plan_type:
          type: string
        trait_id:
          type: string
        trait_value:
          type: string
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - account_id
      - environment_id
      - plan_id
      - plan_type
      - trait_id
      - trait_value
      - created_at
      - updated_at
      title: PlanTraitResponseData
    MetricPeriodMonthReset:
      type: string
      enum:
      - billing_cycle
      - first_of_month
    ChargeType:
      type: string
      enum:
      - free
      - one_time
      - recurring
    BillingTiersMode:
      type: string
      enum:
      - graduated
      - volume
    ApiError:
      type: object
      properties:
        error:
          type: string
          description: Error message
      required:
      - error
    BillingPlanCreditGrantResetCadence:
      type: string
      enum:
      - daily
      - monthly
      - weekly
      - yearly
    CreateEntitlementInBundleRequestBody:
      type: object
      properties:
        billing_product_id:
          type:
          - string
          - 'null'
        billing_threshold:
          type:
          - integer
          - 'null'
          format: int64
          maximum: 9999999999999
          minimum: 50
        credit_consumption_rate:
          type:
          - number
          - 'null'
        currency:
          type:
          - string
          - 'null'
        currency_prices:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CurrencyPriceRequestBody'
          maxItems: 50
        feature_id:
          type: string
        metric_period:
          allOf:
          - $ref: '#/components/schemas/MetricPeriod'
        metric_period_month_reset:
          allOf:
          - $ref: '#/components/schemas/MetricPeriodMonthReset'
        monthly_metered_price_id:
          type:
          - string
          - 'null'
          deprecated: true
        monthly_price_tiers:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CreatePriceTierRequestBody'
          maxItems: 100
        monthly_unit_price:
          type:
          - integer
          - 'null'
          format: int64
        monthly_unit_price_decimal:
          type:
          - string
          - 'null'
        overage_billing_product_id:
          type:
          - string
          - 'null'
          deprecated: true
        plan_id:
          type: string
        plan_version_id:
          type:
          - string
          - 'null'
        price_behavior:
          allOf:
          - $ref: '#/components/schemas/EntitlementPriceBehavior'
        price_tiers:
          type:
          - array
          - 'null'
          description: Use MonthlyPriceTiers or YearlyPriceTiers instead
          items:
            $ref: '#/components/schemas/CreatePriceTierRequestBody'
          deprecated: true
          maxItems: 100
        soft_limit:
          type:
          - integer
          - 'null'
          format: int64
        tier_mode:
          allOf:
          - $ref: '#/components/schemas/BillingTiersMode'
        value_bool:
          type:
          - boolean
          - 'null'
        value_credit_id:
          type:
          - string
          - 'null'
        value_numeric:
          type:
          - integer
          - 'null'
          format: int64
        value_trait_id:
          type:
          - string
          - 'null'
        value_type:
          $ref: '#/components/schemas/EntitlementValueType'
        yearly_metered_price_id:
          type:
          - string
          - 'null'
          deprecated: true
        yearly_price_tiers:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CreatePriceTierRequestBody'
          maxItems: 100
        yearly_unit_price:
          type:
          - integer
          - 'null'
          format: int64
        yearly_unit_price_decimal:
          type:
          - string
          - 'null'
      required:
      - plan_id
      - feature_id
      - value_type
      title: CreateEntitlementInBundleRequestBody
    UpdatePlanTraitTraitRequestBody:
      type: object
      properties:
        trait_id:
          type: string
        trait_value:
          type: string
      required:
      - trait_id
      - trait_value
      title: UpdatePlanTraitTraitRequestBody
    TraitType:
      type: string
      enum:
      - boolean
      - currency
      - date
      - number
      - string
      - url
    PreviewObjectResponseData:
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
        id:
          type: string
        image_url:
          type:
          - string
          - 'null'
        name:
          type: string
      required:
      - id
      - name
      title: PreviewObjectResponseData
    BillingProviderType:
      type: string
      enum:
      - orb
      - schematic
      - stripe
    UpdatePlanRequestBody:
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
          maxLength: 1024
          minLength: 0
        icon:
          allOf:
          - $ref: '#/components/schemas/PlanIcon'
        name:
          type: string
          maxLength: 256
          minLength: 1
      required:
      - name
      title: UpdatePlanRequestBody
    EntityType:
      type: string
      enum:
      - company
      - user
    UpdatePlanBundleRequestBody:
      type: object
      properties:
        billing_product:
          $ref: '#/components/schemas/UpsertBillingProductRequestBody'
        credit_grants:
          type: array
          items:
            $ref: '#/components/schemas/PlanBundleCreditGrantRequestBody'
          maxItems: 100
        entitlements:
          type: array
          items:
            $ref: '#/components/schemas/PlanBundleEntitlementRequestBody'
          maxItems: 100
        plan:
          $ref: '#/components/schemas/UpdatePlanRequestBody'
        plan_version_id:
          type:
          - string
          - 'null'
        traits:
          type: array
          items:
            $ref: '#/components/schemas/UpdatePlanTraitTraitRequestBody'
          maxItems: 100
      required:
      - entitlements
      title: UpdatePlanBundleRequestBody
    BillingLinkedResourceResponseData:
      type: object
      properties:
        billing_provider:
          $ref: '#/components/schemas/BillingProviderType'
        external_resource_id:
          type: string
        originator:
          $ref: '#/components/schemas/BillingProviderType'
      required:
      - billing_provider
      - external_resource_id
      - originator
      title: BillingLinkedResourceResponseData
    BillingPriceUsageType:
      type: string
      enum:
      - licensed
      - metered
    BillingPriceScheme:
      type: string
      enum:
      - per_unit
      - tiered
    DeleteBillingPlanCreditGrantRequestBody:
      type: object
      properties:
        apply_to_existing:
          type:
          - boolean
          - 'null'
      title: DeleteBillingPlanCreditGrantRequestBody
    CreatePlanBundleRequestBody:
      type: object
      properties:
        billing_product:
          $ref: '#/components/schemas/UpsertBillingProductRequestBody'
        credit_grants:
          type: array
          items:
            $ref: '#/components/schemas/PlanBundleCreditGrantRequestBody'
          maxItems: 100
        entitlements:
          type: array
          items:
            $ref: '#/components/schemas/PlanBundleEntitlementRequestBody'
          maxItems: 100
        plan:
          $ref: '#/components/schemas/CreatePlanRequestBody'
        traits:
          type: array
          items:
            $ref: '#/components/schemas/UpdatePlanTraitTraitRequestBody'
          maxItems: 100
      required:
      - entitlements
      title: CreatePlanBundleRequestBody
    CurrencyPriceRequestBody:
      type: object
      properties:
        currency:
          type: string
          maxLength: 3
        monthly_price_tiers:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CreatePriceTierRequestBody'
          maxItems: 100
        monthly_unit_price:
          type:
          - integer
          - 'null'
          format: int64
        monthly_unit_price_decimal:
          type:
          - string
          - 'null'
        yearly_price_tiers:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CreatePriceTierRequestBody'
          maxItems: 100
        yearly_unit_price:
          type:
          - integer
          - 'null'
          format: int64
        yearly_unit_price_decimal:
          type:
          - string
          - 'null'
      required:
      - currency
      title: CurrencyPriceRequestBody
    BillingPlanCreditGrantResetType:
      type: string
      enum:
      - no_reset
      - plan_period
    BillingCreditExpiryType:
      type: string
      enum:
      - duration
      - end_of_billing_period
      - end_of_next_billing_period
      - end_of_trial
      - no_expiry
    CreditAutoTopupAmountType:
      type: string
      enum:
      - credit
    CreatePlanRequestBody:
      type: object
      properties:
        description:
          type: string
          maxLength: 1024
          minLength: 0
        icon:
          allOf:
          - $ref: '#/components/schemas/PlanIcon'
        name:
          type: string
          maxLength: 256
          minLength: 1
        plan_type:
          $ref: '#/components/schemas/PlanType'
      required:
      - description
      - name
      - plan_type
      title: CreatePlanRequestBody
    BillingPriceResponseData:
      type: object
      properties:
        currency:
          type: string
        external_price_id:
          type: string
        id:
          type: string
        interval:
          $ref: '#/components/schemas/BillingProductPriceInterval'
        nickname:
          type:
          - string
          - 'null'
        price:
          type: integer
          format: int64
        price_decimal:
          type:
          - string
          - 'null'
        provider_type:
          $ref: '#/components/schemas/BillingProviderType'
        scheme:
          $ref: '#/components/schemas/BillingPriceScheme'
      required:
      - currency
      - external_price_id
      - id
      - interval
      - price
      - provider_type
      - scheme
      title: BillingPriceResponseData
    BillingPlanCreditGrantResponseData:
      type: object
      properties:
        auto_topup_amount:
          type:
          - integer
          - 'null'
          format: int64
        auto_topup_amount_type:
          type:
          - string
          - 'null'
        auto_topup_enabled:
          type: boolean
        auto_topup_expiry_type:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryType'
        auto_topup_expiry_unit:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryUnit'
        auto_topup_expiry_unit_count:
          type:
          - integer
          - 'null'
          format: int64
        auto_topup_threshold_credits:
          type:
          - integer
          - 'null'
          format: int64
        auto_topup_threshold_percent:
          type:
          - integer
          - 'null'
          format: int64
        created_at:
          type: string
          format: date-time
        credit:
          $ref: '#/components/schemas/BillingCreditResponseData'
        credit_amount:
          type: integer
          format: int64
        credit_id:
          type: string
        credit_name:
          type: string
          description: Use credit.name from the nested credit object instead
          deprecated: true
        credit_plural_name:
          type:
          - string
          - 'null'
          description: Use plural_name from the nested credit object instead
          deprecated: true
        credit_singular_name:
          type:
          - string
          - 'null'
          description: Use singular_name from the nested credit object instead
          deprecated: true
        expiry_type:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryType'
        expiry_unit:
          allOf:
          - $ref: '#/components/schemas/BillingCreditExpiryUnit'
        expiry_unit_count:
          type:
          - integer
          - 'null'
          format: int64
        id:
          type: string
        plan:
          $ref: '#/components/schemas/PreviewObjectResponseData'
        plan_id:
          type: string
        plan_name:
          type: string
          description: Use plan.name from the nested plan object instead
          deprecated: true
        plan_version_id:
          type:
          - string
          - 'null'
        reset_cadence:
          allOf:
          - $ref: '#/components/schemas/BillingPlanCreditGrantResetCadence'
        reset_start:
          allOf:
          - $ref: '#/components/schemas/BillingPlanCreditGrantResetStart'
        reset_type:
          allOf:
          - $ref: '#/components/schemas/BillingPlanCreditGrantResetType'
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - credit_id
      - plan_id
      - plan_name
      - credit_amount
      - credit_name
      - auto_topup_enabled
      - created_at
      - updated_at
      title: BillingPlanCreditGrantResponseData
    PlanBundleAction:
      type: string
      enum:
      - create
      - update
      - delete
    BillingProductPlanResponseData:
      type: object
      properties:
        account_id:
          type: string
        billing_product_id:
          type: string
        charge_type:
          $ref: '#/components/schemas/ChargeType'
        controlled_by:
          $ref: '#/components/schemas/BillingProviderType'
        environment_id:
          type: string
        is_trialable:
          type: boolean
        monthly_price_id:
          type:
          - string
          - 'null'
        one_time_price_id:
          type:
          - string
          - 'null'
        plan_id:
          type: string
        trial_days:
          type:
          - integer
          - 'null'
          format: int64
        yearly_price_id:
          type:
          - string
          - 'null'
      required:
      - account_id
      - charge_type
      - environment_id
      - plan_id
      - billing_product_id
      - controlled_by
      - is_trialable
      title: BillingProductPlanResponseData
    EntityTraitDefinitionResponseData:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        display_name:
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
        hierarchy:
          type: array
          items:
            type: string
          maxItems: 1000
        id:
          type: string
        trait_type:
          $ref: '#/components/schemas/TraitType'
        updated_at:
          type: string
          format: date-time
      required:
      - created_at
      - display_name
      - entity_type
      - hierarchy
      - id
      - trait_type
      - updated_at
      title: EntityTraitDefinitionResponseData
    BillingCreditExpiryUnit:
      type: string
      enum:
      - billing_periods
      - days
    BillingCreditResponseData:
      type: object
      properties:
        burn_strategy:
          $ref: '#/components/schemas/BillingCreditBurnStrategy'
        cost_editable:
          type: boolean
        created_at:
          type: string
          format: date-time
        currency_prices:
          type: array
          items:
            $ref: '#/components/schemas/CreditCurrencyPriceResponseData'
          maxItems: 256
        default_expiry_unit:
          $ref: '#/components/schemas/BillingCreditExpiryUnit'
        default_expiry_unit_count:
          type:
          - integer
          - 'null'
          format: int64
        default_rollover_policy:
          $ref: '#/components/schemas/BillingCreditRolloverPolicy'
        description:
          type: string
        icon:
          type:
          - string
          - 'null'
        id:
          type: string
        name:
          type: string
        plural_name:
          type:
          - string
          - 'null'
        price:
          $ref: '#/components/schemas/BillingPriceResponseData'
        product:
          $ref: '#/components/schemas/BillingProductResponseData'
        singular_name:
          type:
          - string
          - 'null'
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - name
      - description
      - default_expiry_unit
      - default_rollover_policy
      - burn_strategy
      - cost_editable
      - currency_prices
      - created_at
      - updated_at
      title: BillingCreditResponseData
    Cr

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/schematic/refs/heads/main/openapi/schematic-planbundle-api-openapi.yml