curl --request POST \
--url https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "Your order has been confirmed."
}
'import requests
url = "https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages"
payload = { "text": "Your order has been confirmed." }
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({text: 'Your order has been confirmed.'})
};
fetch('https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/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.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/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([
'text' => 'Your order has been confirmed.'
]),
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.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages"
payload := strings.NewReader("{\n \"text\": \"Your order has been confirmed.\"\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.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"Your order has been confirmed.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/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 \"text\": \"Your order has been confirmed.\"\n}"
response = http.request(request)
puts response.read_body{
"name": "channels/6633a1b2c4d5e6f7a8b9c0d1/conversations/664fa2b3c4d5e6f7a8b9c0d2/messages/665ab3c4d5e6f7a8b9c0d3e4",
"createTime": "2026-04-03T10:00:00Z",
"status": "SENDING",
"contentType": "TEXT",
"text": "Your order has been confirmed.",
"template": {
"name": "order_status_update",
"language": "es",
"headerParameters": {
"customerName": "Juan"
},
"bodyParameters": {
"orderNumber": "12345",
"status": "confirmado"
}
}
}Create Message in Conversation
curl --request POST \
--url https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "Your order has been confirmed."
}
'import requests
url = "https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages"
payload = { "text": "Your order has been confirmed." }
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({text: 'Your order has been confirmed.'})
};
fetch('https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/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.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/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([
'text' => 'Your order has been confirmed.'
]),
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.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages"
payload := strings.NewReader("{\n \"text\": \"Your order has been confirmed.\"\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.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"Your order has been confirmed.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goevery.co/v1/channels/{channelId}/conversations/{conversationId}/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 \"text\": \"Your order has been confirmed.\"\n}"
response = http.request(request)
puts response.read_body{
"name": "channels/6633a1b2c4d5e6f7a8b9c0d1/conversations/664fa2b3c4d5e6f7a8b9c0d2/messages/665ab3c4d5e6f7a8b9c0d3e4",
"createTime": "2026-04-03T10:00:00Z",
"status": "SENDING",
"contentType": "TEXT",
"text": "Your order has been confirmed.",
"template": {
"name": "order_status_update",
"language": "es",
"headerParameters": {
"customerName": "Juan"
},
"bodyParameters": {
"orderNumber": "12345",
"status": "confirmado"
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the channel.
"6633a1b2c4d5e6f7a8b9c0d1"
The unique identifier of the conversation.
"664fa2b3c4d5e6f7a8b9c0d2"
Body
The text message body. Mutually exclusive with template.
"Your order has been confirmed."
The template message content. Mutually exclusive with text.
Show child attributes
Show child attributes
Response
Successfully created a message.
The resource name of the message.
"channels/6633a1b2c4d5e6f7a8b9c0d1/conversations/664fa2b3c4d5e6f7a8b9c0d2/messages/665ab3c4d5e6f7a8b9c0d3e4"
The timestamp when the message was created.
"2026-04-03T10:00:00Z"
The delivery status of the message.
SENDING, SENT, DELIVERED, READ, FAILED "SENDING"
The content type of the message.
TEXT, TEMPLATE "TEXT"
The text content. Present when contentType is TEXT.
"Your order has been confirmed."
The template content. Present when contentType is TEMPLATE.
Show child attributes
Show child attributes