First Release: Nextcloud Bot Webhooks (Discord-like and basic Apprise)

I am not sure where I should be posting this, but I couldn’t find a widely available endpoint for bots to post to talk.

I managed to put this together: https://github.com/Mr-Newlove/nc_bot_webhooks

Looking for feedback and suggestions to how I can make it a bit more robust into the future and for anyone else looking for something similar.

Thanks :slight_smile:

sounds nice, especially the doc is outstanding - would be great other apps would do it same way :handshake:

Just for the reference it is possible to post into Talk without additional apps using curl or any other tool

Yea! Curl can easily send a message like this:

Bash examples

Text-only notification (JSON):

curl -X POST "https://<your-nextcloud-server>/apps/nc_bot_webhooks/apprise-webhook/<room-token>/notify/<auth-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 0,
    "subject": "Build Complete",
    "body": "Successfully deployed to production",
    "type": "info"
  }'

Text-only notification (form-encoded):

curl -X POST "https://<your-nextcloud-server>/apps/nc_bot_webhooks/apprise-webhook/<room-token>/notify/<auth-token>" \
  -d "subject=Build Complete" \
  -d "body=Successfully deployed to production" \
  -d "type=info"

With a remote image attachment:

curl -X POST "https://<your-nextcloud-server>/apps/nc_bot_webhooks/apprise-webhook/<room-token>/notify/<auth-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 0,
    "subject": "Camera Snapshot",
    "body": "Motion detected at front door",
    "type": "info",
    "attachments": [
      { "path": "https://nextcloud.com/c/uploads/2026/04/Nextcloud-10-anniversary-logo.png" }
    ]
  }'

The app downloads the image, uploads it to the bot user’s storage, creates a public link, and embeds it inline in the Talk message.

With a local file (multipart/form-data):

curl -X POST "https://<your-nextcloud-server>/apps/nc_bot_webhooks/apprise-webhook/<room-token>/notify/<auth-token>" \
  -F "subject=Camera Snapshot" \
  -F "body=Motion detected at front door" \
  -F "type=image" \
  -F "file01=@/path/to/snapshot.jpg"

I will add that to to the doc.

I definitely misread that in my early morning haze.

Yea this bot ends up the /ocs/v2.php/apps/spreed/api/v1/chat/{roomToken} endpoint. But I have a lot of legacy systems that expect either apprise or discord-like destinations.

I see my post was not really clear as well - I changed the wording a bit.
but it looks your app is much more powerful (or at least I never bother to find out the right json format to post “rich” format, pictures and hyperlinks)

Pictures were particularly difficult, probably 60% of the time I spent on this was to get photos from URLS or embeded data functioning.