Skip to content
SoundSyncAudio software platform

Guide

HISE Package Management API

Generate HISEScript or native HISE C++ packages, inspect product setup, and retrieve a separate storefront package through private download links.

Account authentication, not a plugin credential

Use an authenticated developer Bearer session and the positive integer product ID from your product dashboard. These management calls are not activation or validation calls. Product-scoped keys shipped in plugins cannot manage package generation. Workspace permissions and product assignments are checked on every product route.

SoundSync

Product package operations

GET /api/developer/products/:productId/hise-package/status

Inspect credential and package readiness

Auth
Account Bearer JWT
Scope
products.view and access to the product.
Returns
credentialStatus, status, packageReady, lastGeneratedAt, lastPluginConnectionAt, and supportedModes.
Notes
This status path can ensure a missing product credential; it is not a pure health probe. Readiness is not proof that an exported plugin was runtime-tested. credentialStatus is a structured status object, not a string or full secret. This compatible status handler can ensure product package credentials; it is not a zero-write health check. Package-ready metadata is not a new HISE runtime attestation.
Request, response and error reference

No request body fields are read by this operation.

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "credentialStatus": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        },
        "ready": {
          "type": "boolean"
        },
        "isActive": {
          "type": "boolean"
        },
        "appId": {
          "type": [
            "string",
            "null"
          ]
        },
        "productKeyPreview": {
          "type": [
            "string",
            "null"
          ]
        },
        "created": {
          "type": "boolean"
        },
        "skipped": {
          "type": "boolean"
        }
      },
      "additionalProperties": true
    },
    "status": {
      "type": "string"
    },
    "packageReady": {
      "type": "boolean"
    },
    "lastGeneratedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "lastPluginConnectionAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "supportedModes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": true
}

Documented failures: 400, 401, 403, 404, 500, 503.

GET /api/developer/products/:productId/hise-package

Generate or retrieve the chosen product package

Auth
Account Bearer JWT
Scope
product_files.view and access to the product.
Request fields
  • query variant: value
  • query experienceMode: value
  • query uiWidth: integer
  • query uiHeight: integer
  • query releaseChannel: value
Returns
200 JSON { url, filename, expiresIn: 300 }, not ZIP bytes.
Notes
Can provision/recover the product credential, prepare private storage, and record package activity. Do not use as an unattended polling request.
Request, response and error reference

Query and header parameters

[
  {
    "name": "variant",
    "in": "query",
    "required": false,
    "schema": {
      "enum": [
        "hisescript",
        "native"
      ]
    }
  },
  {
    "name": "experienceMode",
    "in": "query",
    "required": false,
    "schema": {
      "enum": [
        "validation-only",
        "storefront-only",
        "storefront-validation"
      ]
    }
  },
  {
    "name": "uiWidth",
    "in": "query",
    "required": false,
    "schema": {
      "type": "integer",
      "minimum": 1
    }
  },
  {
    "name": "uiHeight",
    "in": "query",
    "required": false,
    "schema": {
      "type": "integer",
      "minimum": 1
    }
  },
  {
    "name": "releaseChannel",
    "in": "query",
    "required": false,
    "schema": {
      "const": "stable"
    }
  }
]

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "filename": {
      "type": "string"
    },
    "expiresIn": {
      "const": 300
    }
  },
  "required": [
    "url",
    "filename",
    "expiresIn"
  ],
  "additionalProperties": true
}

Documented failures: 503.

POST /api/developer/products/:productId/hise-package/generate

Generate a package from current saved settings

Auth
Account Bearer JWT
Scope
product_files.manage and access to the product.
Request fields
  • variant: hisescript | native
  • experienceMode: validation-only | storefront-only | storefront-validation
  • uiWidth: integer
  • uiHeight: integer
  • releaseChannel: "stable"
Returns
200 JSON { url, filename, expiresIn: 300 }.
Notes
Same package response as download; generating a package does not publish or rebuild the plugin.
Request, response and error reference

Request (application/json)

{
  "type": "object",
  "properties": {
    "variant": {
      "enum": [
        "hisescript",
        "native"
      ]
    },
    "experienceMode": {
      "enum": [
        "validation-only",
        "storefront-only",
        "storefront-validation"
      ]
    },
    "uiWidth": {
      "type": "integer",
      "minimum": 1
    },
    "uiHeight": {
      "type": "integer",
      "minimum": 1
    },
    "releaseChannel": {
      "const": "stable"
    }
  },
  "additionalProperties": true
}

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "filename": {
      "type": "string"
    },
    "expiresIn": {
      "const": 300
    }
  },
  "required": [
    "url",
    "filename",
    "expiresIn"
  ],
  "additionalProperties": true
}

