Lists entitlements with pagination, sorting, and filtering.
const url = 'https://example.com/api/v1/provision/admin/entitlements';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/v1/provision/admin/entitlementsParameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”1-based page index.
Page size.
Optional sort expression.
Optional filter expression.
Responses
Section titled “Responses”OK
Serializable IPaginatedList<T> implementation used to deserialize paged API responses. int PaginatedListDto<T>.TotalPages, bool PaginatedListDto<T>.HasPreviousPage, and bool PaginatedListDto<T>.HasNextPage are computed from the other properties.
object
The 1-based index of this page within the full result set.
The maximum number of items per page that was requested.
The total number of items across all pages.
The items on this page.
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
Link to the license terms (EULA); empty when there are none. On an offer it is copied onto every entitlement ordered from it; on an entitlement it is sent to the application at every issue and refresh and shown to the customer.
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.
On offers: entitlements issued from the offer may deposit credits into their own balance through the consumer credit-grant route. On an entitlement: the value it was issued with.
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.
Read-only; true on the platform operator’s offer that every new tenant’s platform license is ordered from. It can’t be disabled or archived. Derived, 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.
Read-only; on a try license, when it was issued to its device. Null on everything else.
Read-only; on a try license, when the platform deletes it — its expiry plus the grace it was issued with, as the purge applies it. Null on everything else, and on a try license that carries no expiry.
Set when this entitlement was auto-issued for a self-service user; carries the source offer’s id.
The offer this entitlement was made from: recorded when it is ordered from an offer — an order, a sign-up, a billing provider’s subscription, a try — and by an admin for one made before that. Null when it was not made from an offer, and always on an offer.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and custom properties.
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.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
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".
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
Whether a custom property is sent to the application with its license.
Indicates if the product is locked for editing. Locked products cannot be modified.
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.
What still actively refers to this product. A product is deleted only while it is Draft or archived and nothing active refers to it. Null where the read does not compute it, such as a catalog export or a product embedded in an entitlement.
object
Customer entitlements that carry the product.
Offers that carry the product.
Suites the product is a member of. The suite created behind a product’s own plan sets is not counted here; its plan sets are.
Plan sets scoped to a suite the product is a member of.
What still actively refers to the family’s catalog features, on the family’s last live version only. Deleting that version deletes the features with it, so whatever still uses them keeps the product, as it would keep each feature from its own delete. Each referrer counts once, however many of the features it names, and the product itself is not counted, so their Products count is 0. Null on any other version, and on a product that is neither Draft nor archived, whose delete is refused on its status alone.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
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.
Read-only. Whether the feature is written into the signed license, copied from the product feature when the product was attached. False keeps it out of the token while it is still listed as included on the activation response and the customer’s pages.
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 when one entitlement is read by id (a list page leaves it null); 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), offline activation 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).
Allows offline activation: when false, the server refuses to issue an offline activation response for this license. Online activation is not affected.
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
How long the license stays valid after the first activation, to the end of the UTC day on which that runs out (TimeSpan.Zero means no such limit); the resulting expiry is capped at NotValidAfterTimestamp.
Optional recurring window (days of the week plus a daily open/close time) during which activation is permitted; null means no recurring restriction.
object
Days activation is permitted on. Null or empty means every day.
Time of day the window opens, in string? ActivationHoursScheduleDto.TimeZoneId. Set with TimeSpan? ActivationHoursScheduleDto.DailyWindowEnd or not at all.
Time of day the window closes, exclusive. Equal to the start is rejected — omit both for a whole-day window.
IANA (or Windows) time-zone id the window is expressed in; null means UTC.
Data transfer object for trial activation policy settings.
object
The duration of the trial period. Thirty days unless set; the server refuses a zero or negative period, since a trial that ends the moment it starts issues no trial license at all.
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.
The vendor’s own reference to the external record this entitlement came from, as
scheme:kind:id (e.g. sfdc:LicenseGrant__c:…). A billing provider’s subscription is
not an origin: its ids live on EntitlementBillingDto? EntitlementDto.Billing.
The vendor’s own reference to the owning customer/account in that external system; the billing provider’s customer id lives on EntitlementBillingDto? EntitlementDto.Billing.
Opaque connector provenance / pass-through (mirrors Stripe metadata).
object
The billing record (on an offer: the billing template), or null when none has been recorded.
Read here; written through PUT entitlements/{id}/billing.
object
One of BillingProviders, or a value a connector registered.
Who drives the entitlement’s plan. A member this client does not know reads as BillingModeDto.Unknown.
Why an operator manages the plan by hand; set with BillingModeDto.OperatorManaged.
How money is collected for the entitlement. A member this client does not know reads as BillingMethodDto.Unknown.
How often the entitlement bills. A member this client does not know reads as BillingIntervalDto.Unknown.
Informational: what the vendor recorded for their own overview. Never used to charge, never checked against plan prices.
ISO 4217 code of decimal? EntitlementBillingDto.Amount.
The provider’s own customer id (cus_…); written by Provision from the subscription event.
The provider’s own subscription id (sub_…); unique per tenant and provider, written by Provision.
The customer’s purchase order number or cost centre — what must appear on the invoice.
ISO 3166-1 alpha-2.
Provider-specific key-values, keys prefixed by provider (stripe.price_lookup_key).
object
Where the provider’s subscription stands, as Provision last recorded it from the subscription event. The connector holds the live picture; this is the copy the entitlement list filters on.
Start of the open past-due episode, when a payment failed and none has succeeded since.
When a lapse was recorded that could not be applied yet because another plan override stands.
When the payment lapse was applied to the plan; null once a payment or an operator lifts it.
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.
The offer whose promotion this override is; null for any other override, such as a trial or a lapsed payment.
On an offer, its promotion: set with SetOfferPromotionAsync. Null on an entitlement, which gets an
offer’s promotion as its TemporaryPlanOverrideDto EntitlementDto.TemporaryOverride.
object
The campaign it runs under; each entitlement given it counts as a plan-override touch of the campaign.
Recorded as the reason of each temporary override it becomes.
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).
What still keeps the entitlement or offer from being deleted. Null where the read does not compute it.
object
On an offer: the entitlements made from it that are not disabled, archived or deleted. Always 0 on an entitlement.
On an offer: the rating campaigns limited to its customers that are switched on and have not ended. Always 0 on an entitlement.
On an entitlement: its activations that still hold a license, being neither revoked nor past their lease or validity. Always 0 on an offer.
How many devices the vendor has reset on this entitlement so it could move to another machine.
The total number of pages, computed from int PaginatedListDto<T>.TotalCount and int PaginatedListDto<T>.PageSize; 0 when int PaginatedListDto<T>.PageSize is not positive.
Whether a page precedes this one (int PaginatedListDto<T>.PageNumber is greater than 1).
Whether a page follows this one (int PaginatedListDto<T>.PageNumber is less than int PaginatedListDto<T>.TotalPages).
Example
{ "items": [ { "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" } ], "periodAnchor": "Calendar", "accumulationMethod": "Sliced" }, "balanceUsage": { "usageQuota": [ { "quotaUsageLevel": "None" } ], "overageSeverityStatus": "None" } } ], "metrics": [ { "metricType": "CumulativeCounter" } ], "propertyValues": { "additionalProperty": { "visibility": "Private" } } } ], "features": [ { "catalogLifecycleStatus": "Draft" } ], "activationPolicy": { "requiredAuthenticationLevel": "Default" }, "keyIssuancePolicy": { "alphabet": "CrockfordBase32", "caseStyle": "Upper", "checksum": "None", "sequenceScope": "Entitlement" }, "claimBasedActivation": { "componentMatchingStrategy": "MatchAll" }, "timeRestrictedActivationPolicy": { "allowedHours": { "allowedDays": [ "Sunday" ] } }, "billing": { "mode": "ProviderManaged", "method": "Unspecified", "interval": "Unspecified", "state": "Unknown" } } ]}