Upload de Avatar
curl --request POST \
--url https://api.tess.im/digital-employees/avatar-upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.tess.im/digital-employees/avatar-upload"
payload = { "name": "<string>" }
headers = {
"x-workspace-id": "<x-workspace-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-workspace-id': '<x-workspace-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.tess.im/digital-employees/avatar-upload', 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.tess.im/digital-employees/avatar-upload",
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([
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-workspace-id: <x-workspace-id>"
],
]);
$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.tess.im/digital-employees/avatar-upload"
payload := strings.NewReader("{\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-workspace-id", "<x-workspace-id>")
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.tess.im/digital-employees/avatar-upload")
.header("x-workspace-id", "<x-workspace-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tess.im/digital-employees/avatar-upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-workspace-id"] = '<x-workspace-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyDigital Employees
Upload de Avatar
Faz upload de uma imagem de avatar para uso com um digital employee.
POST
/
digital-employees
/
avatar-upload
Upload de Avatar
curl --request POST \
--url https://api.tess.im/digital-employees/avatar-upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-workspace-id: <x-workspace-id>' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.tess.im/digital-employees/avatar-upload"
payload = { "name": "<string>" }
headers = {
"x-workspace-id": "<x-workspace-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-workspace-id': '<x-workspace-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.tess.im/digital-employees/avatar-upload', 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.tess.im/digital-employees/avatar-upload",
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([
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-workspace-id: <x-workspace-id>"
],
]);
$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.tess.im/digital-employees/avatar-upload"
payload := strings.NewReader("{\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-workspace-id", "<x-workspace-id>")
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.tess.im/digital-employees/avatar-upload")
.header("x-workspace-id", "<x-workspace-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tess.im/digital-employees/avatar-upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-workspace-id"] = '<x-workspace-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyEste endpoint aceita
multipart/form-data. A imagem enviada será processada e disponibilizada como URL de avatar e URL de miniatura.
Exemplos de Código
curl --request POST \
--url 'https://api.tess.im/digital-employees/avatar-upload' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'x-workspace-id: YOUR_WORKSPACE_ID' \
--form 'avatar=@/path/to/avatar.png' \
--form 'name=My Employee Avatar'
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('avatar', fs.createReadStream('/path/to/avatar.png'));
form.append('name', 'My Employee Avatar');
const config = {
method: 'post',
url: 'https://api.tess.im/digital-employees/avatar-upload',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'x-workspace-id': 'YOUR_WORKSPACE_ID',
...form.getHeaders()
},
data: form
};
try {
const response = await axios(config);
console.log(response.data);
} catch (error) {
console.error(error);
}
import requests
url = "https://api.tess.im/digital-employees/avatar-upload"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"x-workspace-id": "YOUR_WORKSPACE_ID"
}
with open("/path/to/avatar.png", "rb") as f:
files = {"avatar": f}
data = {"name": "My Employee Avatar"}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
<?php
$curl = curl_init();
$cfile = new CURLFile('/path/to/avatar.png', 'image/png', 'avatar.png');
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tess.im/digital-employees/avatar-upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => [
'avatar' => $cfile,
'name' => 'My Employee Avatar'
],
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"x-workspace-id: YOUR_WORKSPACE_ID"
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.io.*;
import java.net.URI;
import java.net.http.*;
import java.nio.file.*;
String boundary = "----FormBoundary" + System.currentTimeMillis();
Path filePath = Path.of("/path/to/avatar.png");
byte[] fileBytes = Files.readAllBytes(filePath);
String body = "--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"avatar\"; filename=\"avatar.png\"\r\n"
+ "Content-Type: image/png\r\n\r\n";
byte[] bodyStart = body.getBytes();
String bodyEnd = "\r\n--" + boundary + "\r\n"
+ "Content-Disposition: form-data; name=\"name\"\r\n\r\n"
+ "My Employee Avatar\r\n"
+ "--" + boundary + "--\r\n";
byte[] bodyEndBytes = bodyEnd.getBytes();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(bodyStart);
baos.write(fileBytes);
baos.write(bodyEndBytes);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.tess.im/digital-employees/avatar-upload"))
.header("Authorization", "Bearer YOUR_API_KEY")
.header("x-workspace-id", "YOUR_WORKSPACE_ID")
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.POST(HttpRequest.BodyPublishers.ofByteArray(baos.toByteArray()))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
"path/filepath"
)
func main() {
var buf bytes.Buffer
writer := multipart.NewWriter(&buf)
file, _ := os.Open("/path/to/avatar.png")
defer file.Close()
part, _ := writer.CreateFormFile("avatar", filepath.Base("/path/to/avatar.png"))
io.Copy(part, file)
writer.WriteField("name", "My Employee Avatar")
writer.Close()
client := &http.Client{}
req, _ := http.NewRequest("POST", "https://api.tess.im/digital-employees/avatar-upload", &buf)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("x-workspace-id", "YOUR_WORKSPACE_ID")
req.Header.Set("Content-Type", writer.FormDataContentType())
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
using System.Net.Http;
using System.Net.Http.Headers;
using System.IO;
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
client.DefaultRequestHeaders.Add("x-workspace-id", "YOUR_WORKSPACE_ID");
using var form = new MultipartFormDataContent();
var fileBytes = await File.ReadAllBytesAsync("/path/to/avatar.png");
var fileContent = new ByteArrayContent(fileBytes);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/png");
form.Add(fileContent, "avatar", "avatar.png");
form.Add(new StringContent("My Employee Avatar"), "name");
var response = await client.PostAsync(
"https://api.tess.im/digital-employees/avatar-upload",
form);
Console.WriteLine(await response.Content.ReadAsStringAsync());
require 'uri'
require 'net/http'
uri = URI('https://api.tess.im/digital-employees/avatar-upload')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_API_KEY'
request['x-workspace-id'] = 'YOUR_WORKSPACE_ID'
form_data = [
['avatar', File.open('/path/to/avatar.png')],
['name', 'My Employee Avatar']
]
request.set_form(form_data, 'multipart/form-data')
response = http.request(request)
puts response.read_body
Headers
Inclua sua chave de API no header
Authorization como um Bearer token em todas as requisições.integer
obrigatório
ID do workspace. Obrigatório em todas as requisições da API de Digital Employees.
Corpo da Requisição
file
obrigatório
Arquivo de imagem do avatar. Tamanho máximo: 5 MB. Formatos aceitos: JPEG, PNG, WebP.
string
Nome de exibição opcional para o avatar. Máximo de 255 caracteres.
Resposta
{
"data": {
"id": 1,
"url": "https://cdn.tess.im/avatars/abc123.png",
"thumbnail_url": "https://cdn.tess.im/avatars/abc123_thumb.png"
}
}
⌘I