API reference group
Branding and Customer Library APIs
Product branding and proof-scoped customer access have different authorization requirements.
SoundSync
Supported route areas
/api/license/branding
Product-scoped branding; no serial is required for the branding lookup
- Auth
- x-ss-app-id + x-ss-plugin-key + x-ss-plugin-secret OR x-ss-app-id + x-ss-product-id + x-soundsync-public-client (matching generated native client)
- Scope
- The operation-specific account, workspace, product and ownership checks apply.
- Returns
- HTTP 200: ok, branding.
- Notes
- Returns supported product/developer branding under product authentication. Branding is not proof of customer ownership or audio authorization.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"branding": {
"type": [
"object",
"null"
],
"properties": {
"storeName": {
"type": "string"
},
"developerDisplayName": {
"type": "string"
},
"tagline": {
"type": "string"
},
"slug": {
"type": "string"
},
"shortDescription": {
"type": "string"
},
"marketplaceBio": {
"type": "string"
},
"logos": {
"type": "object",
"properties": {
"logoUrl": {
"type": "string"
},
"lightLogoUrl": {
"type": "string"
},
"darkLogoUrl": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"defaultProductImageUrl": {
"type": "string"
}
},
"additionalProperties": true
},
"colors": {
"type": "object",
"properties": {
"appearance": {
"type": "string",
"enum": [
"light",
"dark",
"system"
]
},
"backgroundColor": {
"type": "string"
},
"brandHighlightColor": {
"type": "string"
},
"accentColor": {
"type": "string"
},
"advancedOverrides": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"support": {
"type": "object",
"properties": {
"supportEmail": {
"type": "string"
},
"supportUrl": {
"type": "string"
},
"documentationUrl": {
"type": "string"
},
"faqUrl": {
"type": "string"
},
"refundPolicyUrl": {
"type": "string"
},
"termsUrl": {
"type": "string"
},
"licenseUrl": {
"type": "string"
}
},
"additionalProperties": true
},
"emailIdentity": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"socialLinks": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"domains": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/license/branding
Product-scoped branding; no serial is required for the branding lookup
- Auth
- x-ss-app-id + x-ss-plugin-key + x-ss-plugin-secret OR x-ss-app-id + x-ss-product-id + x-soundsync-public-client (matching generated native client)
- Scope
- The operation-specific account, workspace, product and ownership checks apply.
- Returns
- HTTP 200: ok, branding.
- Notes
- Returns supported product/developer branding under product authentication. Branding is not proof of customer ownership or audio authorization.
Request, response and error reference
No request body fields are read by this operation.
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"branding": {
"type": [
"object",
"null"
],
"properties": {
"storeName": {
"type": "string"
},
"developerDisplayName": {
"type": "string"
},
"tagline": {
"type": "string"
},
"slug": {
"type": "string"
},
"shortDescription": {
"type": "string"
},
"marketplaceBio": {
"type": "string"
},
"logos": {
"type": "object",
"properties": {
"logoUrl": {
"type": "string"
},
"lightLogoUrl": {
"type": "string"
},
"darkLogoUrl": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"defaultProductImageUrl": {
"type": "string"
}
},
"additionalProperties": true
},
"colors": {
"type": "object",
"properties": {
"appearance": {
"type": "string",
"enum": [
"light",
"dark",
"system"
]
},
"backgroundColor": {
"type": "string"
},
"brandHighlightColor": {
"type": "string"
},
"accentColor": {
"type": "string"
},
"advancedOverrides": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
},
"support": {
"type": "object",
"properties": {
"supportEmail": {
"type": "string"
},
"supportUrl": {
"type": "string"
},
"documentationUrl": {
"type": "string"
},
"faqUrl": {
"type": "string"
},
"refundPolicyUrl": {
"type": "string"
},
"termsUrl": {
"type": "string"
},
"licenseUrl": {
"type": "string"
}
},
"additionalProperties": true
},
"emailIdentity": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"socialLinks": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"domains": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
},
"metadata": {
"type": "object",
"additionalProperties": true,
"description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
Documented failures: 400, 500.
/api/license/v1/library-token
Issue the supported customer-library token using authorized customer/machine/session proof
- Auth
- x-ss-app-id + x-ss-plugin-key + x-ss-plugin-secret OR x-ss-app-id + x-ss-product-id + x-soundsync-public-client (matching generated native client)
- Scope
- Customer/library session scope.
- Request fields
- query instance_id: string
- query validation_token: string
- query plugin_session_id: string
- Returns
- HTTP 200: ok, token, library_token, expiresIn.
Request, response and error reference
Query and header parameters
[
{
"name": "instance_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "validation_token",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "plugin_session_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
]
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"token": {
"type": "string"
},
"library_token": {
"type": "string"
},
"expiresIn": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 500.
/api/license/v1/library-token
Issue the supported customer-library token using authorized customer/machine/session proof
- Auth
- x-ss-app-id + x-ss-plugin-key + x-ss-plugin-secret OR x-ss-app-id + x-ss-product-id + x-soundsync-public-client (matching generated native client)
- Scope
- Customer/library session scope.
- Request fields
- instance_id: string
- machine_id: string
- product_id: integer
- plugin_version: string
- version: string
- license_key: string
- serial: string
- email: string
- validation_token: string
- token: string
- activationId: value
- licenseReference: string
- plugin_session_id: string
- key: string
- Returns
- HTTP 200: ok, token, library_token, expiresIn.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"instance_id": {
"type": "string"
},
"machine_id": {
"type": "string"
},
"product_id": {
"type": "integer",
"minimum": 1
},
"plugin_version": {
"type": "string"
},
"version": {
"type": "string"
},
"license_key": {
"type": "string"
},
"serial": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"validation_token": {
"type": "string"
},
"token": {
"type": "string"
},
"activationId": {
"oneOf": [
{
"type": "integer",
"minimum": 1
},
{
"type": "string",
"pattern": "^[1-9][0-9]*$"
}
]
},
"licenseReference": {
"type": "string"
},
"plugin_session_id": {
"type": "string"
},
"key": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"token": {
"type": "string"
},
"library_token": {
"type": "string"
},
"expiresIn": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 500.
/api/license/v1/webview-library
Resolve supported customer-library/WebView access for the authorized context
- Auth
- x-ss-app-id + x-ss-plugin-key + x-ss-plugin-secret OR x-ss-app-id + x-ss-product-id + x-soundsync-public-client (matching generated native client)
- Scope
- Customer library and product/storefront scope.
- Request fields
- query instance_id: string
- query validation_token: string
- query plugin_session_id: string
- Returns
- HTTP 200: ok, status, libraryToken, library_token, download_token, expiresIn, products, subscriptions.
Request, response and error reference
Query and header parameters
[
{
"name": "instance_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "validation_token",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "plugin_session_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
]
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"status": {
"type": "string"
},
"libraryToken": {
"type": "string"
},
"library_token": {
"type": "string"
},
"download_token": {
"type": "string"
},
"expiresIn": {
"type": "integer",
"minimum": 0
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"subscriptions": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 500.
/api/license/v1/webview-library
Resolve supported customer-library/WebView access for the authorized context
- Auth
- x-ss-app-id + x-ss-plugin-key + x-ss-plugin-secret OR x-ss-app-id + x-ss-product-id + x-soundsync-public-client (matching generated native client)
- Scope
- Customer library and product/storefront scope.
- Request fields
- instance_id: string
- machine_id: string
- product_id: integer
- plugin_version: string
- version: string
- license_key: string
- serial: string
- email: string
- validation_token: string
- token: string
- activationId: value
- licenseReference: string
- plugin_session_id: string
- key: string
- Returns
- HTTP 200: ok, status, libraryToken, library_token, download_token, expiresIn, products, subscriptions.
Request, response and error reference
Request (application/json)
{
"type": "object",
"properties": {
"instance_id": {
"type": "string"
},
"machine_id": {
"type": "string"
},
"product_id": {
"type": "integer",
"minimum": 1
},
"plugin_version": {
"type": "string"
},
"version": {
"type": "string"
},
"license_key": {
"type": "string"
},
"serial": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"validation_token": {
"type": "string"
},
"token": {
"type": "string"
},
"activationId": {
"oneOf": [
{
"type": "integer",
"minimum": 1
},
{
"type": "string",
"pattern": "^[1-9][0-9]*$"
}
]
},
"licenseReference": {
"type": "string"
},
"plugin_session_id": {
"type": "string"
},
"key": {
"type": "string"
}
},
"additionalProperties": true
}
HTTP 200 response (application/json)
{
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"status": {
"type": "string"
},
"libraryToken": {
"type": "string"
},
"library_token": {
"type": "string"
},
"download_token": {
"type": "string"
},
"expiresIn": {
"type": "integer",
"minimum": 0
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"subscriptions": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
Documented failures: 400, 403, 500.
Branding is not customer access
Branding uses the supported product credential/native-client context. It does not prove customer ownership or authorize a library. Generated local configuration is a snapshot unless that runtime explicitly refreshes the relevant values.
Library token and WebView routes use supported plugin/customer/session proof and still check the relevant access context. Do not substitute an arbitrary serial, customer ID, or developer session token to browse another customer's library.
Session and audio state differ
A customer portal session can expire independently of machine licensing. Refresh the supported browsing session without calling it a device deactivation. Keep returned tokens private and out of public screenshots.
Use the detailed customer-library reference for fields, responses, errors, and download permissions. The route map here does not invent a complete JSON fixture.
