Skip to content
SoundSyncAudio software platform

API reference group

Branding and Customer Library APIs

Product branding and proof-scoped customer access have different authorization requirements.

SoundSync

Supported route areas

GET /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.

POST /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.

GET /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.

POST /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.

GET /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.

POST /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.