Legacy (v0)
List internal media comments
Lists internal notes on a media item, newest first. Company admins, platform admins, and tokens without a user receive the notes; reps and customers receive an empty array. Returns a plain JSON array (not paginated). Admin users, company API tokens, and partner tokens need the media view permission. Returns 404 when the media item does not belong to the company.
GET
/
api
/
media
/
{id}
/
internal_comments
List internal media comments
curl --request GET \
--url https://api.fluid.app/api/media/{id}/internal_comments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/media/{id}/internal_comments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/media/{id}/internal_comments', 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/media/{id}/internal_comments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/media/{id}/internal_comments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/media/{id}/internal_comments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/media/{id}/internal_comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 30522,
"body": "Swap the CTA to the Scranton Branch Mug before the holiday push.",
"deleted_at": null,
"full_name": "Michael Scott",
"first_name": "Michael",
"last_name": "Scott",
"image_url": "https://cdn.fluid.app/dunder-mifflin/avatars/michael-scott.jpg",
"relateable_id": 48213,
"relateable_type": "Medium",
"likes": 0,
"replies": [],
"created_at": "2026-09-20T09:15:02Z",
"contact_id": null,
"user_id": 20931,
"liked": false,
"user": {
"id": 20931,
"first_name": "Michael",
"last_name": "Scott",
"full_name": "Michael Scott",
"active": true,
"email": "michael.scott@dundermifflin.com",
"avatar": "https://cdn.fluid.app/dunder-mifflin/avatars/michael-scott.jpg",
"bio": "Regional Manager, Dunder Mifflin Scranton.",
"time_zone": "America/New_York",
"country": {
"id": 233,
"iso": "US",
"name": "United States"
}
},
"contact": null
}
]{
"message": "<string>"
}Response
Success
⌘I
List internal media comments
curl --request GET \
--url https://api.fluid.app/api/media/{id}/internal_comments \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/media/{id}/internal_comments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/media/{id}/internal_comments', 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/media/{id}/internal_comments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/media/{id}/internal_comments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/media/{id}/internal_comments")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/media/{id}/internal_comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 30522,
"body": "Swap the CTA to the Scranton Branch Mug before the holiday push.",
"deleted_at": null,
"full_name": "Michael Scott",
"first_name": "Michael",
"last_name": "Scott",
"image_url": "https://cdn.fluid.app/dunder-mifflin/avatars/michael-scott.jpg",
"relateable_id": 48213,
"relateable_type": "Medium",
"likes": 0,
"replies": [],
"created_at": "2026-09-20T09:15:02Z",
"contact_id": null,
"user_id": 20931,
"liked": false,
"user": {
"id": 20931,
"first_name": "Michael",
"last_name": "Scott",
"full_name": "Michael Scott",
"active": true,
"email": "michael.scott@dundermifflin.com",
"avatar": "https://cdn.fluid.app/dunder-mifflin/avatars/michael-scott.jpg",
"bio": "Regional Manager, Dunder Mifflin Scranton.",
"time_zone": "America/New_York",
"country": {
"id": 233,
"iso": "US",
"name": "United States"
}
},
"contact": null
}
]{
"message": "<string>"
}