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.usage.estimate({
customerId: 'customerId',
featureId: 'featureId',
value: -9007199254740991,
});
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.usage.estimate(
customer_id="customerId",
feature_id="featureId",
value=-9007199254740991,
)
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.Usage.Estimate(context.TODO(), stigg.V1UsageEstimateParams{
CustomerID: "customerId",
FeatureID: "featureId",
Value: -9007199254740991,
})
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.usage.UsageEstimateParams;
import io.stigg.models.v1.usage.UsageEstimateResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
UsageEstimateParams params = UsageEstimateParams.builder()
.customerId("customerId")
.featureId("featureId")
.value(-9007199254740991L)
.build();
UsageEstimateResponse response = client.v1().usage().estimate(params);
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.usage.estimate(customer_id: "customerId", feature_id: "featureId", value: -9007199254740991)
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Usage;
StiggClient client = new();
UsageEstimateParams parameters = new()
{
CustomerID = "customerId",
FeatureID = "featureId",
Value = -9007199254740991,
};
var response = await client.V1.Usage.Estimate(parameters);
Console.WriteLine(response);stigg v1:usage estimate \
--api-key 'My API Key' \
--customer-id customerId \
--feature-id featureId \
--value -9007199254740991curl --request POST \
--url https://api.stigg.io/api/v1/usage/estimate \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"value": -9007199254740990,
"featureId": "<string>",
"customerId": "<string>",
"resourceId": "<string>",
"updateBehavior": "DELTA",
"dimensions": {}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/usage/estimate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'value' => -9007199254740990,
'featureId' => '<string>',
'customerId' => '<string>',
'resourceId' => '<string>',
'updateBehavior' => 'DELTA',
'dimensions' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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": {
"estimates": [
{
"currencyId": "<string>",
"estimatedCost": 123,
"currentBalance": 123,
"balanceAfterEstimate": 123,
"wouldOverdraft": true,
"breakdown": [
{
"featureId": "<string>",
"cost": 123,
"warningCode": "UNSUPPORTED_AGGREGATION"
}
]
}
],
"warnings": [
"RESOURCE_SCOPED_SUBSCRIPTION_EXISTS"
]
}
}{
"message": "<string>",
"code": "BadUserInput",
"reason": "<string>"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>",
"code": "IdentityForbidden"
}{
"message": "<string>",
"code": "CustomerNotFound"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Estimate usage credit cost
Estimates the credit cost of a usage report without recording it. Returns the estimated cost per credit currency, the current balance, and the balance after the estimated consumption.
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.usage.estimate({
customerId: 'customerId',
featureId: 'featureId',
value: -9007199254740991,
});
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.usage.estimate(
customer_id="customerId",
feature_id="featureId",
value=-9007199254740991,
)
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.Usage.Estimate(context.TODO(), stigg.V1UsageEstimateParams{
CustomerID: "customerId",
FeatureID: "featureId",
Value: -9007199254740991,
})
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.usage.UsageEstimateParams;
import io.stigg.models.v1.usage.UsageEstimateResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
UsageEstimateParams params = UsageEstimateParams.builder()
.customerId("customerId")
.featureId("featureId")
.value(-9007199254740991L)
.build();
UsageEstimateResponse response = client.v1().usage().estimate(params);
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.usage.estimate(customer_id: "customerId", feature_id: "featureId", value: -9007199254740991)
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Usage;
StiggClient client = new();
UsageEstimateParams parameters = new()
{
CustomerID = "customerId",
FeatureID = "featureId",
Value = -9007199254740991,
};
var response = await client.V1.Usage.Estimate(parameters);
Console.WriteLine(response);stigg v1:usage estimate \
--api-key 'My API Key' \
--customer-id customerId \
--feature-id featureId \
--value -9007199254740991curl --request POST \
--url https://api.stigg.io/api/v1/usage/estimate \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"value": -9007199254740990,
"featureId": "<string>",
"customerId": "<string>",
"resourceId": "<string>",
"updateBehavior": "DELTA",
"dimensions": {}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/usage/estimate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'value' => -9007199254740990,
'featureId' => '<string>',
'customerId' => '<string>',
'resourceId' => '<string>',
'updateBehavior' => 'DELTA',
'dimensions' => [
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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": {
"estimates": [
{
"currencyId": "<string>",
"estimatedCost": 123,
"currentBalance": 123,
"balanceAfterEstimate": 123,
"wouldOverdraft": true,
"breakdown": [
{
"featureId": "<string>",
"cost": 123,
"warningCode": "UNSUPPORTED_AGGREGATION"
}
]
}
],
"warnings": [
"RESOURCE_SCOPED_SUBSCRIPTION_EXISTS"
]
}
}{
"message": "<string>",
"code": "BadUserInput",
"reason": "<string>"
}{
"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).
Body
Estimate the credit cost of a usage report before reporting it
The value to report for usage. Must be a whole number — the REST API does not accept fractional (float) usage values; scale up (e.g. report cents instead of dollars, or milliseconds instead of seconds) if you need sub-unit precision.
x >= -9007199254740991Feature id
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.-]*$Customer id
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.@-]*$The customer resource this usage applies to. Optional — only required if the customer has multiple resources (for example, one subscription per workspace or site) and usage needs to be tracked separately per resource; omit it to report usage at the customer level.
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.-]*$How the reported value is applied: DELTA (default) adds it to the feature's current usage; SET treats it as the new absolute usage total, and Stigg computes the delta internally.
DELTA, SET Additional dimensions for the usage report
Show child attributes
Show child attributes
Response
The credit cost estimation, including per-currency costs, balances, and warnings.
Response object
Estimated credit cost, current balance and balance after
Show child attributes
Show child attributes
