Skip to content
LinqCopy agent prompt

Set chat background

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.

Path ParametersExpand Collapse
chatId: string
formatuuid
Body ParametersJSONExpand Collapse
type: "color" or "dynamic" or "photo"

The background family.

One of the following:
"color"
"dynamic"
"photo"
image_url: optional 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.

formaturi
maxLength2048
shades: optional array of 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: optional "sky" or "water" or "aurora"

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

One of the following:
"sky"
"water"
"aurora"
variant: optional 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.

Set chat background

curl https://api.linqapp.com/api/partner/v3/chats/$CHAT_ID/background \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $LINQ_API_V3_API_KEY" \
    -d '{
          "type": "color",
          "variant": "mango"
        }'
{
  "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
}
{
  "error": {
    "status": 401,
    "code": 2004,
    "message": "Unauthorized - missing or invalid authentication token",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2004/"
  },
  "success": false
}
{
  "error": {
    "status": 403,
    "code": 2005,
    "message": "Access denied - insufficient permissions for this resource",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2005/"
  },
  "success": false
}
{
  "error": {
    "status": 404,
    "code": 2001,
    "message": "Resource not found",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2001/"
  },
  "success": false
}
{
  "error": {
    "status": 500,
    "code": 3006,
    "message": "Internal server error",
    "doc_url": "https://docs.linqapp.com/error/codes/3xxx/3006/"
  },
  "success": false
}
Returns Examples
{
  "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
}
{
  "error": {
    "status": 401,
    "code": 2004,
    "message": "Unauthorized - missing or invalid authentication token",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2004/"
  },
  "success": false
}
{
  "error": {
    "status": 403,
    "code": 2005,
    "message": "Access denied - insufficient permissions for this resource",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2005/"
  },
  "success": false
}
{
  "error": {
    "status": 404,
    "code": 2001,
    "message": "Resource not found",
    "doc_url": "https://docs.linqapp.com/error/codes/2xxx/2001/"
  },
  "success": false
}
{
  "error": {
    "status": 500,
    "code": 3006,
    "message": "Internal server error",
    "doc_url": "https://docs.linqapp.com/error/codes/3xxx/3006/"
  },
  "success": false
}