curl --request POST \
--url https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"content": "Hello, I need help with my order.",
"role": "user"
},
"metadata": {
"age": 34,
"first_name": "John",
"plan_type": "term_life"
},
"stream": true
}
'import requests
url = "https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}"
payload = {
"message": {
"content": "Hello, I need help with my order.",
"role": "user"
},
"metadata": {
"age": 34,
"first_name": "John",
"plan_type": "term_life"
},
"stream": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {content: 'Hello, I need help with my order.', role: 'user'},
metadata: {age: 34, first_name: 'John', plan_type: 'term_life'},
stream: true
})
};
fetch('https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_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.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}",
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' => [
'content' => 'Hello, I need help with my order.',
'role' => 'user'
],
'metadata' => [
'age' => 34,
'first_name' => 'John',
'plan_type' => 'term_life'
],
'stream' => true
]),
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.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}"
payload := strings.NewReader("{\n \"message\": {\n \"content\": \"Hello, I need help with my order.\",\n \"role\": \"user\"\n },\n \"metadata\": {\n \"age\": 34,\n \"first_name\": \"John\",\n \"plan_type\": \"term_life\"\n },\n \"stream\": true\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))
}HttpResponse<String> response = Unirest.post("https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"content\": \"Hello, I need help with my order.\",\n \"role\": \"user\"\n },\n \"metadata\": {\n \"age\": 34,\n \"first_name\": \"John\",\n \"plan_type\": \"term_life\"\n },\n \"stream\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"content\": \"Hello, I need help with my order.\",\n \"role\": \"user\"\n },\n \"metadata\": {\n \"age\": 34,\n \"first_name\": \"John\",\n \"plan_type\": \"term_life\"\n },\n \"stream\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": 123,
"conversation_id": "<string>",
"object": "response",
"output": [],
"status": "completed"
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Send message
Sends a user message to the conversation and returns the AI agent’s response. Supports both streaming (Server-Sent Events) and non-streaming (JSON) response modes. This endpoint is rate-limited.
curl --request POST \
--url https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": {
"content": "Hello, I need help with my order.",
"role": "user"
},
"metadata": {
"age": 34,
"first_name": "John",
"plan_type": "term_life"
},
"stream": true
}
'import requests
url = "https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}"
payload = {
"message": {
"content": "Hello, I need help with my order.",
"role": "user"
},
"metadata": {
"age": 34,
"first_name": "John",
"plan_type": "term_life"
},
"stream": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: {content: 'Hello, I need help with my order.', role: 'user'},
metadata: {age: 34, first_name: 'John', plan_type: 'term_life'},
stream: true
})
};
fetch('https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_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.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}",
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' => [
'content' => 'Hello, I need help with my order.',
'role' => 'user'
],
'metadata' => [
'age' => 34,
'first_name' => 'John',
'plan_type' => 'term_life'
],
'stream' => true
]),
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.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}"
payload := strings.NewReader("{\n \"message\": {\n \"content\": \"Hello, I need help with my order.\",\n \"role\": \"user\"\n },\n \"metadata\": {\n \"age\": 34,\n \"first_name\": \"John\",\n \"plan_type\": \"term_life\"\n },\n \"stream\": true\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))
}HttpResponse<String> response = Unirest.post("https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": {\n \"content\": \"Hello, I need help with my order.\",\n \"role\": \"user\"\n },\n \"metadata\": {\n \"age\": 34,\n \"first_name\": \"John\",\n \"plan_type\": \"term_life\"\n },\n \"stream\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dimedove.com/v1/apps/{app_id}/conversations/{conversation_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": {\n \"content\": \"Hello, I need help with my order.\",\n \"role\": \"user\"\n },\n \"metadata\": {\n \"age\": 34,\n \"first_name\": \"John\",\n \"plan_type\": \"term_life\"\n },\n \"stream\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"created_at": 123,
"conversation_id": "<string>",
"object": "response",
"output": [],
"status": "completed"
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"param": "<string>",
"code": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the app.
The unique identifier of the conversation.
Body
The message object to send.
Show child attributes
Show child attributes
Override the app's default streaming setting for this request. When true, the response is delivered as Server-Sent Events (SSE). When false, a single JSON response is returned. If omitted, the app's configured default is used.
Arbitrary key-value context to enrich the AI agent's response. Pass the latest snapshot on any message — the agent will use this fresh context for the current response and it will be persisted as the conversation's latest metadata. Maximum 16KB.
Response
OK
Unique identifier for the response.
Unix timestamp (in seconds) of when the response was generated.
The ID of the conversation this response belongs to.
The object type. Always 'response'.
The list of output items produced by the AI agent, including messages and function calls.
Show child attributes
Show child attributes
The status of the response. Either 'completed' or 'failed'.

