White Label - Save theme options

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_id of 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-label prefix.
  • company_id must 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_id only 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 sendingContent type
Theme options onlyapplication/json
Theme options and a logo filemultipart/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.

FieldTypeRequiredNotes
user_idintegerRequiredMust be an existing user. Recorded as the author of the save.
company_idintegerRequiredThe account to theme. Must be in your own hierarchy.
theme_optionsstringRequiredA JSON-encoded string, stored verbatim and returned unchanged. Note this is a string, not a nested object.
logo_imagefileOptionalJPEG 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 null where unset).
  • 422 when validation fails — for example a missing theme_options, a company_id outside 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_label object can come back with most fields empty on a first upload.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
integer
integer
string
Responses

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json