# Background

## Set chat background

`client.chats.background.set(stringchatID, BackgroundSetParamsbody, RequestOptionsoptions?): void`

**post** `/v3/chats/{chatId}/background`

Set the transcript background for a chat.

Provide one of: a **color** (a named preset or a custom 2-stop gradient),
a **dynamic** animated style, or a **photo** (by URL). The request is accepted
asynchronously; the terminal result arrives via the `chat.background_updated`
webhook on success, or `chat.background_update_failed` on failure.

**Group chats are supported.** Requests for RCS or SMS chats are accepted (`202`)
but no background is applied and no `chat.background_updated` webhook fires.

### Parameters

- `chatID: string`

- `body: BackgroundSetParams`

  - `type: "color" | "dynamic" | "photo"`

    The background family.

    - `"color"`

    - `"dynamic"`

    - `"photo"`

  - `image_url?: string`

    Photo: the image URL to embed in the background. Must be an absolute `https`
    URL pointing at an image (`.jpg`, `.png`, `.heic`, `.webp`), and the image is
    fetched and re-hosted on our CDN before the request is accepted — the same way
    `group_chat_icon` works. A URL we cannot fetch, or one that isn't an image, is
    rejected with a `400` (`5007`/`5006`) rather than failing later on the device.

    Example: `https://cdn.linqapp.com/u/bg.jpg`.

  - `shades?: Array<string>`

    Color with `variant: custom`: the two gradient stops as hex, top then bottom —
    e.g. `["#F2C4E1", "#F5A623"]`. Ignored for named color variants (they carry
    their own two colors).

  - `style?: "sky" | "water" | "aurora"`

    Dynamic: the animated style — `sky`, `water`, or `aurora`.

    - `"sky"`

    - `"water"`

    - `"aurora"`

  - `variant?: string`

    Color: a named swatch — `mango`, `ice`, `plum`, `deep_sea`, `green_apple`,
    `cherry`, `bubblegum`, `tangerine`, `magenta`, `lime`, `silver`, `carbon`,
    `stone` — or `custom` (supply `shades`). Omitting `variant` is equivalent to
    `custom`, so it still requires `shades`.

    Dynamic: required — the variant within the `style`. `sky`: `dusk`, `haze`,
    `sunset`, `clear`, `sunrise`, `dawn`. `water`: `light`, `dark`. `aurora`:
    `green`, `purple`, `pink`.

    An unrecognized value is rejected with `400`.

### Example

```typescript
import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

await client.chats.background.set('550e8400-e29b-41d4-a716-446655440000', {
  type: 'color',
  variant: 'mango',
});
```

#### Response

```json
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/error/codes/1xxx/1002/"
  },
  "success": false
}
```

## Remove chat background

`client.chats.background.remove(stringchatID, RequestOptionsoptions?): void`

**delete** `/v3/chats/{chatId}/background`

Remove the transcript background from a chat, resetting it to the default.

### Parameters

- `chatID: string`

### Example

```typescript
import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

await client.chats.background.remove('550e8400-e29b-41d4-a716-446655440000');
```

#### Response

```json
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/error/codes/1xxx/1002/"
  },
  "success": false
}
```
