Skip to content

Reports how many devices were issued an anonymous try license over a period and how many of them signed up, plus how many try licenses are held right now.

GET
/api/v1/provision/admin/entitlements/anonymous-try/funnel
curl --request GET \
--url https://example.com/api/v1/provision/admin/entitlements/anonymous-try/funnel
since
string format: date-time

Start of the period, by issuance time. Defaults to thirty days before until.

until
string format: date-time

End of the period, by issuance time. Defaults to now.

offerId
string format: uuid

Optional: report on one try offer instead of every one.

OK

Media typeapplication/json
        How an offer's anonymous try mode is performing: how many try licenses it issued over a period,
        how many of those led to a signup, and how many licenses are held right now.
        The two period figures are read from a durable record that outlives the try license, so they keep

answering after the licenses are deleted. Counting live licenses instead would give the ratio of “converted and not yet purged” to “issued and not yet purged” — a signup’s license is deleted within minutes while an unused one waits out its lifetime and a thirty-day grace, so that ratio reads near zero however well the offer is doing.

object
since

Start of the period the counts cover, by issuance time.

string format: date-time
until

End of the period the counts cover, by issuance time.

string format: date-time
tries

Try licenses issued in the period. Licenses, not devices: a device coming back after its first one expired is issued a fresh license and counts again. The record holds no device identifier to deduplicate on, deliberately — that identifier is what the purge exists to destroy.

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
conversions

How many of those licenses ended in the device signing up.

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
heldNow

Try licenses present right now — issued and not yet deleted. A point-in-time count, not a period one: it says how much is being tried today, which the period figures cannot.

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
hasTryOffer

Whether the tenant publishes an offer open to visitors at all. Distinguishes “nobody tried it in this period” from “there is nothing to try”, which no count can.

boolean
Examplegenerated
{
"since": "2026-04-15T12:00:00Z",
"until": "2026-04-15T12:00:00Z",
"tries": 1,
"conversions": 1,
"heldNow": 1,
"hasTryOffer": true
}