import Stigg from '@stigg/typescript';
const client = new Stigg({
apiKey: process.env['STIGG_API_KEY'], // This is the default and can be omitted
});
const response = await client.v1.customers.checkEntitlement('x');
console.log(response.data);import os
from stigg import Stigg
client = Stigg(
api_key=os.environ.get("STIGG_API_KEY"), # This is the default and can be omitted
)
response = client.v1.customers.check_entitlement(
id="x",
)
print(response.data)package main
import (
"context"
"fmt"
"github.com/stiggio/stigg-go"
"github.com/stiggio/stigg-go/option"
)
func main() {
client := stigg.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.V1.Customers.CheckEntitlement(
context.TODO(),
"x",
stigg.V1CustomerCheckEntitlementParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package io.stigg.example;
import io.stigg.client.StiggClient;
import io.stigg.client.okhttp.StiggOkHttpClient;
import io.stigg.models.v1.customers.CustomerCheckEntitlementParams;
import io.stigg.models.v1.customers.CustomerCheckEntitlementResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
CustomerCheckEntitlementResponse response = client.v1().customers().checkEntitlement("x");
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.customers.check_entitlement("x")
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Customers;
StiggClient client = new();
CustomerCheckEntitlementParams parameters = new() { ID = "x" };
var response = await client.V1.Customers.CheckEntitlement(parameters);
Console.WriteLine(response);stigg v1:customers check-entitlement \
--api-key 'My API Key' \
--id xcurl --request GET \
--url https://api.stigg.io/api/v1/customers/{id}/entitlements/check \
--header 'X-API-KEY: <api-key>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/customers/{id}/entitlements/check",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"isGranted": true,
"type": "FEATURE",
"accessDeniedReason": null,
"feature": {
"id": "feature-api-calls",
"displayName": "API Calls",
"featureType": "NUMBER",
"featureStatus": "ACTIVE"
},
"usageLimit": 10000,
"hasUnlimitedUsage": false,
"resetPeriod": "MONTH",
"currentUsage": 2500
}
}{
"message": "<string>",
"code": "BadUserInput"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>",
"code": "IdentityForbidden"
}{
"message": "<string>",
"code": "CustomerNotFound"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Check entitlement
Checks a single entitlement (feature or credit) for a customer or resource. Supports requestedUsage and requestedValues to evaluate against limits or enum values. Each call reaches the Stigg API directly, so latency reflects a network round trip. For entitlement checks on a hot path (e.g. gating a request in real time), the Stigg Node Server SDK (with its built-in cache) or the Sidecar will typically respond faster and keep working through brief Stigg outages; reach for this endpoint when a live HTTP call is the natural fit, such as from a non-Node backend or a server-side job.
import Stigg from '@stigg/typescript';
const client = new Stigg({
apiKey: process.env['STIGG_API_KEY'], // This is the default and can be omitted
});
const response = await client.v1.customers.checkEntitlement('x');
console.log(response.data);import os
from stigg import Stigg
client = Stigg(
api_key=os.environ.get("STIGG_API_KEY"), # This is the default and can be omitted
)
response = client.v1.customers.check_entitlement(
id="x",
)
print(response.data)package main
import (
"context"
"fmt"
"github.com/stiggio/stigg-go"
"github.com/stiggio/stigg-go/option"
)
func main() {
client := stigg.NewClient(
option.WithAPIKey("My API Key"),
)
response, err := client.V1.Customers.CheckEntitlement(
context.TODO(),
"x",
stigg.V1CustomerCheckEntitlementParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Data)
}
package io.stigg.example;
import io.stigg.client.StiggClient;
import io.stigg.client.okhttp.StiggOkHttpClient;
import io.stigg.models.v1.customers.CustomerCheckEntitlementParams;
import io.stigg.models.v1.customers.CustomerCheckEntitlementResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
CustomerCheckEntitlementResponse response = client.v1().customers().checkEntitlement("x");
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.customers.check_entitlement("x")
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Customers;
StiggClient client = new();
CustomerCheckEntitlementParams parameters = new() { ID = "x" };
var response = await client.V1.Customers.CheckEntitlement(parameters);
Console.WriteLine(response);stigg v1:customers check-entitlement \
--api-key 'My API Key' \
--id xcurl --request GET \
--url https://api.stigg.io/api/v1/customers/{id}/entitlements/check \
--header 'X-API-KEY: <api-key>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/customers/{id}/entitlements/check",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"isGranted": true,
"type": "FEATURE",
"accessDeniedReason": null,
"feature": {
"id": "feature-api-calls",
"displayName": "API Calls",
"featureType": "NUMBER",
"featureStatus": "ACTIVE"
},
"usageLimit": 10000,
"hasUnlimitedUsage": false,
"resetPeriod": "MONTH",
"currentUsage": 2500
}
}{
"message": "<string>",
"code": "BadUserInput"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>",
"code": "IdentityForbidden"
}{
"message": "<string>",
"code": "CustomerNotFound"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Authorizations
Server API Key
Headers
Account ID — optional when authenticating with a user JWT (Bearer token); falls back to the user's first membership. Ignored for API-key auth.
Environment ID — required when authenticating with a user JWT (Bearer token) on environment-scoped endpoints. Ignored for API-key auth (env is intrinsic to the key).
Path Parameters
The unique identifier of the entity
1 - 255Query Parameters
Feature ID (refId) to check. Mutually exclusive with currencyId.
1 - 255Currency ID (refId) to check for credit entitlements. Mutually exclusive with featureId.
1 - 255Resource ID to scope the entitlement check to a specific resource
1 - 255Requested usage amount to evaluate against the entitlement limit (numeric features only)
x >= 0Requested values to evaluate against allowed values (enum features only)
Response
The single entitlement (feature or credit) for the requested customer, including granted status and any access denied reason.
Response object
- Option 1
- Option 2
Show child attributes
Show child attributes
