With this endpoint you can send messages on behalf of a customer and get response in the same request
- Key Concepts:
1. Publishing a new message without specifying achatId
will result in the creation of a new chat.
In the response, you will receive thechatId
of the newly created chat.
ThischatId
can be used for future interactions with the chat, such as sending additional/follow-up messages.
2. If achatId
is specified, the new message will be added to the existing chat. The chat history will be utilized to generate a more contextually accurate response.
3. You have the option to provide your ownmessagesHistory
which will be taken into account during the generation of the answer.
However, please note that if achatId
is already provided, your customchatHistory
will be disregarded.
➡️ Request
URL | https://www.ribbo.ai/api/v1/messages |
Method | POST |
Headers |
Authorization: Bearer <your_api_key> Accept: application/json Content-Type: application/json |
Read more about authentication headers here.
➡️ Parameters
Parameter | Type | Description | |
---|---|---|---|
message | string | The question to ask the bot. |
required 1 to 1000 characters |
applicationId | string |
The ID of the chat application. You can find it in your application Settings tab. |
required |
chatId | string |
The ID of the chat to publish follow up question. If not specified, new chat will be created |
optional |
return_sources | boolean | Whether to return the sources that were used for answer generation |
optional default: |
format | string |
How to format the answer. Can be |
optional default: |
messagesHistory | array |
The chat history array. Required format: |
optional default: |
user_data | object |
A user identification object with metadata about the the user. Required format:
|
optional |
➡️ Example of request body
{
"message": "What is the cheapest plan you offer?",
"applicationId": "68G4zk6jieG6Z6Nbw6ns",
"format": "text",
"return_sources": true,
"user_data": {"name": "Alex", "email":"[email protected]", "phone": "239847"}
}
➡️ Example of request (cURL)
curl --location 'https://www.ribbo.ai/api/v1/messages' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
"message": "what is the cheapest pricing option you offer?",
"applicationId": "O8G6666688ZbNbwDns",
"format": "text",
"return_sources": true,
"user_data": {"name": "Alex", "email":"[email protected]", "phone": "239847"},
"messagesHistory" : [
{"author":"user", "content": {"value":"Hey how much for Enterprise plan?"}},
{"author":"operator", "content": {"value":"Hi! Can you clarify what features you need from Enterprise plan?"}}
]
}'
➡️ Example of request (NodeJs)
const axios = require('axios');
const API_TOKEN = '<API_TOKEN>'; // Replace with your actual API token
const data = {
message: "what is the cheapest pricing option you offer?",
applicationId: "O8G6666688ZbNbwDns",
format: "text",
return_sources: true,
user_data: {"name": "Alex", "email":"[email protected]", "phone": "239847"},
messagesHistory : [
{"author":"user", "content": {"value":"Hey how much for Enterprise plan?"}},
{"author":"operator", "content": {"value":"Hi! Can you clarify what features you need from Enterprise plan?"}}
]
};
axios({
method: 'post',
url: 'https://www.ribbo.ai/api/v1/messages',
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${API_TOKEN}`,
'Content-Type': 'application/json'
},
data: data
}).then(response => {
console.log(response.data);
}).catch(error => {
console.error(error);
});
➡️ Example of response
{
"statusCode":200,
"data":{
"answer":"The cheapest pricing option we offer is the Small plan, which costs $19.99 per month.",
"chatId":"FVGwIwukDfvg6MHzzkNA",
"sources":[
{"title":"Pricing | LiveReacting", "url":"https://www.livereacting.com/pricing"},
]
}
}
chatId
for your next requests for follow-up questions. By doing so, the existing chat history will be reused to generate more accurate responses.