Send message
curl --request POST \
--url https://app.famulor.de/api/conversations/{uuid}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({message: '<string>'})
};
fetch('https://app.famulor.de/api/conversations/{uuid}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/conversations/{uuid}/messages"
payload = { "message": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/conversations/{uuid}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'message' => '<string>'
]),
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://app.famulor.de/api/conversations/{uuid}/messages"
payload := strings.NewReader("{\n \"message\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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))
}{
"status": true,
"message": "I'd be happy to help you schedule a demo! I have availability on Monday at 2 PM, Wednesday at 10 AM, or Friday at 3 PM. Which time works best for you?",
"function_calls": []
}
{
"status": true,
"message": "I found two slots. Which one do you prefer?",
"function_calls": [
{
"name": "check_calendar_availability",
"arguments": {
"date_range": "next_week"
},
"result": {
"available_slots": ["2025-01-10 14:00", "2025-01-12 10:00"]
}
}
]
}
{
"status": false,
"error": "Conversation not found"
}
{
"status": false,
"error": "Insufficient balance. Please top up your account."
}
{
"status": false,
"error": "Failed to process message: invalid tool output"
}
{
"status": false,
"error": "message is required"
}
Send message
Send a user message to an existing conversation and receive the assistant’s response
POST
/
conversations
/
{uuid}
/
messages
Send message
curl --request POST \
--url https://app.famulor.de/api/conversations/{uuid}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({message: '<string>'})
};
fetch('https://app.famulor.de/api/conversations/{uuid}/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/conversations/{uuid}/messages"
payload = { "message": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/conversations/{uuid}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'message' => '<string>'
]),
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://app.famulor.de/api/conversations/{uuid}/messages"
payload := strings.NewReader("{\n \"message\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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))
}{
"status": true,
"message": "I'd be happy to help you schedule a demo! I have availability on Monday at 2 PM, Wednesday at 10 AM, or Friday at 3 PM. Which time works best for you?",
"function_calls": []
}
{
"status": true,
"message": "I found two slots. Which one do you prefer?",
"function_calls": [
{
"name": "check_calendar_availability",
"arguments": {
"date_range": "next_week"
},
"result": {
"available_slots": ["2025-01-10 14:00", "2025-01-12 10:00"]
}
}
]
}
{
"status": false,
"error": "Conversation not found"
}
{
"status": false,
"error": "Insufficient balance. Please top up your account."
}
{
"status": false,
"error": "Failed to process message: invalid tool output"
}
{
"status": false,
"error": "message is required"
}
Send a message to an existing Famulor conversation and receive the assistant’s reply including any function calls triggered during processing.
Path Parameters
string
required
UUID of the existing conversation
Request Body
string
required
User message to send (max 2000 characters)
Request Examples
Response Fields
boolean
required
Indicates whether the request succeeded
string
required
Assistant’s response text
array
Response Examples
{
"status": true,
"message": "I'd be happy to help you schedule a demo! I have availability on Monday at 2 PM, Wednesday at 10 AM, or Friday at 3 PM. Which time works best for you?",
"function_calls": []
}
{
"status": true,
"message": "I found two slots. Which one do you prefer?",
"function_calls": [
{
"name": "check_calendar_availability",
"arguments": {
"date_range": "next_week"
},
"result": {
"available_slots": ["2025-01-10 14:00", "2025-01-12 10:00"]
}
}
]
}
{
"status": false,
"error": "Conversation not found"
}
{
"status": false,
"error": "Insufficient balance. Please top up your account."
}
{
"status": false,
"error": "Failed to process message: invalid tool output"
}
{
"status": false,
"error": "message is required"
}
Notes
- Widget conversations: $0.01 per user message; test conversations are free.
- Store the conversation UUID to resume chats later.
- Show loading states since tool calls may take a few seconds.
- Combine with
Get Conversationfor history andCreate Conversationto start new chats.
Was this page helpful?
⌘I

