curl --request GET \
--url https://app.famulor.io/api/v1/history/messaging/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.famulor.io/api/v1/history/messaging/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.famulor.io/api/v1/history/messaging/{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://app.famulor.io/api/v1/history/messaging/{id}",
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://app.famulor.io/api/v1/history/messaging/{id}"
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://app.famulor.io/api/v1/history/messaging/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.io/api/v1/history/messaging/{id}")
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{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "call",
"direction": "inbound",
"assistant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assistant_name": "<string>",
"status": "queued",
"contact": "<string>",
"from": "<string>",
"to": "<string>",
"subject": "<string>",
"body_preview": "<string>",
"summary": "<string>",
"duration_sec": 123,
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reply_status": "pending",
"reply_error": "<string>",
"attachments_count": 1,
"message_count": 2,
"created_at": "2023-11-07T05:31:56Z",
"last_activity_at": "2023-11-07T05:31:56Z",
"connector_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connector_name": "<string>",
"ai_paused": true,
"connector_ai_enabled": true,
"messages": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "inbound",
"role": "user",
"text_body": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"source": "ai",
"attachments": [
{
"type": "image",
"filename": "<string>",
"mime_type": "<string>",
"size": 123,
"description": "<string>",
"transcript": "<string>",
"url": "<string>"
}
],
"tool_events": [
{}
]
}
],
"lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"failure": {
"domain": "telephony",
"code": "busy",
"message": "<string>",
"retryable": true,
"action": "retry_later",
"operation": "outbound_call"
},
"external_thread_id": "<string>",
"external_user_id": "<string>",
"external_user_name": "<string>",
"ended_at": "2023-11-07T05:31:56Z",
"contact_phone": "<string>",
"contact_email": "<string>"
}
}Get a messaging conversation
Returns up to 500 messages in chronological order with full text, attachment metadata, available voice-note transcripts, short image descriptions, and media links valid for one hour. Applies to chat channels and connected mailbox or support channels. Transcripts and image descriptions are available only when an accessible attachment could be analyzed. Image descriptions can include readable text; this attachment feature does not analyze PDFs or videos. Fetch this endpoint again to refresh media links. Required scope: calls:read.
curl --request GET \
--url https://app.famulor.io/api/v1/history/messaging/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.famulor.io/api/v1/history/messaging/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.famulor.io/api/v1/history/messaging/{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://app.famulor.io/api/v1/history/messaging/{id}",
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://app.famulor.io/api/v1/history/messaging/{id}"
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://app.famulor.io/api/v1/history/messaging/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.io/api/v1/history/messaging/{id}")
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{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"thread_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"channel": "call",
"direction": "inbound",
"assistant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assistant_name": "<string>",
"status": "queued",
"contact": "<string>",
"from": "<string>",
"to": "<string>",
"subject": "<string>",
"body_preview": "<string>",
"summary": "<string>",
"duration_sec": 123,
"campaign_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"reply_status": "pending",
"reply_error": "<string>",
"attachments_count": 1,
"message_count": 2,
"created_at": "2023-11-07T05:31:56Z",
"last_activity_at": "2023-11-07T05:31:56Z",
"connector_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"connector_name": "<string>",
"ai_paused": true,
"connector_ai_enabled": true,
"messages": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "inbound",
"role": "user",
"text_body": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"source": "ai",
"attachments": [
{
"type": "image",
"filename": "<string>",
"mime_type": "<string>",
"size": 123,
"description": "<string>",
"transcript": "<string>",
"url": "<string>"
}
],
"tool_events": [
{}
]
}
],
"lead_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"failure": {
"domain": "telephony",
"code": "busy",
"message": "<string>",
"retryable": true,
"action": "retry_later",
"operation": "outbound_call"
},
"external_thread_id": "<string>",
"external_user_id": "<string>",
"external_user_name": "<string>",
"ended_at": "2023-11-07T05:31:56Z",
"contact_phone": "<string>",
"contact_email": "<string>"
}
}Authorizations
API key (fam_..., created under Settings → API Keys) or an OAuth 2.0 access token (fam_at_...). REST operations also require API Access for the credential's workspace. Keys can be restricted to scopes such as assistants:read, calls:write, campaigns:write, automations:read, dashboards:read, dashboards:write, leads:write, segments:write, loop:read, loop:write, phone_numbers:write, sip_trunks:write, knowledge:write, voices:read, billing:read, billing:write, settings:write, platform:read, platform:write; a *:write scope implies the matching *:read. Automation and dashboard endpoints also accept the legacy calls:* scope. Keys without scope restrictions have full access within the workspace's available capabilities.
Path Parameters
Messaging conversation ID returned by the history list.
Response
Messaging conversation detail.
Show child attributes
Show child attributes