---
title: "Create a customWebStyle"
method: POST
path: "/customWebStyles"
tags: ["customWebStyles"]
---

# Create a customWebStyle

`POST /customWebStyles`

## Request

- Base URL: `https://api.lumahealth.io/api/v2`
- URL: `https://api.lumahealth.io/api/v2/customWebStyles`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lumahealth/apis/rest-service/docs/customWebStyles/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- CustomWebStylePost
  - `uploads` object[]: Binary artifacts. Each item of the array must EITHER have the properties uploadName+fileName+extensin+fileBase64 OR uploadName+fileUpload+url. The first case requires the file data in Base64 to be uploaded. The second case requires you to only pass the fileUpload ID, a descriptive uploadName and the URL to access the fileUpload.
    - `uploadName` string, required
    - `fileName` string
    - `extension` 'jpg' | 'jpeg' | 'png' | 'gif' | 'svg' | 'heic'
    - `fileBase64` string
    - `url` string
  - `scope` unknown[], required: scope
    - unknown
  - `styles` object: styles
    - `theme` object, required

## Response `201`

Successful creation

- CustomWebStyleResponse: Represents the custom branding and visual theme a healthcare organization applies to its patient-facing web experience, including uploaded logo files and theme settings such as color palette and text styles. It lets a practice visually customize its scheduling and patient portal pages to match its brand.
  - `_id` string: Luma's internal ID of an object.
  - `user` string: The ID of the root account user.
  - `deleted` 0 | 1: Flag for logical deletion where 1 means deleted.
  - `createdBy` string: The ID of the user who created this object.
  - `updatedBy` string: The ID of the user who updated this object.
  - `createdAt` string, date-time: The date/time when this object was created.
  - `updatedAt` string, date-time: The date/time when this object was updated.
  - `description` string: customWebStyle
  - `url` string: DEPRECATED. Use uploads[i].url instead. The URL of the uploaded logo file.
  - `uploads` object[]: uploads
    - `uploadName` string, required: A friendly description of the uploaded file
    - `fileName` string: The file name in case the uploaded file gets downloaded.
    - `extension` 'jpg' | 'jpeg' | 'png' | 'gif' | 'svg' | 'heic': the file extension related to its format
    - `fileBase64` string: the binary data of the file being uploaded in Base64 format.
    - `url` string: the URL of the uploaded file.
  - `scope` unknown[]: scope
    - unknown
  - `styles` object: styles
    - `theme` object, required
  - `published` boolean: published
  - `publishedAt` string, date-time: publishedAt
  - `publishedBy` string: ID of User

## Other responses

- `401`: Not authenticated
- `403`: Access token does not have the required scope
- `default`: Unexpected error

---

[API](https://skmtc.dev/lumahealth/apis/rest-service.md) - [All operations](https://skmtc.dev/lumahealth/apis/rest-service/llms.txt) - [OpenAPI document](https://skmtc.dev/lumahealth/apis/rest-service/revisions/f19aeba84a26?raw)
