post
https://production-api.shoutaboutus.com/api/v1/account/white-label/theme/save
Save the theme options for one account, and optionally uploads a theme logo at the same time. Call it whenever the account changes its palette, layout or logo — it creates the theme record on first save and updates it on every save after that.
Prerequisites
- A bearer token for a Partner or Account user (see Authentication below).
- The
company_idof the account you are theming. It must sit inside your own hierarchy. - To upload a logo: a JPEG or PNG no larger than 400 KB.
Auth
- Both — authentication, under the role-agnostic
account/white-labelprefix. company_idmust sit within your own account hierarchy, so a partner can theme any account beneath it while an account user reaches only its own part of the account tree.user_idonly has to be an existing user; the platform does not hierarchy-check it. It records who saved the theme.
Rate limit
- No rate limit.
Body
Choose the content type to match what you are sending:
| You are sending | Content type |
|---|---|
| Theme options only | application/json |
| Theme options and a logo file | multipart/form-data |
Both accept the same fields. Use multipart/form-data only when you attach logo_image, because a file cannot travel in a JSON body.
| Field | Type | Required | Notes |
|---|---|---|---|
user_id | integer | Required | Must be an existing user. Recorded as the author of the save. |
company_id | integer | Required | The account to theme. Must be in your own hierarchy. |
theme_options | string | Required | A JSON-encoded string, stored verbatim and returned unchanged. Note this is a string, not a nested object. |
logo_image | file | Optional | JPEG or PNG, max 400 KB. Replaces the account's white-label logo. |
Uploading a logo
Send each field as a separate form part and let curl set the boundary — do not set Content-Type yourself:
curl --request POST \
--url "https://production-api.shoutaboutus.com/api/v1/account/white-label/theme/save" \
--header 'Authorization: Bearer <bearer-token>' \
--header 'Accept: application/json' \
--form 'user_id=3' \
--form 'company_id=5' \
--form 'theme_options={"mode":"system","primaryColor":"#f1874c"}' \
--form 'logo_image=@/path/to/logo.png'Behaviour
- 200 returns the saved theme row plus the account's white-label record, with every image field rewritten to a full URL (or
nullwhere unset). - 422 when validation fails — for example a missing
theme_options, acompany_idoutside your hierarchy, or a logo over 400 KB or in an unsupported format. - Uploading a logo also creates the account's white-label record if it does not exist yet, which is why the
white_labelobject can come back with most fields empty on a first upload.
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
