# Upload rebranding assets for a product **PUT /rebranding/{org_id}/products/{product_id}** Multipart upload of logos, favicon, background, and product name for a single product. Only the fields provided are written; the assets named in `clear` are emptied. Requires rebranding to be enabled for the organization. The configuration form of the product uses `PUT /rebranding/{org_id}/config` instead, which writes several products in one transaction. ## Servers - Backend API server: https://my.nethesis.it/backend/api (Backend API server) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **org_id** (string) Logto organization ID (logto_id, not the database UUID) - **product_id** (string) ### Body: multipart/form-data (object) - **product_name** (string) Sent empty, it clears the stored name. Omitted entirely, the stored name is left unchanged. - **clear** (string) Asset names to empty, comma-separated or repeated (e.g. `favicon,background_image`). - **logo_light_rect** (string(binary)) - **logo_dark_rect** (string(binary)) - **logo_light_square** (string(binary)) - **logo_dark_square** (string(binary)) - **favicon** (string(binary)) - **background_image** (string(binary)) ## Responses ### 200 Assets uploaded ### 400 Validation failed. `data.type` is always `validation_error`. `data.errors[]` lists per-field failures with stable `message` codes the UI consumes for i18n: `at_least_one_required` (no product selected), `unknown` (product id, asset name or organization id that does not exist), `max` (brand name longer than 100 characters). A malformed multipart body, a file over its size limit or an unsupported content type answer 400 with a plain message instead: they are not field validation, they are a request the server could not read. #### Body: application/json (object) - **code** (integer) HTTP error code - **message** (string) Error message - **data** (object) ### 403 Forbidden - insufficient permissions #### Body: application/json (object) - **code** (integer) - **message** (string) - **data** (object | null) [Powered by Bump.sh](https://bump.sh)