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

GET
/api/open/v1/bots

List every bot user (not paginated)

GET
/api/open/v1/bots/{id}

Get a single bot user

POST
/api/open/v1/bots

Create a bot user

PUT
/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" }'
FieldTypeNotes
namestringRequired. The bot's display name. Max 255 characters.
avatar_urlstring or nullOptional. 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"
  }
}