Messages
Update a message
Update a message’s body or theme. Only the sender can update their own message.
PUT
/
api
/
v1
/
messaging
/
conversations
/
{conversation_id}
/
messages
/
{id}
Update a message
curl --request PUT \
--url https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"body": "Can someone restock the Scranton Branch Mugs before the client visit at 2?"
}
}
'import requests
url = "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}"
payload = { "message": { "body": "Can someone restock the Scranton Branch Mugs before the client visit at 2?" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
body: JSON.stringify('Can someone restock the Scranton Branch Mugs before the client visit at 2?')
}
})
};
fetch('https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'message' => [
'body' => 'Can someone restock the Scranton Branch Mugs before the client visit at 2?'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}"
payload := strings.NewReader("{\n \"message\": {\n \"body\": \"Can someone restock the Scranton Branch Mugs before the client visit at 2?\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"body\": \"Can someone restock the Scranton Branch Mugs before the client visit at 2?\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"body\": \"Can someone restock the Scranton Branch Mugs before the client visit at 2?\"\n }\n}"
response = http.request(request)
puts response.read_body{
"attachments": [],
"body": "Can someone restock the Scranton Branch Mugs before the client visit at 2?",
"conversation_id": 7731,
"created_at": "2026-09-15T13:20:48Z",
"deleted_at": null,
"edited_at": "2026-09-15T13:24:02Z",
"emoji_only_count": 0,
"id": 90457,
"mentioned_recipients": [],
"metadata": {
"client_message_id": null
},
"pinned": false,
"reaction": null,
"reaction_stats": null,
"replied_to_message": null,
"seen_by": [],
"seen_by_count": 0,
"sender_recipient": {
"avatar_background": "4F46E5",
"blocked": false,
"blocker": false,
"discarded_at": null,
"first_name": "Dwight",
"id": 48217,
"image_url": "https://cdn.fluid.app/avatars/dunder-mifflin/dwight-schrute.jpg",
"last_name": "Schrute",
"pro_user": false
},
"sent_at": "2026-09-15T13:20:48Z",
"status": "sent",
"type": "DirectMessage",
"updated_at": "2026-09-15T13:24:02Z"
}{
"message": "<string>"
}Authorizations
Bearer token authentication
Body
application/json
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Any valid JSON value for provider, integration, theme, metadata, or other dynamic payloads whose keys are not fixed by the API contract.
Any valid JSON value for provider, integration, theme, metadata, or other dynamic payloads whose keys are not fixed by the API contract.
Any valid JSON value for provider, integration, theme, metadata, or other dynamic payloads whose keys are not fixed by the API contract.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
Update a message
curl --request PUT \
--url https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"body": "Can someone restock the Scranton Branch Mugs before the client visit at 2?"
}
}
'import requests
url = "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}"
payload = { "message": { "body": "Can someone restock the Scranton Branch Mugs before the client visit at 2?" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {
body: JSON.stringify('Can someone restock the Scranton Branch Mugs before the client visit at 2?')
}
})
};
fetch('https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'message' => [
'body' => 'Can someone restock the Scranton Branch Mugs before the client visit at 2?'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}"
payload := strings.NewReader("{\n \"message\": {\n \"body\": \"Can someone restock the Scranton Branch Mugs before the client visit at 2?\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"body\": \"Can someone restock the Scranton Branch Mugs before the client visit at 2?\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/messages/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"body\": \"Can someone restock the Scranton Branch Mugs before the client visit at 2?\"\n }\n}"
response = http.request(request)
puts response.read_body{
"attachments": [],
"body": "Can someone restock the Scranton Branch Mugs before the client visit at 2?",
"conversation_id": 7731,
"created_at": "2026-09-15T13:20:48Z",
"deleted_at": null,
"edited_at": "2026-09-15T13:24:02Z",
"emoji_only_count": 0,
"id": 90457,
"mentioned_recipients": [],
"metadata": {
"client_message_id": null
},
"pinned": false,
"reaction": null,
"reaction_stats": null,
"replied_to_message": null,
"seen_by": [],
"seen_by_count": 0,
"sender_recipient": {
"avatar_background": "4F46E5",
"blocked": false,
"blocker": false,
"discarded_at": null,
"first_name": "Dwight",
"id": 48217,
"image_url": "https://cdn.fluid.app/avatars/dunder-mifflin/dwight-schrute.jpg",
"last_name": "Schrute",
"pro_user": false
},
"sent_at": "2026-09-15T13:20:48Z",
"status": "sent",
"type": "DirectMessage",
"updated_at": "2026-09-15T13:24:02Z"
}{
"message": "<string>"
}