Documented failures: 503.

POST /api/developer/products/:productId/hise-package/regenerate

Regenerate with credential rotation

Auth
Account Bearer JWT
Scope
product_files.manage and access to the product.
Request fields
  • variant: hisescript | native
  • experienceMode: validation-only | storefront-only | storefront-validation
  • uiWidth: integer
  • uiHeight: integer
  • releaseChannel: "stable"
Returns
200 JSON { url, filename, expiresIn: 300 }.
Notes
Rotates the product credential. Coordinate existing installed clients before calling; this is not the way to refresh an expired download URL.
Request, response and error reference

Request (application/json)

{
  "type": "object",
  "properties": {
    "variant": {
      "enum": [
        "hisescript",
        "native"
      ]
    },
    "experienceMode": {
      "enum": [
        "validation-only",
        "storefront-only",
        "storefront-validation"
      ]
    },
    "uiWidth": {
      "type": "integer",
      "minimum": 1
    },
    "uiHeight": {
      "type": "integer",
      "minimum": 1
    },
    "releaseChannel": {
      "const": "stable"
    }
  },
  "additionalProperties": true
}

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "filename": {
      "type": "string"
    },
    "expiresIn": {
      "const": 300
    }
  },
  "required": [
    "url",
    "filename",
    "expiresIn"
  ],
  "additionalProperties": true
}

Documented failures: 503.

SoundSync

Separate storefront package

GET /api/developer/storefront/hise-package

Generate the developer storefront WebView package

Auth
Account Bearer JWT
Scope
storefront.manage and all-products workspace scope.
Request fields
  • query uiWidth: integer
  • query uiHeight: integer
Returns
200 JSON { url, filename, expiresIn: 300 }.
Notes
A separate store/account integration, not the product licensing package or a hosted/embedded web storefront installation.
Request, response and error reference

Query and header parameters

[
  {
    "name": "uiWidth",
    "in": "query",
    "required": false,
    "schema": {
      "type": "integer",
      "minimum": 1
    }
  },
  {
    "name": "uiHeight",
    "in": "query",
    "required": false,
    "schema": {
      "type": "integer",
      "minimum": 1
    }
  }
]

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "filename": {
      "type": "string"
    },
    "expiresIn": {
      "const": 300
    }
  },
  "required": [
    "url",
    "filename",
    "expiresIn"
  ],
  "additionalProperties": true
}

Documented failures: 503.

SoundSync

Choose the package deliberately

ValueIntegration
hisescriptGenerated script integration without rebuilding HISE. Uses its own script-level validation and offline-grace contract.
nativeNative HISE C++ authority. Install native sources, patch/rebuild HISE, then patch/build the exported plugin. Follow the generated platform instructions.

SoundSync

Generate a HISEScript package

Generate a HISEScript package
# Set PRODUCT_ID to your saved positive integer product ID.
curl --fail-with-body -sS -X POST "$SOUNDSYNC_API_BASE/api/developer/products/$PRODUCT_ID/hise-package/generate" \
  -H "Authorization: Bearer $DEVELOPER_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"variant":"hisescript","experienceMode":"storefront-validation","releaseChannel":"stable"}'

Retrieve and protect the archive

Read the returned JSON and download from its url within expiresIn seconds. The link grants temporary access: do not publish it, put it in issue reports, or include it in public screenshots. Request a normal download again if the link expires; do not rotate credentials just to obtain another link. Generated files are product-specific. Keep your own DSP/interface changes separate and compare package-owned files before replacing them.

SoundSync

Failure and recovery

ResultAction
400Check product configuration, package inputs, and any returned field.
401 / 403 / 404Check the developer session, product ownership/assignment, workspace scope, permission, and package-channel access.
409 / rotationRequiredRead the credential recovery details and coordinate a deliberate rotation; do not automatically rotate a live product.
429 PACKAGE_BUILD_BUSYA bounded build slot is busy. Wait and retry the same normal generation request.
503 PRIVATE_PACKAGE_STORAGE_REQUIREDPrivate package storage is unavailable; contact support. No public-archive fallback is implied.
5xxPreserve the safe error code and inspect the product state before retrying; never publish secrets or signed URLs.

Example evidence

The request and response fields above are source-backed contracts. The numeric identifier examples are illustrative, not permission to access another product. Runtime validation still belongs to the exact HISE build and exported plugin you intend to distribute.