POST/v1/customers/{external_id}/usage
Report usage
Records usage of a metered feature for the customer. Requires idempotencyKey; amount defaults to 1. A replay with the same key returns the original. register first registers a missing customer and needs customers:register or customers:write. Needs usage:write.
curl -X POST 'https://api.entitler.co/v1/customers/ada/usage' \
-H "Authorization: Bearer $ENTITLER_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":1,"createCustomer":true,"currency":"currency","featureKey":"featureKey","idempotencyKey":"idempotencyKey","memberId":"memberId","mode":"USAGE_MODE_UNSPECIFIED","occurredAtMs":1,"target":{"environmentId":"environmentId","projectId":"projectId","teamId":"teamId"},"zone":"zone"}'Credentials
Send any one of these:
- Bearer token
Path parameters
| Name | Type | Description |
|---|---|---|
external_idrequired | string | The customer's external ID, or me for the customer a customer token or identity token names. |
Request body
object
amountintegerat least 0; at most 18446744073709552000
createCustomerbooleancurrencystringfeatureKeystringidempotencyKeystringmemberIdstringmodeUsageModeOne of
USAGE_MODE_UNSPECIFIED,USAGE_MODE_GATE,USAGE_MODE_OBSERVE.occurredAtMsintegerat least 0; at most 18446744073709552000
targetProductTargetenvironmentIdstringprojectIdstringteamIdstring
zonestring
Responses
200The ReportUsageResponse message.
ReportUsageResponse
trackedTrackedUsageasOfintegerrequiredat least 0; at most 18446744073709552000
customerEntitledCustomercustomerIdstringexternalIdstringrequired
entitlementEntitlementbenefitThousandthsinteger (int64)at least 0; at most 4294967295
currencystringrequireddecimalsinteger (int64)requiredat least 0; at most 4294967295
entitledbooleanrequiredfeatureKeystringrequiredhomeZonesarray of ZonedEntitlementrequiredentitledbooleanrequiredremainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitmoneycommon.MarketLimitssettingcommon.SettingValueswitchbooleanwaitcommon.Wait
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.LimitmarketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
zonestringrequired
hoursEntitledHoursclosesAtintegerat least 0; at most 18446744073709552000
openbooleanrequiredopensAtintegerat least 0; at most 18446744073709552000
kindEntitledFeatureKindrequiredOne of
ENTITLED_FEATURE_KIND_UNSPECIFIED,ENTITLED_FEATURE_KIND_SWITCH,ENTITLED_FEATURE_KIND_METERED,ENTITLED_FEATURE_KIND_SETTING,ENTITLED_FEATURE_KIND_GROUP.memberMeterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
memberValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
meterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
perUsecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sharedBystringsharedValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sourcesarray of EntitlementSourcerequiredaddOnAddOnSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredquantityinteger (int64)requiredat least 0; at most 4294967295
throughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
defaultPlanDefaultPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringversionNumberintegerrequiredat least 0; at most 18446744073709552000
grantGrantSourcegrantIdstringrequiredthroughFeatureKeystringuntilintegerat least 0; at most 18446744073709552000
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
groupGroupSourcefeatureKeysarray of stringrequired
planPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
segmentKeystring
uncountedZonesarray of stringrequiredupgradesarray of UpgraderequiredactionUpgradeActionrequiredOne of
UPGRADE_ACTION_UNSPECIFIED,UPGRADE_ACTION_BUY,UPGRADE_ACTION_CONTACT.kindUpgradeKindrequiredOne of
UPGRADE_KIND_UNSPECIFIED,UPGRADE_KIND_PLAN,UPGRADE_KIND_ADD_ON.moveUpgradeMoverequiredOne of
UPGRADE_MOVE_UNSPECIFIED,UPGRADE_MOVE_SUBSCRIBE,UPGRADE_MOVE_UPGRADE,UPGRADE_MOVE_SWITCH,UPGRADE_MOVE_ADD,UPGRADE_MOVE_REPLACE.planIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstring
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchbooleanwaitcommon.Waitcountinteger (int64)requiredat least 0; at most 4294967295
unitcommon.WaitUnitrequiredOne of
WAIT_UNIT_UNSPECIFIED,WAIT_UNIT_DAYS,WAIT_UNIT_MONTHS.
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
marketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
waitingUntilintegerat least 0; at most 18446744073709552000
memberEntitledMemberexternalIdstringrequiredmemberIdstringrequired
servedServedCataloguechangeIdstringnothingNothingServedreleaseServedReleaseidstringrequirednumberintegerrequiredat least 0; at most 18446744073709552000
trackServedTrackidstringrequirednamestringrequired
sharedEntitlementbenefitThousandthsinteger (int64)at least 0; at most 4294967295
currencystringrequireddecimalsinteger (int64)requiredat least 0; at most 4294967295
entitledbooleanrequiredfeatureKeystringrequiredhomeZonesarray of ZonedEntitlementrequiredentitledbooleanrequiredremainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitmoneycommon.MarketLimitssettingcommon.SettingValueswitchbooleanwaitcommon.Wait
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.LimitmarketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
zonestringrequired
hoursEntitledHoursclosesAtintegerat least 0; at most 18446744073709552000
openbooleanrequiredopensAtintegerat least 0; at most 18446744073709552000
kindEntitledFeatureKindrequiredOne of
ENTITLED_FEATURE_KIND_UNSPECIFIED,ENTITLED_FEATURE_KIND_SWITCH,ENTITLED_FEATURE_KIND_METERED,ENTITLED_FEATURE_KIND_SETTING,ENTITLED_FEATURE_KIND_GROUP.memberMeterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
memberValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
meterMeterbankedintegerrequiredat least 0; at most 18446744073709552000
heldintegerrequiredat least 0; at most 18446744073709552000
remainingcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
resetsAtintegerat least 0; at most 18446744073709552000
topUpLeftintegerrequiredat least 0; at most 18446744073709552000
topUpSpentintegerrequiredat least 0; at most 18446744073709552000
usedintegerrequiredat least 0; at most 18446744073709552000
perUsecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sharedBystringsharedValuecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
sourcesarray of EntitlementSourcerequiredaddOnAddOnSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredquantityinteger (int64)requiredat least 0; at most 4294967295
throughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
defaultPlanDefaultPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringversionNumberintegerrequiredat least 0; at most 18446744073709552000
grantGrantSourcegrantIdstringrequiredthroughFeatureKeystringuntilintegerat least 0; at most 18446744073709552000
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
groupGroupSourcefeatureKeysarray of stringrequired
planPlanSourceplanIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstringthroughFeatureKeystringvaluecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequired
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchboolean
versionNumberintegerrequiredat least 0; at most 18446744073709552000
segmentKeystring
uncountedZonesarray of stringrequiredupgradesarray of UpgraderequiredactionUpgradeActionrequiredOne of
UPGRADE_ACTION_UNSPECIFIED,UPGRADE_ACTION_BUY,UPGRADE_ACTION_CONTACT.kindUpgradeKindrequiredOne of
UPGRADE_KIND_UNSPECIFIED,UPGRADE_KIND_PLAN,UPGRADE_KIND_ADD_ON.moveUpgradeMoverequiredOne of
UPGRADE_MOVE_UNSPECIFIED,UPGRADE_MOVE_SUBSCRIBE,UPGRADE_MOVE_UPGRADE,UPGRADE_MOVE_SWITCH,UPGRADE_MOVE_ADD,UPGRADE_MOVE_REPLACE.planIdstringrequiredplanKeystringrequiredplanNamestringrequiredproductIdstring
valuecommon.FeatureValuegroupcommon.GroupValuemembersarray of common.GroupMemberrequiredbenefitThousandthsinteger (int64)at least 0; at most 4294967295
featureKeystringrequiredgroupcommon.GroupValuemeteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequired
settingcommon.SettingValuechoicestringnumbercommon.Limittextstring
switchbooleanwaitcommon.Waitcountinteger (int64)requiredat least 0; at most 4294967295
unitcommon.WaitUnitrequiredOne of
WAIT_UNIT_UNSPECIFIED,WAIT_UNIT_DAYS,WAIT_UNIT_MONTHS.
meteredcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
moneycommon.MarketLimitslimitsarray of common.MarketLimitrequiredlimitcommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
marketIdstringrequired
settingcommon.SettingValuechoicestringnumbercommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
textstring
switchboolean
waitingUntilintegerat least 0; at most 18446744073709552000
usageUsageResultamountintegerrequiredat least 0; at most 18446744073709552000
benefitThousandthsinteger (int64)at least 0; at most 4294967295
cappedbooleanrequiredcappedByCappedByOne of
CAPPED_BY_UNSPECIFIED,CAPPED_BY_FEATURE,CAPPED_BY_MEMBER,CAPPED_BY_SHARED,CAPPED_BY_SHARED_MEMBER.costintegerat least 0; at most 18446744073709552000
countedbooleanrequiredexpiresAtMsintegerat least 0; at most 18446744073709552000
holdIdstringlatebooleanrequiredmemberOverByintegerrequiredat least 0; at most 18446744073709552000
meterChangeinteger (int64)requiredmodeUsageModerequiredOne of
USAGE_MODE_UNSPECIFIED,USAGE_MODE_GATE,USAGE_MODE_OBSERVE.occurredAtMsintegerat least 0; at most 18446744073709552000
opensAtintegerat least 0; at most 18446744073709552000
outcomeUsageOutcomerequiredOne of
USAGE_OUTCOME_UNSPECIFIED,USAGE_OUTCOME_RECORDED,USAGE_OUTCOME_REFUSED,USAGE_OUTCOME_DUPLICATE,USAGE_OUTCOME_CANCELLED,USAGE_OUTCOME_HELD,USAGE_OUTCOME_SETTLED,USAGE_OUTCOME_RELEASED,USAGE_OUTCOME_ADJUSTED.overByintegerrequiredat least 0; at most 18446744073709552000
perUsecommon.Limitcountintegerat least 0; at most 18446744073709552000
unlimitedcommon.Unlimited
perUseOverByintegerrequiredat least 0; at most 18446744073709552000
refusalUsageRefusalOne of
USAGE_REFUSAL_UNSPECIFIED,USAGE_REFUSAL_NOT_ENTITLED,USAGE_REFUSAL_OVER_ALLOWANCE,USAGE_REFUSAL_NO_BENEFIT,USAGE_REFUSAL_WAITING,USAGE_REFUSAL_OUTSIDE_HOURS,USAGE_REFUSAL_OVER_PER_USE,USAGE_REFUSAL_MEMBER_OVER_ALLOWANCE,USAGE_REFUSAL_SHARED_OVER_ALLOWANCE.replayedbooleanrequiredsaturatedbooleanrequiredsharedOverByintegerrequiredat least 0; at most 18446744073709552000
usageIdstringwaitingUntilintegerat least 0; at most 18446744073709552000
ErrorA refusal, with the HTTP status of its gRPC code.
Error
errorobjectrequiredcodestringrequiredparametersobjectrequiredEach value: string
reasonstringor nullrequired