Skip to content
Indiana
Dashboard
Docs
Browse docs / Check access and recommend products

Check access and recommend products

POST/api/v1/entitlements/check

Check whether current access covers a requirement and return eligible purchases or plan changes. Does not consume, reserve or trigger automatic payments. Recommendations respect the Paywall allowlist, current contracts, provider and currency.

SDK 0.0.1Updated

Make the request

Check whether current access covers a requirement and return eligible purchases or plan changes. Does not consume, reserve or trigger automatic payments. Recommendations respect the Paywall allowlist, current contracts, provider and currency.

This is a later-source endpoint. The published npm 0.0.1 artifact does not expose checkEntitlement. HTTP callers need the matching deployed server; SDK callers also need its matching build/release. See the release scope before integrating.
Credential
Server API key or customer token. Customer calls cannot select another customer.
Permission
entitlements:read
Set the base URL and App ID from SDK setup. These examples use placeholders and do not execute requests. Never put a server key in browser code.
request.shShell
curl -X POST "$GROOVE_BASE_URL/api/v1/entitlements/check" \  -H "Authorization: Bearer $GROOVE_CUSTOMER_TOKEN" \  -H "X-Groove-Project: $GROOVE_PROJECT_ID" \  -H "X-Groove-Environment: sandbox" \  -H "Content-Type: application/json" \  -d '{  "requirement": {    "entitlementId": "00000000-0000-4000-8000-000000000001",    "quantity": "1",    "properties": {}  },  "commerce": {    "provider": "stripe",    "currency": "USD"  },  "paywallId": "00000000-0000-4000-8000-000000000001"}'

The response is illustrative, not the result of a live request.

Request parameters

JSON body

requirementobjectRequired

The requirement value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
entitlementIduuidRequired

The entitlementId value for this operation. Its accepted type and constraints are listed above and below.

quantitystringRequired

Use the declared field type for business quantity. Credit operations use decimal strings to avoid floating-point error. quote/reserve/confirm/refund require positive quantities; consume can record zero-cost events.

pattern: ^(0|[1-9]\d{0,11})(\.\d{1,6})?$

propertiesobjectRequired

Validated pricing properties used to match dimensions and multipliers.

entityIduuidOptional

Entity ID within the current customer scope, for configured entity and license features.

commerceobjectOptional

The commerce value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
providerenumRequired

The provider value for this operation. Its accepted type and constraints are listed above and below.

Show allowed values

"stripe""apple""google"

currencyenumRequired

Currency code supported by the published price.

Show allowed values

"USD""EUR""CNY""GBP""JPY""CAD""AUD""NZD""CHF""HKD""SGD""KRW""INR""BRL""MXN""TWD""THB""IDR""MYR""PHP""VND""ZAR""AED""SAR""SEK""NOK""DKK""PLN""CZK""HUF""ILS""TRY""RON"

paywallIduuidOptional

The paywallId value for this operation. Its accepted type and constraints are listed above and below.

customerIduuidOptional

Indiana customer ID mapped from a verified identity on the server. Omit for customer-token calls, which use the token-bound customer.

Response fields

Successful responses include requestId and scope. Use the actual business status or accepted field to determine the result. Optional fields are omitted when unavailable.

HTTP 200 · application/json

requestIduuidRequired

Server-generated HTTP request UUID. Include it when reporting a failed request.

scopeobjectRequired

The App and environment of this response. Headers only verify scope; they cannot switch key scope.

Show child fields
projectIdstringRequired

App ID bound to the credential.

minLength: 1

environmentenumRequired

Separate data scope: sandbox or live.

Show allowed values

"sandbox""live"

checkobjectRequired

The check value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
entitlementIduuidRequired

The entitlementId value for this operation. Its accepted type and constraints are listed above and below.

namestringRequired

Display name of the customer or object; not an identity key.

minLength: 1 · maxLength: 120

kindenumRequired

The kind value for this operation. Its accepted type and constraints are listed above and below.

Show allowed values

"access""metered""credit"

quantityobjectRequired

Use the declared field type for business quantity. Credit operations use decimal strings to avoid floating-point error. quote/reserve/confirm/refund require positive quantities; consume can record zero-cost events.

allowedbooleanRequired

Whether this feature is allowed at evaluation time. Use for display; your backend still authorizes business operations.

reasonenum | nullRequired

Rejection reason or ledger operation description; interpret with accepted and status.

previewobject | nullRequired

The preview value for this operation. Its accepted type and constraints are listed above and below.

Show child fields
scenarioenumRequired

The scenario value for this operation. Its accepted type and constraints are listed above and below.

Show allowed values

"feature_flag""usage_limit"

candidatesarrayRequired

The candidates value for this operation. Its accepted type and constraints are listed above and below.

maxItems: 20

Show child fields
productIduuidRequired

The productId value for this operation. Its accepted type and constraints are listed above and below.

productVersionIduuidRequired

The productVersionId value for this operation. Its accepted type and constraints are listed above and below.

namestringRequired

Display name of the customer or object; not an identity key.

minLength: 1 · maxLength: 120

actionenumRequired

Business action. Target fields and quantity requirements vary by action; see the request structure and example.

Show allowed values

"purchase""upgrade""addon""topup"

membershipIduuid | nullRequired

The membershipId value for this operation. Its accepted type and constraints are listed above and below.

currencyenumRequired

Currency code supported by the published price.

Show allowed values

"USD""EUR""CNY""GBP""JPY""CAD""AUD""NZD""CHF""HKD""SGD""KRW""INR""BRL""MXN""TWD""THB""IDR""MYR""PHP""VND""ZAR""AED""SAR""SEK""NOK""DKK""PLN""CZK""HUF""ILS""TRY""RON"

amountMinorstringRequired

The amountMinor value for this operation. Its accepted type and constraints are listed above and below.

pattern: ^(0|[1-9]\d{0,8})$

intervalenumRequired

The interval value for this operation. Its accepted type and constraints are listed above and below.

Show allowed values

"free""week""month""year""one_time"

intervalCountintegerRequired

Charging interval count: up to 156 weeks, 36 months or 3 years; omitted means 1. Not accepted for free or one_time. Allowance resets remain independent.

min: 1 · max: 156

Handle errors

Common failures
CodeRecovery
UNAUTHENTICATEDVerify the key or refresh the expired customer token once.
FORBIDDENCheck current key permissions and customer access.
INVALID_REQUESTCheck field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCHUse the App and environment bound to the credential.

Common failures

  • UNAUTHENTICATED

    Recovery
    Verify the key or refresh the expired customer token once.
  • FORBIDDEN

    Recovery
    Check current key permissions and customer access.
  • INVALID_REQUEST

    Recovery
    Check field types, UUIDs, decimal strings and mutually exclusive fields.
  • SCOPE_MISMATCH

    Recovery
    Use the App and environment bound to the credential.

Related:All request and error conventions·Back to endpoint index