Maxio · Schema

Component

BillingSubscriptionRecurring BillingRevenue RecognitionSaaS MetricsPayments

Properties

Name Type Description
id integer The unique ID assigned to the component by Chargify. This ID can be used to fetch the component from the API.
name string The name of the Component, suitable for display on statements. e.g., Text Messages.
handle stringnull The component API handle
pricing_scheme object
unit_name string The name of the unit that the component’s usage is measured in. e.g., message
unit_price stringnull The amount the customer will be charged per unit. This field is only populated for ‘per_unit’ pricing schemes, otherwise it may be null.
product_family_id integernull The id of the Product Family to which the Component belongs. `null` for a Wallet Product, which has no Product Family.
product_family_name stringnull The name of the Product Family to which the Component belongs. `null` for a Wallet Product, which has no Product Family.
product_family_handle stringnull The handle of the Product Family to which the Component belongs. `null` for a Wallet Product, which has no Product Family.
price_per_unit_in_cents integernull deprecated - use unit_price instead.
kind object
archived boolean Boolean flag describing whether a component is archived or not.
description stringnull The description of the component.
default_price_point_id integernull
overage_prices arraynull Applicable only to prepaid usage components. An array of overage price brackets.
prices arraynull An array of price brackets. If the component uses the ‘per_unit’ pricing scheme, this array will be empty.
price_point_count integer Count for the number of price points associated with the component
price_points_url stringnull URL that points to the location to read the existing price points via GET request
default_price_point_name string
taxable boolean Boolean flag describing whether a component is taxable or not.
tax_code stringnull A string representing the tax code related to the component type. This is especially important when using AvaTax to tax based on locale. This attribute has a max length of 25 characters.
recurring boolean
upgrade_charge object
downgrade_credit object
created_at string Timestamp indicating when this component was created
updated_at string Timestamp indicating when this component was updated
archived_at stringnull Timestamp indicating when this component was archived
hide_date_range_on_invoice boolean (Only available on Relationship Invoicing sites) Boolean flag describing if the service date range should show for the component on generated invoices.
allow_fractional_quantities boolean
item_category object
use_site_exchange_rate booleannull
accounting_code stringnull E.g. Internal ID or SKU Number
event_based_billing_metric_id integer (Only for Event Based Components) This is an ID of a metric attached to the component. This metric is used to bill upon collected events.
interval integer The numerical interval. e.g., an interval of ‘30’ coupled with an interval_unit of day would mean this component’s default price point would renew every 30 days. This property is only available for si
interval_unit object
unspsc_code stringnull (Optional) Custom UNSPSC commodity code for Level 3/CEDP payment data. When set, this value is sent as the commodity code on invoice line items for this component instead of the default derived from i
features arraynull The active feature catalog items attached to this component. Present only when the request includes `include_features=true`.
View JSON Schema on GitHub

JSON Schema

