Plans have features of different kinds. These can be listed by using plan
subqueries. These subqueries are standard pagination-supported queries. See Querying with Pagination for more details.
Fixed features are mostly display-only features. These are the bulled points you can create in Plan Builder:
These features are not taken in account when calculating plan costs. They're part of the basic plan cost already. To fetch these features for a plan, you can use the fixedFeatures
subquery:
fixedFeatures(first: Int!,after: String,orderBy: FixedFeaturesOrderBy): PlanFixedFeatureConnection
The result is a pagination connection containing a list of PlanFixedFeature nodes:
type PlanFixedFeature implements Node {id: ID!label: String!displayName: String!displayValue: String!}
For example, for the plan in the screenshot above, the result of this query would be:
{..."fixedFeatures": {"edges": [{"node": {"displayName": "Checkbox feature","displayValue": "true"}},{"node": {"displayName": "Text feature","displayValue": "Text Label 1"}}]},...}
Metered features are features that have an associated cost that depends on usage:
Fetching these features can be done with the meteredFeatures
subquery:
meteredFeatures(first: Int!,after: String,orderBy: MeteredFeaturesOrderBy): PlanMeteredFeatureConnection
This returns paginated connection containing a list of PlanMeteredFeature nodes:
type PlanMeteredFeature implements Node {id: ID!label: String!displayName: String!numericDetails: PlanMeteredFeatureNumericDetails!}​type PlanMeteredFeatureNumericDetails {unit: String!costTiers: [PlanFeatureCostTier!]}​type PlanFeatureCostTier {limit: Int!cost: Int!}