Skip to main content
POST
Create a button

Authorizations

Authorization
string
header
required

A Contact Button scoped bearer key. Send Authorization: Bearer <token>. Token abilities are enforced independently of workspace membership; both checks must pass. OAuth 2.0 authorization-code flows are not currently available.

Path Parameters

workspace
string<uuid>
required

Body

application/json
title
string
required
texts
object
display_option
enum<string>
Available options:
columns,
rows,
stacked_buttons,
icons_only,
single_app
position
enum<string>
Available options:
bottom_right,
bottom_left,
top_right,
top_left
default_state
enum<string>
Available options:
text_button,
closed_circle,
button_with_text
colors
object

Launcher button and menu bar appearance. Existing buttons default to solid, fully opaque colors.

panel
object

Optional panel styling and owner-configured Messenger shell. A null layout preserves saved tabs while the legacy panel remains active.

backgrounds
object
desktop
boolean
tablet
boolean

Visible from 768px through 1023px. Defaults to mobile for legacy payloads.

mobile
boolean
visibility
object

Viewport visibility using mobile below 768px, tablet from 768px through 1023px, and desktop at 1024px or wider.

status
boolean
launcher
object

Versioned launcher appearance. Legacy buttons are projected into this shape without opting into the new renderer.

app_ids
string<uuid>[]

Unique app IDs in flat order. Supplying this without navigation creates a flat root menu.

navigation
object

Authoritative button-local tree. When app_ids is also supplied, the unique app sets must match. The configured safety cap applies to the total number of nodes across all levels.

page_ids
string<uuid>[]

Response

201 - application/json

Successful data envelope.

data
any
required
meta
object
required