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.addons.publish('x', { migrationType: 'NEW_CUSTOMERS' });
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.addons.publish(
id="x",
migration_type="NEW_CUSTOMERS",
)
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.Addons.Publish(
context.TODO(),
"x",
stigg.V1AddonPublishParams{
MigrationType: stigg.V1AddonPublishParamsMigrationTypeNewCustomers,
},
)
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.addons.AddonPublishParams;
import io.stigg.models.v1.addons.AddonPublishResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
AddonPublishParams params = AddonPublishParams.builder()
.id("x")
.migrationType(AddonPublishParams.MigrationType.NEW_CUSTOMERS)
.build();
AddonPublishResponse response = client.v1().addons().publish(params);
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.addons.publish("x", migration_type: :NEW_CUSTOMERS)
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Addons;
StiggClient client = new();
AddonPublishParams parameters = new()
{
ID = "x",
MigrationType = MigrationType.NewCustomers,
};
var response = await client.V1.Addons.Publish(parameters);
Console.WriteLine(response);stigg v1:addons publish \
--api-key 'My API Key' \
--id x \
--migration-type NEW_CUSTOMERScurl --request POST \
--url https://api.stigg.io/api/v1/addons/{id}/publish \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '{}'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/addons/{id}/publish",
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([
]),
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": {
"taskId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"message": "<string>",
"code": "BadUserInput",
"reason": "<string>"
}{
"message": "<string>",
"code": "Unauthenticated"
}{
"message": "<string>",
"code": "IdentityForbidden"
}{
"message": "<string>",
"code": "CustomerNotFound"
}{
"message": "<string>",
"code": "RateLimitExceeded"
}Publish addon
Publishes a draft addon, making it available for use in subscriptions. The required migrationType field controls whether subscriptions already using this addon are moved onto the new version immediately (ALL_CUSTOMERS) or stay on the version they were using — grandfathered — until you explicitly migrate them (NEW_CUSTOMERS).
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.addons.publish('x', { migrationType: 'NEW_CUSTOMERS' });
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.addons.publish(
id="x",
migration_type="NEW_CUSTOMERS",
)
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.Addons.Publish(
context.TODO(),
"x",
stigg.V1AddonPublishParams{
MigrationType: stigg.V1AddonPublishParamsMigrationTypeNewCustomers,
},
)
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.addons.AddonPublishParams;
import io.stigg.models.v1.addons.AddonPublishResponse;
public final class Main {
private Main() {}
public static void main(String[] args) {
StiggClient client = StiggOkHttpClient.fromEnv();
AddonPublishParams params = AddonPublishParams.builder()
.id("x")
.migrationType(AddonPublishParams.MigrationType.NEW_CUSTOMERS)
.build();
AddonPublishResponse response = client.v1().addons().publish(params);
}
}require "stigg"
stigg = Stigg::Client.new(api_key: "My API Key")
response = stigg.v1.addons.publish("x", migration_type: :NEW_CUSTOMERS)
puts(response)using System;
using Stigg.Client;
using Stigg.Client.Models.V1.Addons;
StiggClient client = new();
AddonPublishParams parameters = new()
{
ID = "x",
MigrationType = MigrationType.NewCustomers,
};
var response = await client.V1.Addons.Publish(parameters);
Console.WriteLine(response);stigg v1:addons publish \
--api-key 'My API Key' \
--id x \
--migration-type NEW_CUSTOMERScurl --request POST \
--url https://api.stigg.io/api/v1/addons/{id}/publish \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '{}'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stigg.io/api/v1/addons/{id}/publish",
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([
]),
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": {
"taskId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"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
Request to publish an addon draft
Who the published version applies to: NEW_CUSTOMERS (default) leaves existing subscribers on their current version, ALL_CUSTOMERS moves them onto the new version immediately.
NEW_CUSTOMERS, ALL_CUSTOMERS Response
A task ID for tracking the async publish operation.
Response containing task ID for publish operation
Show child attributes
Show child attributes
Related topics
Grant credits as entitlements in plans and add-onsPublish planPublishing add-onsPublish contract billingEditing published add-ons