Schematic components API

The components API from Schematic — 4 operation(s) for components.

Operations 7

GET /components List components #
POST /components Create component #
GET /components/{component_id} Get component #
PUT /components/{component_id} Update component #
DELETE /components/{component_id} Delete component #
GET /components/count Count components #
GET /components/preview-data Preview component data #

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-components-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-components-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Schematic accesstokens Components API
  version: '0.1'
  description: Schematic API
  x-rules-engine-schema-version: v97288f60
servers:
- url: https://api.schematichq.com
security:
- ApiKeyAuth: []
tags:
- name: components
paths:
  /components:
    get:
      operationId: listComponents
      summary: List components
      tags:
      - components
      parameters:
      - name: q
        in: query
        schema:
          type: string
          maxLength: 512
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ComponentResponseData'
                    title: ListComponentsResponseData
                    maxItems: 250
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                        maxLength: 512
                    title: ListComponentsParams
                required:
                - data
                - params
                title: ListComponentsResponse
        '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'
    post:
      operationId: createComponent
      summary: Create component
      tags:
      - components
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateComponentRequestBody'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ComponentResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: CreateComponentParams
                required:
                - data
                - params
                title: CreateComponentResponse
        '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/{component_id}:
    get:
      operationId: getComponent
      summary: Get component
      tags:
      - components
      parameters:
      - name: component_id
        in: path
        description: component_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ComponentResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: GetComponentParams
                required:
                - data
                - params
                title: GetComponentResponse
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
    put:
      operationId: updateComponent
      summary: Update component
      tags:
      - components
      parameters:
      - name: component_id
        in: path
        description: component_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateComponentRequestBody'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ComponentResponseData'
                  params:
                    type: object
                    description: Input parameters
                    title: UpdateComponentParams
                required:
                - data
                - params
                title: UpdateComponentResponse
        '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'
    delete:
      operationId: deleteComponent
      summary: Delete component
      tags:
      - components
      parameters:
      - name: component_id
        in: path
        description: component_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/DeleteResponse'
                  params:
                    type: object
                    description: Input parameters
                    title: DeleteComponentParams
                required:
                - data
                - params
                title: DeleteComponentResponse
        '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/count:
    get:
      operationId: countComponents
      summary: Count components
      tags:
      - components
      parameters:
      - name: q
        in: query
        schema:
          type: string
          maxLength: 512
      - name: limit
        in: query
        description: Page limit (default 100)
        schema:
          type: integer
          description: Page limit (default 100)
          format: int64
          example: '100'
      - name: offset
        in: query
        description: Page offset (default 0)
        schema:
          type: integer
          description: Page offset (default 0)
          format: int64
          example: '0'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CountResponse'
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      limit:
                        type: integer
                        description: Page limit (default 100)
                        format: int64
                        example: '100'
                      offset:
                        type: integer
                        description: Page offset (default 0)
                        format: int64
                        example: '0'
                      q:
                        type: string
                        maxLength: 512
                    title: CountComponentsParams
                required:
                - data
                - params
                title: CountComponentsResponse
        '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/preview-data:
    get:
      operationId: previewComponentData
      summary: Preview component data
      tags:
      - components
      parameters:
      - name: company_id
        in: query
        schema:
          type: string
      - name: component_id
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ComponentPreviewResponseData'
                  params:
                    type: object
                    description: Input parameters
                    properties:
                      company_id:
                        type: string
                      component_id:
                        type: string
                    title: PreviewComponentDataParams
                required:
                - data
                - params
                title: PreviewComponentDataResponse
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    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
    ConditionType:
      type: string
      enum:
      - base_plan
      - billing_product
      - company
      - credit
      - metric
      - plan
      - plan_version
      - trait
      - user
    FeatureEntitlement:
      type: object
      properties:
        allocation:
          type:
          - integer
          - 'null'
          description: If the company has a numeric entitlement for this feature, the allocated amount
          format: int64
        credit_id:
          type:
          - string
          - 'null'
          description: If the company has a credit-based entitlement for this feature, the ID of the credit
        credit_remaining:
          type:
          - number
          - 'null'
          description: If the company has a credit-based entitlement for this feature, the remaining credit amount
        credit_total:
          type:
          - number
          - 'null'
          description: If the company has a credit-based entitlement for this feature, the total credit amount
        credit_used:
          type:
          - number
          - 'null'
          description: If the company has a credit-based entitlement for this feature, the amount of credit used
        event_name:
          type:
          - string
          - 'null'
          description: If the feature is event-based, the name of the event tracked for usage
        feature_id:
          type: string
          description: The ID of the feature
        feature_key:
          type: string
          description: The key of the flag associated with the feature
        metric_period:
          allOf:
          - $ref: '#/components/schemas/MetricPeriod'
          description: For event-based feature entitlements, the period over which usage is tracked
        metric_reset_at:
          type:
          - string
          - 'null'
          description: For event-based feature entitlements, when the usage period will reset
          format: date-time
        month_reset:
          allOf:
          - $ref: '#/components/schemas/MetricPeriodMonthReset'
          description: For event-based feature entitlements that have a monthly period, whether that monthly reset is based on the calendar month or a billing cycle
        soft_limit:
          type:
          - integer
          - 'null'
          description: For usage-based pricing, the soft limit for overage charges or the next tier boundary
          format: int64
        usage:
          type:
          - integer
          - 'null'
          description: If the company has a numeric entitlement for this feature, the current usage amount
          format: int64
        value_type:
          allOf:
          - $ref: '#/components/schemas/EntitlementValueType'
          description: The type of the entitlement value
      required:
      - feature_id
      - feature_key
      - value_type
      title: FeatureEntitlement
    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
    Rule:
      type: object
      properties:
        account_id:
          type: string
        condition_groups:
          type: array
          items:
            $ref: '#/components/schemas/ConditionGroup'
          maxItems: 1000
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/Condition'
          maxItems: 1000
        environment_id:
          type: string
        flag_id:
          type:
          - string
          - 'null'
        id:
          type: string
        name:
          type: string
        priority:
          type: integer
          format: int64
        rule_type:
          $ref: '#/components/schemas/RuleType'
        value:
          type: boolean
      required:
      - id
      - account_id
      - environment_id
      - rule_type
      - name
      - priority
      - conditions
      - condition_groups
      - value
      title: Rule
    MetricPeriodMonthReset:
      type: string
      enum:
      - billing_cycle
      - first_of_month
    BillingProductForSubscriptionResponseData:
      type: object
      properties:
        billing_scheme:
          $ref: '#/components/schemas/BillingPriceScheme'
        billing_threshold:
          type:
          - integer
          - 'null'
          format: int64
        created_at:
          type: string
          format: date-time
        currency:
          type: string
        environment_id:
          type: string
        external_id:
          type: string
        id:
          type: string
        interval:
          type: string
        meter_id:
          type:
          - string
          - 'null'
        name:
          type: string
        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
        provider_type:
          $ref: '#/components/schemas/BillingProviderType'
        quantity:
          type: number
        subscription_id:
          type: string
        subscription_item_external_id:
          type:
          - string
          - 'null'
        updated_at:
          type: string
          format: date-time
        usage_type:
          $ref: '#/components/schemas/BillingPriceUsageType'
      required:
      - id
      - created_at
      - currency
      - environment_id
      - external_id
      - interval
      - name
      - package_size
      - price
      - price_external_id
      - price_id
      - price_tier
      - provider_type
      - quantity
      - billing_scheme
      - subscription_id
      - updated_at
      - usage_type
      title: BillingProductForSubscriptionResponseData
    BillingCreditView:
      type: object
      properties:
        account_id:
          type: string
        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/CreditCurrencyPrice'
          maxItems: 1000
        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
        environment_id:
          type: string
        icon:
          type:
          - string
          - 'null'
        id:
          type: string
        name:
          type: string
        plural_name:
          type:
          - string
          - 'null'
        price:
          $ref: '#/components/schemas/BillingPriceView'
        price_per_unit:
          type:
          - integer
          - 'null'
          format: int64
        price_per_unit_decimal:
          type:
          - string
          - 'null'
        product:
          $ref: '#/components/schemas/BillingProductResponseData'
        singular_name:
          type:
          - string
          - 'null'
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - account_id
      - environment_id
      - name
      - description
      - default_expiry_unit
      - default_rollover_policy
      - burn_strategy
      - cost_editable
      - currency_prices
      - created_at
      - updated_at
      title: BillingCreditView
    EntityType:
      type: string
      enum:
      - company
      - user
    BillingPriceUsageType:
      type: string
      enum:
      - licensed
      - metered
    BillingCreditExpiryType:
      type: string
      enum:
      - duration
      - end_of_billing_period
      - end_of_next_billing_period
      - end_of_trial
      - no_expiry
    EntityKeyDefinitionResponseData:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        entity_type:
          $ref: '#/components/schemas/EntityType'
        id:
          type: string
        key:
          type: string
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - entity_type
      - key
      - created_at
      - updated_at
      title: EntityKeyDefinitionResponseData
    CustomPlanBillingStatus:
      type: string
      enum:
      - active
      - expired
      - paid
      - pending
    DeleteResponse:
      type: object
      properties:
        deleted:
          type: boolean
          description: Whether the delete was successful
    RuleConditionGroupDetailResponseData:
      type: object
      properties:
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/RuleConditionDetailResponseData'
          maxItems: 1000
        created_at:
          type: string
          format: date-time
        environment_id:
          type: string
        flag_id:
          type:
          - string
          - 'null'
        id:
          type: string
        rule_id:
          type: string
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - environment_id
      - rule_id
      - created_at
      - updated_at
      - conditions
      title: RuleConditionGroupDetailResponseData
    CustomPlanConfig:
      type: object
      properties:
        cta_text:
          type: string
        cta_web_site:
          type: string
        price_text:
          type: string
      required:
      - cta_web_site
      - cta_text
      - price_text
      title: CustomPlanConfig
    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
    PreviewObject:
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
        id:
          type: string
        image_url:
          type:
          - string
          - 'null'
        name:
          type: string
      required:
      - id
      - name
      title: PreviewObject
    FlagInPlanResponseData:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        default_value:
          type: boolean
        description:
          type: string
        feature:
          $ref: '#/components/schemas/FeatureResponseData'
        feature_id:
          type:
          - string
          - 'null'
        flag_type:
          $ref: '#/components/schemas/FlagType'
        id:
          type: string
        key:
          type: string
        last_checked_at:
          type:
          - string
          - 'null'
          format: date-time
        maintainer_account_member_id:
          type:
          - string
          - 'null'
        name:
          type: string
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RuleDetailResponseData'
          maxItems: 1000
        updated_at:
          type: string
          format: date-time
      required:
      - created_at
      - default_value
      - description
      - flag_type
      - id
      - key
      - name
      - updated_at
      - rules
      title: FlagInPlanResponseData
    FeatureResponseData:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        description:
          type: string
        event_subtype:
          type:
          - string
          - 'null'
        feature_type:
          $ref: '#/components/schemas/FeatureType'
        icon:
          type: string
        id:
          type: string
        lifecycle_phase:
          allOf:
          - $ref: '#/components/schemas/FeatureLifecyclePhase'
        maintainer_account_member_id:
          type:
          - string
          - 'null'
        name:
          type: string
        plural_name:
          type:
          - string
          - 'null'
        singular_name:
          type:
          - string
          - 'null'
        trait_id:
          type:
          - string
          - 'null'
        updated_at:
          type: string
          format: date-time
      required:
      - id
      - name
      - description
      - feature_type
      - icon
      - created_at
      - updated_at
      title: FeatureResponseData
    CountResponse:
      type: object
      properties:
        count:
          type: integer
          description: The number of resources
    GenericPreviewObject:
      type: object
      properties:
        description:
          type:
          - string
          - 'null'
        id:
          type: string
        image_url:
          type:
          - string
          - 'null'
        name:
          type: string
      required:
      - id
      - name
      title: GenericPreviewObject
    BillingPlanCreditGrantResetStart:
      type: string
      enum:
      - billing_period
      - first_of_month
    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
    FeatureLifecyclePhase:
      type: string
      enum:
      - add_on
      - alpha
      - beta
      - deprecated
      - ga
      - inactive
      - in_plan
      - internal_testing
      - legacy
    EntitlementType:
      type: string
      enum:
      - company_override
      - plan_entitlement
      - unknown
    CreditTransferView:
      type: object
      properties:
        amount:
          type: number
        created_at:
          type: string
          format: date-time
        direction:
          type: string
        id:
          type: string
        reason:
          type: string
        related_grant_id:
          type: string
      required:
      - id
      - amount
      - created_at
      - direction
      - related_grant_id
      - reason
      title: CreditTransferView
    BillingCreditGrantReason:
      type: string
      enum:
      - adjustment
      - billing_credit_auto_topup
      - free
      - plan
      - purchased
    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
    EntityKeyDetailResponseData:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        definition:
          $ref: '#/components/schemas/EntityKeyDefinitionResponseData'
        definition_id:
          type: string
        entity_id:
          type: string
        entity_type:
          $ref: '#/components/schemas/EntityType'
        environment_id:
          type: string
        id:
          type: string
        key:
          type: string
        updated_at:
          type: string
        

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