Bots
Bot users are non-human senders. Create a bot once, then reference it as the sender when sending a direct message, as the author when creating a wall post, or when creating an incoming webhook. A bot appears in chat and on the wall with its own name and avatar, making it clear the content came from an integration rather than a person.
Required scope: read:bots, write:bots
Endpoints
/api/open/v1/botsList every bot user (not paginated)
/api/open/v1/bots/{id}Get a single bot user
/api/open/v1/botsCreate a bot user
/api/open/v1/bots/{id}Update a bot user (name, avatar_url; PATCH works the same)
List
GET /bots returns every bot user in one response, oldest first (by id), in the shape of the response below inside a data array. Not paginated: page and per_page are ignored and there are no links or meta. The list includes the bots the CMS created for incoming webhooks.
Create
curl -X POST https://customer.monotree.com/api/open/v1/bots \
-H "Authorization: Bearer mono_your_token_here" \
-H "Content-Type: application/json" \
-d '{ "name": "Notification Bot", "avatar_url": "https://example.com/bot.png" }'| Field | Type | Notes |
|---|---|---|
name | string | Required. The bot's display name. Max 255 characters. |
avatar_url | string or null | Optional. A public image URL, max 2,048 characters. Defaults to the customer app icon. |
Returns 201 with the bot.
Update
PUT and PATCH take the same fields, both optional; only what you send is changed. "avatar_url": null puts the customer app icon back. An id that is not a bot returns 404. Bots can't be deleted through the API.
Response
{
"data": {
"id": 873,
"name": "Notification Bot",
"avatar_url": "https://example.com/bot.png",
"created_at": "2026-06-13T10:00:00+02:00"
}
}