Exports specific catalog items. Each section is selected independently as none, all, or a list of ids. By default the snapshot also includes everything the selection depends on — an add-on needs its plan set, which needs its product — so that the file can be imported as-is; set `includeDependencies` to false to take a strict slice instead.
const url = 'https://example.com/api/v1/provision/admin/catalog/export';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"tags":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"products":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"featureCatalog":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"monitoredAssets":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"suites":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"plans":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"addOns":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"entitlementOffers":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"ratingCampaigns":{"mode":"None","ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]},"includeDependencies":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/provision/admin/catalog/export \ --header 'Content-Type: application/json' \ --data '{ "tags": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "products": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "featureCatalog": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "monitoredAssets": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "suites": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "plans": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "addOns": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "entitlementOffers": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "ratingCampaigns": { "mode": "None", "ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }, "includeDependencies": true }'Request Bodyrequired
Section titled “Request Bodyrequired”Which items to export.
Which catalog items to put in an export snapshot. A request selecting nothing is rejected rather than answered with an empty envelope — an empty file that looks like a successful export is the worst outcome for a pipeline that diffs it.
object
Tag registry entries to export. Any tag carried by a selected product, feature catalog entry or offer travels with it regardless; select the whole section to carry the tags nothing is currently tagged with as well.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Products to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Feature catalog entries to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Product-level monitored asset templates to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Suites to export. Pulled in automatically by any plan set that belongs to one.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Usage plan sets to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Add-ons to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Entitlement offers to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Rating campaigns to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Pull in everything the selection references, so the snapshot can actually be imported. An add-on requires a plan set, which requires a product; without this, selecting one add-on produces a file that no tenant can apply. Turn it off only when the target already has the referenced entities.
Which catalog items to put in an export snapshot. A request selecting nothing is rejected rather than answered with an empty envelope — an empty file that looks like a successful export is the worst outcome for a pipeline that diffs it.
object
Tag registry entries to export. Any tag carried by a selected product, feature catalog entry or offer travels with it regardless; select the whole section to carry the tags nothing is currently tagged with as well.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Products to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Feature catalog entries to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Product-level monitored asset templates to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Suites to export. Pulled in automatically by any plan set that belongs to one.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Usage plan sets to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Add-ons to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Entitlement offers to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Rating campaigns to export.
object
Whether to export none of the section, all of it, or specific items.
Source-tenant ids to export. Required when CatalogSelectionMode CatalogSectionSelectionDto.Mode is CatalogSelectionMode.Ids, ignored otherwise.
Pull in everything the selection references, so the snapshot can actually be imported. An add-on requires a plan set, which requires a product; without this, selecting one add-on produces a file that no tenant can apply. Turn it off only when the target already has the referenced entities.
Responses
Section titled “Responses”OK
Portable snapshot of a tenant's catalog. Versioned by string CatalogExportEnvelopeDto.FormatVersion; the major
component gates import compatibility.
Entities reference each other by their source-tenant Guid. Those Guids are meaningless in
another tenant, so every one of them is resolvable through Dictionary<Guid, CatalogReferenceDto> CatalogExportEnvelopeDto.References.
object
Schema version of this envelope. See CatalogFormatVersions.
When the snapshot was taken.
Identifier of the tenant the snapshot was taken from.
Which sections are populated in this snapshot.
Item count per section, keyed by CatalogScopes constant.
object
Source-tenant Guid to portable key, for every cross-section reference in the snapshot.
object
Maps one source-tenant Guid to a portable key. Every cross-section Guid the snapshot contains has an entry, including ones whose target is present — so an importer has exactly one resolution path rather than a Guid path and a key path that disagree.
object
The kind of entity the Guid identifies.
How to find the same entity in another tenant.
object
Owning product code — set for products and for everything scoped to a product.
Owning product version.
Feature code, for feature catalog entries.
Metric name, for monitored assets.
Add-on code.
Name, for plan sets, rating campaigns and entitlement offers.
Version, for entitlement offers.
Vocabulary, for tags. Part of the key rather than a detail: the same name in two scopes is two different tags, so a key without it matches the wrong registry entry.
Whether the entity was selected, pulled in, or is referenced but absent.
Human-readable provenance — the edges that reached this entity, e.g.
add-on "Fleet add-on" → plan set. Empty when it was selected directly.
Non-fatal problems encountered while building the snapshot.
Something the export could not express cleanly. Warnings never block an export.
object
Stable machine-readable code, e.g. ambiguous-natural-key.
The affected entity’s key, when the warning is about one entity.
What the caller should know.
The tag registry. Carries the entries the snapshot’s items quote by name, plus — on a whole-section export — the ones nothing is tagged with, which have no other way to travel.
One entry of the tenant’s tag registry, as a snapshot carries it.
object
Source-tenant registry id. Carried like every other section’s id, so a picker can select one.
The vocabulary this tag belongs to. Half of the tag’s identity: the same name in two vocabularies is two different tags.
Display name. Matched case-insensitively against the target’s registry.
Chip colour as a #rrggbb hex triplet, or null for the default chip colour.
Products. Nested MonitoredAssets are echoed for readability only — the
List<MonitoredAssetDto>? CatalogExportEnvelopeDto.MonitoredAssets section is the authoritative carrier and an importer must
take assets from there, or a shared asset is created twice.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and presentation metadata.
object
Indicates the current product status in its lifecycle.
Unique identifier of the provider associated with this product.
Public-facing name of the product used for display purposes.
Description of the product as displayed in the customer portal.
Unique internal code of the product. Must be unique in combination with string ProductDto.ProductVersion.
Version of the product visible to the end user. Not SemVer: one to four dot-separated numbers (e.g. “1”, “1.2”, “1.2.3.4”), or empty. Prerelease and build suffixes are rejected.
Expiration date, after which the product is no longer available for deployment. Null if no expiration is set.
Optional external identifier, such as a CMS or ERP ID.
Tag names applied to this product, from the tenant’s TagScopeDto.Product vocabulary. Vendor-facing catalog organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Collection of features that define additional functionalities of the product.
A feature as defined on a product: default value, enablement, trial/grace availability, license-token inclusion, and metering configuration. Entitlements inherit these defaults.
object
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
One allowed value of an Enumeration-typed feature.
object
When true, the feature is withheld for the duration of a trial even if enabled.
Who can see a feature.
Where the feature appears among the product’s features. The vendor sets it; every list of a product’s features is ordered by it, so the screens agree with each other.
Assets associated with the product for usage monitoring.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Name of the consumption period the tiers reset on (see ConsumptionPeriodType), e.g. "Monthly".
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Lightweight metric definitions for this product.
A lightweight metric definition on a product: the machine name clients report usage under, plus display metadata (name, unit, category, number format).
object
Machine identifier clients report usage under (as opposed to the display string ProductMetricDto.Name).
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Display format hint, e.g. "0" or "0.0".
Additional product information, including URLs and revision details.
object
Custom properties for storing additional information associated with the product.
object
A custom key/value property (e.g. on a product) with optional metadata entries.
object
A key/value metadata entry attached to a PropertyValueDto.
object
Indicates if the product is locked for editing. Locked products cannot be modified.
Additional metadata about the product stored as a JSON string. May include technical specifications, system requirements, or custom attributes.
List of application scopes that are authorized to use this product. Application scopes define which application types or deployment targets can activate this product. If null or empty, any application can use this product (no scope restrictions).
Parent product ID if this product belongs to an inherited version lineage.
Feature catalog entries. Carries the fields a product feature’s bare Guid cannot.
A feature definition in a product’s feature catalog: the canonical source for a feature code’s type, allowed values, metering, and visibility. Whether end users are asked to rate a feature is configured separately, per campaign — see RatingCampaignDto.
object
Metric name a Metered feature reports usage under.
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
Lifecycle state of a feature catalog entry.
Who can see a feature.
Relative, unitless value weight used by value-delivered analytics. Null means the feature is not valued yet and contributes nothing. Weights are applied when a report is generated, so changing one re-values history — intended behaviour for a relative measure.
One allowed value of an Enumeration-typed feature.
object
Tag names applied to this entry, from the tenant’s TagScopeDto.FeatureCatalog vocabulary.
Product-level monitored asset templates, each appearing exactly once.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Name of the consumption period the tiers reset on (see ConsumptionPeriodType), e.g. "Monthly".
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Suites in the snapshot. Emitted before plans — a plan set needs its suite.
A suite: an ordered set of member products sold together, and the owner of the usage plan sets (tiers) that configure them.
object
One member product of a suite, in sell order.
object
True for the suite auto-created behind a product the first time it is priced, rather than
one an operator built. Listing excludes these by default; pass includeImplicit to
see them. Becomes false permanently once a second product joins.
Usage plan sets in the snapshot.
A named collection of usage plans (e.g. “My SaaS Plans”).
object
The suite this plan set belongs to. A single-product plan set belongs to that product’s implicit suite-of-one. Which member each tier configures is on the plan’s line items — the set itself names no product.
Lifecycle state of a usage plan set.
A usage plan such as “basic”, “standard”, or “professional”.
object
Whether the plan states its worth in money or in relative units. Every plan in one set
shares a mode — a set is one price list — and a plan carries only its own mode’s fields:
an Absolute plan is refused a RelativeWeight, a Relative plan is refused a
MonthlyPrice or Currency. So nothing ever has to pick a winner
between two answers to “what is this plan worth”.
What the plan charges per month, when PricingMode is
Absolute. Three states: null = not priced yet (missing data —
never treated as free), 0 = free/trial, positive = paid. Revenue reporting excludes
null-priced plans and reports them separately.
ISO 4217 code (e.g. “EUR”). Required when MonthlyPrice is positive, ignored otherwise.
What the plan is worth relative to its siblings, when PricingMode is
Relative — an unbounded weight, not a percentage, so
“Enterprise is 10x Basic” stays expressible and adding a plan never re-keys the others.
Reporting turns weights into a share of the total, so the shares add up on their own.
Three states mirroring MonthlyPrice: null = not weighted yet (never treated
as zero), 0 = carries no weight, positive = counts.
One entry per suite member the tier speaks about.
How one tier lands on one suite member: whether the tier includes that product at all, and — when included — the feature values it stamps for it.
object
The suite member this line item configures. Required on every line item except when creating a plan set for a suite of one, where the server stamps the sole member.
Defines a feature value override for a specific plan tier. Value is stored as string to support bool, enum, string, and json field values.
object
The metric name this feature’s meter is keyed by — the identity every usage read and
usage report must quote. It is NOT the feature code: codes are uppercase
(MIRAGE.IMAGE.RENDERS), metric names are lowercase (mirage.image.renders),
and the meter is resolved by an exact, case-sensitive match. Passing the code where the
metric name belongs silently finds nothing.
How a plan enforces a feature’s value.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Add-ons.
An add-on: a named set of feature adjustments, scoped to a suite, that can be granted to entitlements on top of their plan. Scoped to the suite rather than one of its plan-set revisions — revisions fork, the suite is what persists.
object
Lifecycle state of an add-on.
A feature definition in a product’s feature catalog: the canonical source for a feature code’s type, allowed values, metering, and visibility. Whether end users are asked to rate a feature is configured separately, per campaign — see RatingCampaignDto.
object
Metric name a Metered feature reports usage under.
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
Lifecycle state of a feature catalog entry.
Who can see a feature.
Relative, unitless value weight used by value-delivered analytics. Null means the feature is not valued yet and contributes nothing. Weights are applied when a report is generated, so changing one re-values history — intended behaviour for a relative measure.
One allowed value of an Enumeration-typed feature.
object
Tag names applied to this entry, from the tenant’s TagScopeDto.FeatureCatalog vocabulary.
One feature adjustment an add-on applies, and how it combines with the plan value.
object
Operand for the operation, as a string interpreted per the feature’s data type; unused for Tiered.
Usage tiers applied when AddOnFeatureValueOperationDto AddOnFeatureValueDto.Operation is Tiered.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Plan names this adjustment applies to; empty applies it to every plan.
How an add-on’s feature value combines with the plan-provided value.
Entitlements marked as offers (IsOffer = true).
The central admin read model for an entitlement: a customer’s grant to use one or more products, carrying lifecycle state, activation/trial/subscription policies, features, plan assignment, and external billing references.
object
Admin-controlled lifecycle state of an entitlement.
Consumer-facing subscription/lifecycle status, derived server-side from EntitlementLifecycleStatus EntitlementDto.Status, expiration dates, and trial / pause state.
Read-only convenience flag; true when TrialActivationPolicyDto? EntitlementDto.TrialActivationPolicy is set.
On offers: visitors can use the application without an account, on a short-lived license issued per device.
Read-only; true when this entitlement is held by a device rather than a person — an anonymous try license. Derived from the assignment, never stored.
On a try license whose device later signed up: the license they were issued. Nothing else carries over — the try license’s usage is purged with it.
Set when this entitlement was auto-issued for a self-service user; carries the source offer’s id.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and presentation metadata.
object
Indicates the current product status in its lifecycle.
Unique identifier of the provider associated with this product.
Public-facing name of the product used for display purposes.
Description of the product as displayed in the customer portal.
Unique internal code of the product. Must be unique in combination with string ProductDto.ProductVersion.
Version of the product visible to the end user. Not SemVer: one to four dot-separated numbers (e.g. “1”, “1.2”, “1.2.3.4”), or empty. Prerelease and build suffixes are rejected.
Expiration date, after which the product is no longer available for deployment. Null if no expiration is set.
Optional external identifier, such as a CMS or ERP ID.
Tag names applied to this product, from the tenant’s TagScopeDto.Product vocabulary. Vendor-facing catalog organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Collection of features that define additional functionalities of the product.
A feature as defined on a product: default value, enablement, trial/grace availability, license-token inclusion, and metering configuration. Entitlements inherit these defaults.
object
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
One allowed value of an Enumeration-typed feature.
object
When true, the feature is withheld for the duration of a trial even if enabled.
Who can see a feature.
Where the feature appears among the product’s features. The vendor sets it; every list of a product’s features is ordered by it, so the screens agree with each other.
Assets associated with the product for usage monitoring.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Name of the consumption period the tiers reset on (see ConsumptionPeriodType), e.g. "Monthly".
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Lightweight metric definitions for this product.
A lightweight metric definition on a product: the machine name clients report usage under, plus display metadata (name, unit, category, number format).
object
Machine identifier clients report usage under (as opposed to the display string ProductMetricDto.Name).
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Display format hint, e.g. "0" or "0.0".
Additional product information, including URLs and revision details.
object
Custom properties for storing additional information associated with the product.
object
A custom key/value property (e.g. on a product) with optional metadata entries.
object
A key/value metadata entry attached to a PropertyValueDto.
object
Indicates if the product is locked for editing. Locked products cannot be modified.
Additional metadata about the product stored as a JSON string. May include technical specifications, system requirements, or custom attributes.
List of application scopes that are authorized to use this product. Application scopes define which application types or deployment targets can activate this product. If null or empty, any application can use this product (no scope restrictions).
Parent product ID if this product belongs to an inherited version lineage.
A feature as granted on a specific entitlement: the product feature definition plus the entitlement-level value, enablement, and expiration overrides.
object
When true, the feature is withheld for the duration of a trial even if enabled.
True when the product allows this feature’s value to be overridden per entitlement.
Monitored asset backing a metered feature; Guid.Empty when the feature is not metered.
When this individual feature stops being available; null follows the entitlement’s expiration.
Activation-time requirements on an entitlement: the authentication level a user must meet, code/workflow requirements, network restrictions, and device-identification rules. Carried on ActivationPolicyDto? EntitlementDto.ActivationPolicy.
object
Authentication level a user must meet before a license activation is permitted. Used on activation policies and activation workflows.
Organization group the activating user must belong to; Guid.Empty means no group restriction.
Activation is permitted only from these CIDR ranges, IPv4 or IPv6 (empty = unrestricted).
When true, only devices whose identification was registered in advance can activate.
Configured length requirement for the device-identification signature (fingerprint). Stored with the policy and returned on reads; the activation pipeline does not currently enforce it.
Shape of the activation codes issued for this entitlement; null means the platform default random code.
object
When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.
Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.
Character set {RAND} draws from.
Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.
Casing applied to the rendered code.
Check-character algorithm used by the {CHK} token.
Counter the {SEQ} token draws from.
First value the counter issues.
How many times generation re-rolls the random segment after a uniqueness collision before the
item fails. Templates whose only variable part is {SEQ} have nothing to re-roll, so they
depend on the counter only ever moving forward.
Ignore separators (spaces and dashes) in a submitted code before lookup.
Match a submitted code without regard to case.
Fold characters the alphabet excludes onto the ones it keeps before lookup, so a user who types O for 0 or I for 1 still resolves. Only defined for alphabets that omit the confusable pair.
Value the counter will issue next. Populated on reads; ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.
Defines allocation and usage policy for a license: seat limits, lease/grace periods, pooling (floating), transfer capability, offline allowance and fingerprinting method.
object
Duration a seat remains leased before renewal is required.
Extra allowed time after lease expiration before the license is considered invalid.
Maximum number of device activations (seats) allowed.
Indicates if seats are drawn from a shared pool (floating license).
Indicates if a device may continue operating without online validation for a period.
Identifier for the device fingerprinting method used.
Strictness of fingerprint-component matching during activation lookup.
Defaults to ComponentMatchingStrategy.MatchAll (exact-equality).
All four strategies are accepted. The tolerant ones (MatchAny, MatchTwo,
MatchMost) take effect when the client supplies per-component fingerprint
hashes (an SDK node-id provider implementing IComponentNodeIdProvider);
activations without components fall back to exact-fingerprint matching.
Constrains license activation to a time window on an entitlement. Null bounds leave that side of the window open.
object
Duration the license stays valid after the first activation (TimeSpan.Zero means no per-activation limit); the resulting expiry is capped at DateTimeOffset? TimeRestrictedActivationPolicyDto.NotValidAfterTimestamp.
Data transfer object for trial activation policy settings.
object
The duration of the trial period.
Optional timestamp before which the trial cannot be activated.
Optional timestamp after which the trial is no longer valid.
The calculated timestamp when the trial ends.
If true, the trial period starts after the first license activation otherwise the trial starts now.
Optional plan set id containing the trial plan to auto-apply at first trial activation. If omitted, entitlement.AssignedPlanSetId is used.
Optional trial plan name to auto-apply at first trial activation.
Recurring-renewal policy on an entitlement: how often it renews, how many periods remain, and the outer validity bounds.
object
Calendar unit of one renewal period (e.g. "month"); combined with int SubscriptionPolicyDto.RenewInterval.
Number of string SubscriptionPolicyDto.RenewPeriod units per renewal (e.g. 3 with “month” renews quarterly).
Renewal periods remaining before the subscription lapses (capped at int SubscriptionPolicyDto.MaxSubscriptionPeriods).
Stored with the policy and returned on reads; license validation does not currently act on this flag.
On offers: the terms anonymous try licenses are issued under. On a try license: the terms it was issued under, so a later edit to the offer never moves its expiry.
object
How long a try license lasts, measured from the moment it is issued. Never extended by use: a window that moved on every visit would let one visit a day keep a license alive forever. Capped at 7 days — anything longer is an account-based trial.
How long an expired try license is kept before it is deleted, together with the device identifier it holds. One whose device signed up is deleted at the next sweep instead.
The public code an application presents to start a try. Separate from the offer’s own license key, so it can be rotated without disturbing anything else.
The plan try licenses are issued on. Leave empty to use the offer’s own plan.
What this offer will hand out before it stops.
object
The period the two counts below are measured over.
Try licenses this offer may issue within one window.
Try licenses one caller address may be issued within one window.
Unexpired try licenses this offer may hold at once.
External anchor of the originating subscription/grant (e.g. stripe:subscription:sub_…).
External anchor of the owning customer/account (e.g. stripe:customer:cus_…).
Opaque connector provenance / pass-through (mirrors Stripe metadata).
object
The suite the plan, trial, temporary override and add-ons belong to. Attached products outside it ride along as add-ons at the values stamped on them, and still contribute their features to the license. Null only while nothing has established governance yet — the first plan-shaped assignment or an explicit suite attach.
A time-boxed plan override on an entitlement. While the validity window is active the override plan applies instead of the assigned plan; the previous plan fields allow restoring it when the override lapses.
object
Campaign the override runs under, when it was applied as part of one.
Tag names applied to this entitlement, from the tenant’s TagScopeDto.Entitlement vocabulary. Offers share that vocabulary and keep their tags across save-as-offer and order-from-offer. Vendor-facing organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Application scopes set directly on the entitlement; empty means no entitlement-level restriction.
Resolved scopes actually enforced at activation, combining entitlement- and product-level scopes.
One entry in an entitlement’s plan-assignment history.
object
What triggered the change (e.g. manual admin action or an approved consumer plan-change request).
Rating campaigns with their targets.
A rating campaign: a transient ask (“how is export working out this quarter?”) layered over the permanent feature catalog. A user is prompted about a targeted feature only while the campaign is running and only if they are entitled to that feature.
object
True when the campaign is enabled and the current time is inside its window.
A campaign target as returned by the admin API, denormalized with the feature’s display fields.
object
Question shown for this feature; null or empty falls back to the generic prompt.
Lower is asked first. Null means no set order — reached by recent usage only.
Example
{ "references": { "additionalProperty": { "kind": "Product", "presence": "Explicit" } }, "tags": [ { "scope": "Product" } ], "products": [ { "status": "Draft", "features": [ { "featureType": "Boolean", "meterAggregationType": "CumulativeCounter", "visibility": "Public" } ], "monitoredAssets": [ { "metricType": "CumulativeCounter", "meteredUsage": { "lastReportedOverageSeverityStatus": "None", "usageTiers": [ { "quotaUsageLevel": "None", "quotaUsagePolicy": "None" } ], "accumulationMethod": "Sliced" }, "balanceUsage": { "usageQuota": [ { "quotaUsageLevel": "None" } ], "overageSeverityStatus": "None" } } ], "metrics": [ { "metricType": "CumulativeCounter" } ] } ], "featureCatalog": [ { "featureType": "Boolean", "lifecycleStatus": "Draft", "visibility": "Public", "meterAggregationType": "CumulativeCounter" } ], "monitoredAssets": [ { "metricType": "CumulativeCounter", "meteredUsage": { "lastReportedOverageSeverityStatus": "None", "usageTiers": [ { "quotaUsageLevel": "None", "quotaUsagePolicy": "None" } ], "accumulationMethod": "Sliced" }, "balanceUsage": { "usageQuota": [ { "quotaUsageLevel": "None" } ], "overageSeverityStatus": "None" } } ], "plans": [ { "status": "Draft", "plans": [ { "pricingMode": "Absolute", "lineItems": [ { "featureValues": [ { "enforcementType": "SingleValue", "usageTiers": [ { "quotaUsageLevel": "None", "quotaUsagePolicy": "None" } ] } ] } ] } ] } ], "addOns": [ { "status": "Draft", "features": [ { "featureType": "Boolean", "lifecycleStatus": "Draft", "visibility": "Public", "meterAggregationType": "CumulativeCounter" } ], "featureValues": [ { "usageTiers": [ { "quotaUsageLevel": "None", "quotaUsagePolicy": "None" } ], "operation": "Replace" } ] } ], "entitlementOffers": [ { "status": "Draft", "subscriptionStatus": "Pending", "products": [ { "status": "Draft", "features": [ { "featureType": "Boolean", "meterAggregationType": "CumulativeCounter", "visibility": "Public" } ], "monitoredAssets": [ { "metricType": "CumulativeCounter", "meteredUsage": { "lastReportedOverageSeverityStatus": "None", "usageTiers": [ { "quotaUsageLevel": "None", "quotaUsagePolicy": "None" } ], "accumulationMethod": "Sliced" }, "balanceUsage": { "usageQuota": [ { "quotaUsageLevel": "None" } ], "overageSeverityStatus": "None" } } ], "metrics": [ { "metricType": "CumulativeCounter" } ] } ], "features": [ { "catalogLifecycleStatus": "Draft" } ], "activationPolicy": { "requiredAuthenticationLevel": "Default" }, "keyIssuancePolicy": { "alphabet": "CrockfordBase32", "caseStyle": "Upper", "checksum": "None", "sequenceScope": "Entitlement" }, "claimBasedActivation": { "componentMatchingStrategy": "MatchAll" } } ]}Bad Request
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Unauthorized
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}