import Stigg from '@stigg/typescript';
const client = new Stigg({
apiKey: process.env['STIGG_API_KEY'], // This is the default and can be omitted
});
const addon = await client.v1.addons.update('x');
console.log(addon.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
)
addon = client.v1.addons.update(
id="x",
)
print(addon.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"),
)
addon, err := client.V1.Addons.Update(
context.TODO(),
"x",
stigg.V1AddonUpdateParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", addon.Data)
}
package io.stigg.example;
import io.stigg.client.StiggClient;
import io.stigg.client.okhttp.StiggOkHttpClient;
import io.stigg.models.v1.addons.Addon;
import io.stigg.models.v1.addons.AddonUpdateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
Addon addon = client.v1().addons().update("x");
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
addon = stigg.v1.addons.update("x")
puts(addon)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Addons;
StiggClient client = new();
AddonUpdateParams parameters = new() { ID = "x" };
var addon = await client.V1.Addons.Update(parameters);
Console.WriteLine(addon);stigg v1:addons update \
--api-key 'My API Key' \
--id xcurl --request PATCH \
--url https://api.stigg.io/api/v1/addons/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"displayName": "<string>",
"description": "<string>",
"billingId": "<string>",
"metadata": {},
"maxQuantity": 1,
"dependencies": [
"<string>"
]
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/addons/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'displayName' => '<string>',
'description' => '<string>',
'billingId' => '<string>',
'metadata' => [
],
'maxQuantity' => 1,
'dependencies' => [
'<string>'
]
]),
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": {
"id": "addon-extra-seats",
"displayName": "Extra Seats",
"description": "Additional team member seats",
"productId": "product-starter",
"status": "PUBLISHED",
"pricingType": "PAID",
"billingId": "price_1234567890",
"versionNumber": 1,
"isLatest": true,
"entitlements": [
{
"type": "FEATURE",
"id": "feature-advanced-analytics"
},
{
"type": "CREDIT",
"id": "api-calls"
}
],
"metadata": {},
"createdAt": "2025-10-26T10:00:00.000Z",
"updatedAt": "2025-10-26T10:00:00.000Z",
"maxQuantity": 100,
"dependencies": [
"addon-premium-support"
]
}
}{
"message": "<string>",
"code": "BadUserInput",
"reason": "<string>"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>",
"code": "IdentityForbidden"
}{
"message": "<string>",
"code": "CustomerNotFound"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Update a addon
Updates an existing addon’s properties such as display name, description, and metadata.
import Stigg from '@stigg/typescript';
const client = new Stigg({
apiKey: process.env['STIGG_API_KEY'], // This is the default and can be omitted
});
const addon = await client.v1.addons.update('x');
console.log(addon.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
)
addon = client.v1.addons.update(
id="x",
)
print(addon.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"),
)
addon, err := client.V1.Addons.Update(
context.TODO(),
"x",
stigg.V1AddonUpdateParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", addon.Data)
}
package io.stigg.example;
import io.stigg.client.StiggClient;
import io.stigg.client.okhttp.StiggOkHttpClient;
import io.stigg.models.v1.addons.Addon;
import io.stigg.models.v1.addons.AddonUpdateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
Addon addon = client.v1().addons().update("x");
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
addon = stigg.v1.addons.update("x")
puts(addon)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Addons;
StiggClient client = new();
AddonUpdateParams parameters = new() { ID = "x" };
var addon = await client.V1.Addons.Update(parameters);
Console.WriteLine(addon);stigg v1:addons update \
--api-key 'My API Key' \
--id xcurl --request PATCH \
--url https://api.stigg.io/api/v1/addons/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"displayName": "<string>",
"description": "<string>",
"billingId": "<string>",
"metadata": {},
"maxQuantity": 1,
"dependencies": [
"<string>"
]
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/addons/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'displayName' => '<string>',
'description' => '<string>',
'billingId' => '<string>',
'metadata' => [
],
'maxQuantity' => 1,
'dependencies' => [
'<string>'
]
]),
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": {
"id": "addon-extra-seats",
"displayName": "Extra Seats",
"description": "Additional team member seats",
"productId": "product-starter",
"status": "PUBLISHED",
"pricingType": "PAID",
"billingId": "price_1234567890",
"versionNumber": 1,
"isLatest": true,
"entitlements": [
{
"type": "FEATURE",
"id": "feature-advanced-analytics"
},
{
"type": "CREDIT",
"id": "api-calls"
}
],
"metadata": {},
"createdAt": "2025-10-26T10:00:00.000Z",
"updatedAt": "2025-10-26T10:00:00.000Z",
"maxQuantity": 100,
"dependencies": [
"addon-premium-support"
]
}
}{
"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).
Path Parameters
The unique identifier of the entity
1 - 255Body
Partially update an existing addon. Only provided fields are updated; omitted fields keep their current value.
The display name of the package
255The description of the package
255The unique identifier for the entity in the billing provider
255Metadata associated with the entity
Show child attributes
Show child attributes
The status of the package
DRAFT, PUBLISHED, ARCHIVED The maximum quantity of this addon that can be added to a subscription. Leave unset for no upper bound.
x > 0List of addons the addon is dependant on
The unique identifier for the entity
255Pricing configuration to set on the addon draft. Unlike the rest of this request, this is a full replace of the pricing configuration, not a merge — see SetPackagePricingRequest.
Show child attributes
Show child attributes
Response
The updated addon object.
Response object
Addon configuration object
Show child attributes
Show child attributes
Related topics
Update a addon entitlementScheduled updatesControlling the add-on visibilityPublish addonArchive an addon