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
/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.
/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.
/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.
/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
/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
| Value | Integration |
|---|---|
| hisescript | Generated script integration without rebuilding HISE. Uses its own script-level validation and offline-grace contract. |
| native | Native 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
# 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
| Result | Action |
|---|---|
| 400 | Check product configuration, package inputs, and any returned field. |
| 401 / 403 / 404 | Check the developer session, product ownership/assignment, workspace scope, permission, and package-channel access. |
| 409 / rotationRequired | Read the credential recovery details and coordinate a deliberate rotation; do not automatically rotate a live product. |
| 429 PACKAGE_BUILD_BUSY | A bounded build slot is busy. Wait and retry the same normal generation request. |
| 503 PRIVATE_PACKAGE_STORAGE_REQUIRED | Private package storage is unavailable; contact support. No public-archive fallback is implied. |
| 5xx | Preserve 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.
SoundSync
