Create Chat Message
Create a new message for a specific chat.
curl --request POST \
--url https://api.useinvent.com/chats/{chat_id}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": [
{
"type": "text",
"text": "<string>",
"start_timestamp": 123,
"end_timestamp": 123
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>"
}
}
'import requests
url = "https://api.useinvent.com/chats/{chat_id}/messages"
payload = {
"message": [
{
"type": "text",
"text": "<string>",
"start_timestamp": 123,
"end_timestamp": 123
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>"
}
}
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: [{type: 'text', text: '<string>', start_timestamp: 123, end_timestamp: 123}],
context: {page_url: '<string>', page_title: '<string>'}
})
};
fetch('https://api.useinvent.com/chats/{chat_id}/messages', 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.useinvent.com/chats/{chat_id}/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' => [
[
'type' => 'text',
'text' => '<string>',
'start_timestamp' => 123,
'end_timestamp' => 123
]
],
'context' => [
'page_url' => '<string>',
'page_title' => '<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://api.useinvent.com/chats/{chat_id}/messages"
payload := strings.NewReader("{\n \"message\": [\n {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"start_timestamp\": 123,\n \"end_timestamp\": 123\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\"\n }\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.useinvent.com/chats/{chat_id}/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": [\n {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"start_timestamp\": 123,\n \"end_timestamp\": 123\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/chats/{chat_id}/messages")
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 {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"start_timestamp\": 123,\n \"end_timestamp\": 123\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"model": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"messages": [
{
"role": "system",
"parts": [
{
"type": "text",
"text": "<string>",
"audio": {
"id": "<string>",
"file_path": "<string>",
"file_filename": "document.pdf",
"file_size": 1024,
"file_mimetype": "application/pdf",
"file_url": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"start_timestamp": 123,
"end_timestamp": 123
}
]
}
],
"member": {
"id": "<string>",
"user": {
"id": "<string>",
"name": "<string>",
"avatar": "<string>"
},
"session": {
"id": "<string>"
},
"contact_channel": {
"id": "<string>",
"user_id": "<string>",
"avatar": "<string>",
"name": "<string>",
"username": "<string>",
"email": "jsmith@example.com",
"phone": "<string>",
"country": "<string>",
"agent": "<string>",
"ip": "<string>",
"language": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"blocked": true,
"unsubscribed": true,
"ai_replies": true,
"is_admin": true
},
"link": "<string>"
}
},
"error": "<string>",
"broadcast_id": "<string>",
"is_broadcast_message": true,
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123,
"turns": [
{
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123
}
]
},
"delivered_at": "2023-11-07T05:31:56Z",
"seen_at": "2023-11-07T05:31:56Z"
}Authorizations
Bearer token authentication using your API key
Path Parameters
Chat ID
Body
The user message
The user message to open the chat with
1User message parts
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Show child attributes
Show child attributes
Ephemeral context about where the user is when sending the message. Injected into the prompt on the fly, never stored.
Show child attributes
Show child attributes
Response
The chat message schema
The role of the message
user, assistant, system, tool, event, note The model used for the message
The chat status
RUNNING, COMPLETED, FAILED, CANCELED The message content
System message
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Show child attributes
Show child attributes
The member of the chat
Show child attributes
Show child attributes
Error message if the message failed
ID of the broadcast this message originates from
Whether this message was sent via a broadcast template
The usage information for the message
Show child attributes
Show child attributes
When the message was delivered to the recipient
When the recipient saw the message
Was this page helpful?
curl --request POST \
--url https://api.useinvent.com/chats/{chat_id}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": [
{
"type": "text",
"text": "<string>",
"start_timestamp": 123,
"end_timestamp": 123
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>"
}
}
'import requests
url = "https://api.useinvent.com/chats/{chat_id}/messages"
payload = {
"message": [
{
"type": "text",
"text": "<string>",
"start_timestamp": 123,
"end_timestamp": 123
}
],
"context": {
"page_url": "<string>",
"page_title": "<string>"
}
}
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: [{type: 'text', text: '<string>', start_timestamp: 123, end_timestamp: 123}],
context: {page_url: '<string>', page_title: '<string>'}
})
};
fetch('https://api.useinvent.com/chats/{chat_id}/messages', 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.useinvent.com/chats/{chat_id}/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' => [
[
'type' => 'text',
'text' => '<string>',
'start_timestamp' => 123,
'end_timestamp' => 123
]
],
'context' => [
'page_url' => '<string>',
'page_title' => '<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://api.useinvent.com/chats/{chat_id}/messages"
payload := strings.NewReader("{\n \"message\": [\n {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"start_timestamp\": 123,\n \"end_timestamp\": 123\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\"\n }\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.useinvent.com/chats/{chat_id}/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": [\n {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"start_timestamp\": 123,\n \"end_timestamp\": 123\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useinvent.com/chats/{chat_id}/messages")
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 {\n \"type\": \"text\",\n \"text\": \"<string>\",\n \"start_timestamp\": 123,\n \"end_timestamp\": 123\n }\n ],\n \"context\": {\n \"page_url\": \"<string>\",\n \"page_title\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"model": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"messages": [
{
"role": "system",
"parts": [
{
"type": "text",
"text": "<string>",
"audio": {
"id": "<string>",
"file_path": "<string>",
"file_filename": "document.pdf",
"file_size": 1024,
"file_mimetype": "application/pdf",
"file_url": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"start_timestamp": 123,
"end_timestamp": 123
}
]
}
],
"member": {
"id": "<string>",
"user": {
"id": "<string>",
"name": "<string>",
"avatar": "<string>"
},
"session": {
"id": "<string>"
},
"contact_channel": {
"id": "<string>",
"user_id": "<string>",
"avatar": "<string>",
"name": "<string>",
"username": "<string>",
"email": "jsmith@example.com",
"phone": "<string>",
"country": "<string>",
"agent": "<string>",
"ip": "<string>",
"language": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"blocked": true,
"unsubscribed": true,
"ai_replies": true,
"is_admin": true
},
"link": "<string>"
}
},
"error": "<string>",
"broadcast_id": "<string>",
"is_broadcast_message": true,
"usage": {
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123,
"turns": [
{
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"reasoning_tokens": 123,
"input_tokens_cache_read": 123,
"input_tokens_cache_write": 123
}
]
},
"delivered_at": "2023-11-07T05:31:56Z",
"seen_at": "2023-11-07T05:31:56Z"
}