maxio-component-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/maxio/json-schema/maxio-component-schema.json",
  "title": "Component",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/maxio-advanced-billing-openapi.yml#/components/schemas/Component",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "The unique ID assigned to the component by Chargify. This ID can be used to fetch the component from the API.",
      "contentEncoding": "int32"
    },
    "name": {
      "type": "string",
      "description": "The name of the Component, suitable for display on statements. e.g., Text Messages."
    },
    "handle": {
      "type": [
        "string",
        "null"
      ],
      "description": "The component API handle"
    },
    "pricing_scheme": {
      "allOf": [
        {
          "oneOf": [
            {},
            {
              "$ref": "#/$defs/PricingScheme"
            }
          ]
        },
        {}
      ]
    },
    "unit_name": {
      "type": "string",
      "description": "The name of the unit that the component’s usage is measured in. e.g., message"
    },
    "unit_price": {
      "type": [
        "string",
        "null"
      ],
      "description": "The amount the customer will be charged per unit. This field is only populated for ‘per_unit’ pricing schemes, otherwise it may be null."
    },
    "product_family_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "The id of the Product Family to which the Component belongs. `null` for a Wallet Product, which has no Product Family.",
      "contentEncoding": "int32"
    },
    "product_family_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "The name of the Product Family to which the Component belongs. `null` for a Wallet Product, which has no Product Family."
    },
    "product_family_handle": {
      "type": [
        "string",
        "null"
      ],
      "description": "The handle of the Product Family to which the Component belongs. `null` for a Wallet Product, which has no Product Family."
    },
    "price_per_unit_in_cents": {
      "type": [
        "integer",
        "null"
      ],
      "description": "deprecated - use unit_price instead.",
      "contentEncoding": "int64"
    },
    "kind": {
      "allOf": [
        {
          "$ref": "#/$defs/ComponentKind"
        },
        {
          "description": "A handle for the component type"
        }
      ]
    },
    "archived": {
      "type": "boolean",
      "description": "Boolean flag describing whether a component is archived or not."
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "The description of the component."
    },
    "default_price_point_id": {
      "type": [
        "integer",
        "null"
      ],
      "contentEncoding": "int32"
    },
    "overage_prices": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/ComponentPrice"
      },
      "description": "Applicable only to prepaid usage components. An array of overage price brackets."
    },
    "prices": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/ComponentPrice"
      },
      "description": "An array of price brackets. If the component uses the ‘per_unit’ pricing scheme, this array will be empty."
    },
    "price_point_count": {
      "type": "integer",
      "description": "Count for the number of price points associated with the component",
      "contentEncoding": "int32"
    },
    "price_points_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "URL that points to the location to read the existing price points via GET request"
    },
    "default_price_point_name": {
      "type": "string"
    },
    "taxable": {
      "type": "boolean",
      "description": "Boolean flag describing whether a component is taxable or not."
    },
    "tax_code": {
      "type": [
        "string",
        "null"
      ],
      "description": "A string representing the tax code related to the component type. This is especially important when using AvaTax to tax based on locale. This attribute has a max length of 25 characters."
    },
    "recurring": {
      "type": "boolean"
    },
    "upgrade_charge": {
      "allOf": [
        {
          "oneOf": [
            {},
            {
              "$ref": "#/$defs/CreditType"
            }
          ]
        },
        {
          "description": "The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided."
        }
      ]
    },
    "downgrade_credit": {
      "allOf": [
        {
          "oneOf": [
            {},
            {
              "$ref": "#/$defs/CreditType"
            }
          ]
        },
        {
          "description": "The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided."
        }
      ]
    },
    "created_at": {
      "type": "string",
      "description": "Timestamp indicating when this component was created",
      "contentEncoding": "date-time"
    },
    "updated_at": {
      "type": "string",
      "description": "Timestamp indicating when this component was updated",
      "contentEncoding": "date-time"
    },
    "archived_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "Timestamp indicating when this component was archived",
      "contentEncoding": "date-time"
    },
    "hide_date_range_on_invoice": {
      "type": "boolean",
      "description": "(Only available on Relationship Invoicing sites) Boolean flag describing if the service date range should show for the component on generated invoices."
    },
    "allow_fractional_quantities": {
      "type": "boolean"
    },
    "item_category": {
      "allOf": [
        {
          "oneOf": [
            {},
            {
              "$ref": "#/$defs/ItemCategory"
            }
          ]
        },
        {
          "description": "One of the following: Business Software, Consumer Software, Digital Services, Physical Goods, Other"
        }
      ]
    },
    "use_site_exchange_rate": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "accounting_code": {
      "type": [
        "string",
        "null"
      ],
      "description": "E.g. Internal ID or SKU Number"
    },
    "event_based_billing_metric_id": {
      "type": "integer",
      "description": "(Only for Event Based Components) This is an ID of a metric attached to the component. This metric is used to bill upon collected events.",
      "contentEncoding": "int32"
    },
    "interval": {
      "type": "integer",
      "description": "The numerical interval. e.g., an interval of ‘30’ coupled with an interval_unit of day would mean this component’s default price point would renew every 30 days. This property is only available for sites with Multifrequency enabled.",
      "contentEncoding": "int32"
    },
    "interval_unit": {
      "allOf": [
        {
          "oneOf": [
            {},
            {
              "$ref": "#/$defs/IntervalUnit"
            }
          ]
        },
        {
          "description": "A string representing the interval unit for this component's default price point, either month or day. This property is only available for sites with Multifrequency enabled."
        }
      ]
    },
    "unspsc_code": {
      "type": [
        "string",
        "null"
      ],
      "description": "(Optional) Custom UNSPSC commodity code for Level 3/CEDP payment data. When set, this value is sent as the commodity code on invoice line items for this component instead of the default derived from item_category."
    },
    "features": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/FeatureCatalogItem"
      },
      "description": "The active feature catalog items attached to this component. Present only when the request includes `include_features=true`."
    }
  },
  "$defs": {
    "ComponentKind": {
      "title": "ComponentKind",
      "enum": [
        "metered_component",
        "quantity_based_component",
        "on_off_component",
        "prepaid_usage_component",
        "event_based_component",
        "wallet_product"
      ],
      "type": "string",
      "description": "A handle for the component type"
    },
    "ComponentPrice": {
      "title": "ComponentPrice",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "contentEncoding": "int32"
        },
        "component_id": {
          "type": "integer",
          "contentEncoding": "int32"
        },
        "starting_quantity": {
          "type": "integer",
          "contentEncoding": "int32"
        },
        "ending_quantity": {
          "type": [
            "integer",
            "null"
          ],
          "contentEncoding": "int32"
        },
        "unit_price": {
          "type": "string"
        },
        "price_point_id": {
          "type": "integer",
          "contentEncoding": "int32"
        },
        "formatted_unit_price": {
          "type": "string"
        },
        "segment_id": {
          "type": [
            "integer",
            "null"
          ],
          "contentEncoding": "int32"
        }
      }
    },
    "CreditType": {
      "title": "CreditType",
      "enum": [
        "full",
        "prorated",
        "none"
      ],
      "type": "string",
      "description": "The type of credit to be created when upgrading/downgrading. Defaults to the component and then site setting if one is not provided."
    },
    "EntitlementPeriodicityUnit": {
      "title": "EntitlementPeriodicityUnit",
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year"
      ],
      "type": "string",
      "description": "The recurring window over which a `usage_limit` feature's allowance resets."
    },
    "FeatureCatalogItem": {
      "title": "FeatureCatalogItem",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "contentEncoding": "int32"
        },
        "feature_template_id": {
          "type": "integer",
          "description": "The id of the feature template this item was created from.",
          "contentEncoding": "int32"
        },
        "feature_key": {
          "type": "string",
          "description": "The `key` of the parent feature template."
        },
        "feature_name": {
          "type": "string",
          "description": "The `name` of the parent feature template."
        },
        "feature_kind": {
          "allOf": [
            {
              "$ref": "#/$defs/FeatureKind"
            },
            {
              "description": "The behavior of a feature:\n- `access_right`: a boolean entitlement. A subscriber either has access or does not.\n- `usage_limit`: a quantified allowance measured over a recurring period (for example, \"10,000 API calls per month\").\n- `service_right`: a free-form value (text, boolean, or number) that isn't a simple access flag or a metered limit."
            }
          ]
        },
        "value": {
          "type": "string",
          "description": "The value granted by this feature catalog item. Interpreted according to `feature_kind`: `\"true\"`/`\"false\"` for `access_right`, a numeric string for `usage_limit`, or any string for `service_right` (shaped by the feature template's `value_type`)."
        },
        "periodicity_interval": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Set when `feature_kind` is `usage_limit`; `null` otherwise.",
          "contentEncoding": "int32"
        },
        "periodicity_unit": {
          "allOf": [
            {
              "oneOf": [
                {},
                {
                  "$ref": "#/$defs/EntitlementPeriodicityUnit"
                }
              ]
            },
            {
              "description": "Set when `feature_kind` is `usage_limit`; `null` otherwise."
            }
          ]
        },
        "price_point_type": {
          "allOf": [
            {
              "oneOf": [
                {},
                {
                  "$ref": "#/$defs/FeatureOwnerPricePointType"
                }
              ]
            },
            {
              "description": "`null` when this feature catalog item applies to every price point of its owning product/component. Set when the feature catalog item is an override for one specific price point."
            }
          ]
        },
        "price_point_id": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Set together with `price_point_type` for price-point-specific overrides.",
          "contentEncoding": "int32"
        },
        "archived_at": {
          "type": [
            "string",
            "null"
          ],
          "contentEncoding": "date-time"
        },
        "created_at": {
          "type": "string",
          "contentEncoding": "date-time"
        },
        "updated_at": {
          "type": "string",
          "contentEncoding": "date-time"
        }
      },
      "description": "A feature template attached to a specific product or component (or one of their price points), with a concrete value. When a subscriber signs up for or is assigned this product/component, the feature catalog item is provisioned as an entitlement on their subscription."
    },
    "FeatureKind": {
      "title": "FeatureKind",
      "enum": [
        "access_right",
        "usage_limit",
        "service_right"
      ],
      "type": "string",
      "description": "The behavior of a feature:\n- `access_right`: a boolean entitlement. A subscriber either has access or does not.\n- `usage_limit`: a quantified allowance measured over a recurring period (for example, \"10,000 API calls per month\").\n- `service_right`: a free-form value (text, boolean, or number) that isn't a simple access flag or a metered limit."
    },
    "FeatureOwnerPricePointType": {
      "title": "FeatureOwnerPricePointType",
      "enum": [
        "ProductPricePoint",
        "PricePoint"
      ],
      "type": "string",
      "description": "Identifies which kind of price point a feature catalog item override applies to: `ProductPricePoint` for a product price point, `PricePoint` for a component price point. Only relevant when `price_point_id` is set."
    },
    "IntervalUnit": {
      "title": "IntervalUnit",
      "enum": [
        "day",
        "month"
      ],
      "type": "string"
    },
    "ItemCategory": {
      "title": "ItemCategory",
      "enum": [
        "Business Software",
        "Consumer Software",
        "Digital Services",
        "Physical Goods",
        "Other"
      ],
      "type": "string",
      "description": "One of the following: Business Software, Consumer Software, Digital Services, Physical Goods, Other"
    },
    "PricingScheme": {
      "title": "PricingScheme",
      "enum": [
        "stairstep",
        "volume",
        "per_unit",
        "tiered"
      ],
      "type": "string",
      "description": "The identifier for the pricing scheme. See [Product Components](https://help.chargify.com/products/product-components.html) for an overview of pricing schemes."
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/maxio-component"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.