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.credits.consumption.consume({
amount: 1,
currencyId: 'currencyId',
customerId: 'customerId',
idempotencyKey: '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.credits.consumption.consume(
amount=1,
currency_id="currencyId",
customer_id="customerId",
idempotency_key="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.Credits.Consumption.Consume(context.TODO(), stigg.V1CreditConsumptionConsumeParams{
Amount: 1,
CurrencyID: "currencyId",
CustomerID: "customerId",
IdempotencyKey: "x",
})
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.credits.consumption.ConsumptionConsumeParams;
import io.stigg.models.v1.credits.consumption.ConsumptionConsumeResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
ConsumptionConsumeParams params = ConsumptionConsumeParams.builder()
.amount(1.0)
.currencyId("currencyId")
.customerId("customerId")
.idempotencyKey("x")
.build();
ConsumptionConsumeResponse response = client.v1().credits().consumption().consume(params);
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.credits.consumption.consume(
amount: 1,
currency_id: "currencyId",
customer_id: "customerId",
idempotency_key: "x"
)
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Credits.Consumption;
StiggClient client = new();
ConsumptionConsumeParams parameters = new()
{
Amount = 1,
CurrencyID = "currencyId",
CustomerID = "customerId",
IdempotencyKey = "x",
};
var response = await client.V1.Credits.Consumption.Consume(parameters);
Console.WriteLine(response);stigg v1:credits:consumption consume \
--api-key 'My API Key' \
--amount 1 \
--currency-id currencyId \
--customer-id customerId \
--idempotency-key xcurl --request POST \
--url https://api.stigg.io/api/v1/credits/consumption \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"customerId": "<string>",
"currencyId": "<string>",
"amount": 1,
"idempotencyKey": "<string>",
"resourceId": "<string>",
"dimensions": {},
"createdAt": "2023-11-07T05:31:56Z"
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/credits/consumption",
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([
'customerId' => '<string>',
'currencyId' => '<string>',
'amount' => 1,
'idempotencyKey' => '<string>',
'resourceId' => '<string>',
'dimensions' => [
],
'createdAt' => '2023-11-07T05:31:56Z'
]),
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": {
"customerId": "customer-123",
"currencyId": "credits",
"resourceId": null,
"amount": 10,
"timestamp": "2024-01-01T00:00:00.000Z",
"credit": {
"currencyId": "credits",
"currentUsage": 10,
"usageLimit": 1000,
"timestamp": "2024-01-01T00:00:00.000Z",
"usagePeriodEnd": null
}
}
}{
"message": "<string>",
"code": "BadUserInput",
"reason": "<string>"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>",
"code": "IdentityForbidden"
}{
"message": "<string>",
"code": "CustomerNotFound"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Consume credits
Consumes a specified amount of credits directly from a customer wallet, with no feature mapping. Returns the optimistic balance.
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.credits.consumption.consume({
amount: 1,
currencyId: 'currencyId',
customerId: 'customerId',
idempotencyKey: '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.credits.consumption.consume(
amount=1,
currency_id="currencyId",
customer_id="customerId",
idempotency_key="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.Credits.Consumption.Consume(context.TODO(), stigg.V1CreditConsumptionConsumeParams{
Amount: 1,
CurrencyID: "currencyId",
CustomerID: "customerId",
IdempotencyKey: "x",
})
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.credits.consumption.ConsumptionConsumeParams;
import io.stigg.models.v1.credits.consumption.ConsumptionConsumeResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
ConsumptionConsumeParams params = ConsumptionConsumeParams.builder()
.amount(1.0)
.currencyId("currencyId")
.customerId("customerId")
.idempotencyKey("x")
.build();
ConsumptionConsumeResponse response = client.v1().credits().consumption().consume(params);
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.credits.consumption.consume(
amount: 1,
currency_id: "currencyId",
customer_id: "customerId",
idempotency_key: "x"
)
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Credits.Consumption;
StiggClient client = new();
ConsumptionConsumeParams parameters = new()
{
Amount = 1,
CurrencyID = "currencyId",
CustomerID = "customerId",
IdempotencyKey = "x",
};
var response = await client.V1.Credits.Consumption.Consume(parameters);
Console.WriteLine(response);stigg v1:credits:consumption consume \
--api-key 'My API Key' \
--amount 1 \
--currency-id currencyId \
--customer-id customerId \
--idempotency-key xcurl --request POST \
--url https://api.stigg.io/api/v1/credits/consumption \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"customerId": "<string>",
"currencyId": "<string>",
"amount": 1,
"idempotencyKey": "<string>",
"resourceId": "<string>",
"dimensions": {},
"createdAt": "2023-11-07T05:31:56Z"
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/credits/consumption",
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([
'customerId' => '<string>',
'currencyId' => '<string>',
'amount' => 1,
'idempotencyKey' => '<string>',
'resourceId' => '<string>',
'dimensions' => [
],
'createdAt' => '2023-11-07T05:31:56Z'
]),
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": {
"customerId": "customer-123",
"currencyId": "credits",
"resourceId": null,
"amount": 10,
"timestamp": "2024-01-01T00:00:00.000Z",
"credit": {
"currencyId": "credits",
"currentUsage": 10,
"usageLimit": 1000,
"timestamp": "2024-01-01T00:00:00.000Z",
"usagePeriodEnd": null
}
}
}{
"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
Request body for consuming credits directly from a wallet
The customer to consume credits from (required)
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.@-]*$The credit currency to consume from (required)
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.-]*$The amount of credits to consume
x > 0A unique key used to deduplicate the consumption (required)
1 - 255Optional resource the consumption is attributed to
1 - 255^[a-zA-Z0-9][a-zA-Z0-9_|.-]*$Optional dimensions describing the consumption
Show child attributes
Show child attributes
Optional timestamp the consumption is attributed to
Response
The result of the credit consumption, including the optimistic balance.
Response object
Result of a synchronous direct credit consumption
Show child attributes
Show child attributes