curl --request POST \
--url https://api.nuvia.ai/v1/messages/send-image \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "IMAGE",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": {
"inReplyToExternalId": "<string>"
}
}
}
'import requests
url = "https://api.nuvia.ai/v1/messages/send-image"
payload = {
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "IMAGE",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": { "inReplyToExternalId": "<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({
conversationId: '<string>',
message: {
content: '<string>',
contentType: 'IMAGE',
attachment: '<string>',
quoteSourceId: '<string>',
contentAttributes: {inReplyToExternalId: '<string>'}
}
})
};
fetch('https://api.nuvia.ai/v1/messages/send-image', 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.nuvia.ai/v1/messages/send-image",
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([
'conversationId' => '<string>',
'message' => [
'content' => '<string>',
'contentType' => 'IMAGE',
'attachment' => '<string>',
'quoteSourceId' => '<string>',
'contentAttributes' => [
'inReplyToExternalId' => '<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.nuvia.ai/v1/messages/send-image"
payload := strings.NewReader("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"IMAGE\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\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.nuvia.ai/v1/messages/send-image")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"IMAGE\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/messages/send-image")
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 \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"IMAGE\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"content": "<string>",
"content_type": "TEXT",
"message_type": "INCOMING",
"status": "SENT",
"conversation": "<unknown>",
"inbox": "<unknown>",
"contact": "<unknown>",
"company": "<unknown>",
"_id": "<string>",
"additional_attributes": "<unknown>",
"sender_type": "CONTACT",
"source_id": "<string>",
"user": "<unknown>",
"attachments": [
"<unknown>"
],
"errors": [
{
"code": "<string>",
"title": "<string>",
"message": "<string>"
}
],
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Enviar imagen
Envía un mensaje con imagen a una conversación. Requiere un adjunto creado previamente. Opcionalmente puede citar otro mensaje de la misma conversación con quoteSourceId, que es el id del mensaje EN EL CANAL (wamid en Meta, key.id en Evolution, message_id en Unipile), no el _id de Nuvia.
curl --request POST \
--url https://api.nuvia.ai/v1/messages/send-image \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "IMAGE",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": {
"inReplyToExternalId": "<string>"
}
}
}
'import requests
url = "https://api.nuvia.ai/v1/messages/send-image"
payload = {
"conversationId": "<string>",
"message": {
"content": "<string>",
"contentType": "IMAGE",
"attachment": "<string>",
"quoteSourceId": "<string>",
"contentAttributes": { "inReplyToExternalId": "<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({
conversationId: '<string>',
message: {
content: '<string>',
contentType: 'IMAGE',
attachment: '<string>',
quoteSourceId: '<string>',
contentAttributes: {inReplyToExternalId: '<string>'}
}
})
};
fetch('https://api.nuvia.ai/v1/messages/send-image', 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.nuvia.ai/v1/messages/send-image",
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([
'conversationId' => '<string>',
'message' => [
'content' => '<string>',
'contentType' => 'IMAGE',
'attachment' => '<string>',
'quoteSourceId' => '<string>',
'contentAttributes' => [
'inReplyToExternalId' => '<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.nuvia.ai/v1/messages/send-image"
payload := strings.NewReader("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"IMAGE\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\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.nuvia.ai/v1/messages/send-image")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"IMAGE\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/messages/send-image")
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 \"conversationId\": \"<string>\",\n \"message\": {\n \"content\": \"<string>\",\n \"contentType\": \"IMAGE\",\n \"attachment\": \"<string>\",\n \"quoteSourceId\": \"<string>\",\n \"contentAttributes\": {\n \"inReplyToExternalId\": \"<string>\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"content": "<string>",
"content_type": "TEXT",
"message_type": "INCOMING",
"status": "SENT",
"conversation": "<unknown>",
"inbox": "<unknown>",
"contact": "<unknown>",
"company": "<unknown>",
"_id": "<string>",
"additional_attributes": "<unknown>",
"sender_type": "CONTACT",
"source_id": "<string>",
"user": "<unknown>",
"attachments": [
"<unknown>"
],
"errors": [
{
"code": "<string>",
"title": "<string>",
"message": "<string>"
}
],
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Autorizaciones
Token JWT de autenticação
Encabezados
Identificador de la empresa objetivo. Obligatorio solo para API keys globales (type=global). Se ignora para API keys de empresa y usuarios humanos.
Cuerpo
Respuesta
Imagen enviada
Contenido del mensaje
Tipo de contenido: TEXT, IMAGE, AUDIO, VIDEO, DOCUMENT, TEMPLATE, etc.
TEXT, CARDS, AUDIO, VIDEO, IMAGE, DOCUMENT, CONTACTS, LOCATION, TEMPLATE, STICKER, UNSUPPORTED Tipo de mensaje: INCOMING, OUTGOING, ACTIVITY
INCOMING, OUTGOING, ACTIVITY Status del mensaje: SENT, DELIVERED, READ, FAILED
SENT, DELIVERED, READ, FAILED Conversación asociada al mensaje
Inbox del mensaje
Contacto del mensaje
Empresa del mensaje
ID del mensaje
Atributos adicionales del mensaje
Tipo de remitente: CONTACT, USER, BOT, SYSTEM
CONTACT, USER, BOT, SYSTEM ID del mensaje en la plataforma externa
Usuario que envió el mensaje
Adjuntos del mensaje
Lista de errores asociados al mensaje
Show child attributes
Show child attributes
Fecha de creación del mensaje
Fecha de actualización del mensaje