Typescript (SDK)
import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.email.inboxes.threads.update({
inboxId: "<id>",
id: "<id>",
});
console.log(result);
}
run();curl --request PATCH \
--url https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"add_labels": "<string>",
"remove_labels": "<string>"
}
'import requests
url = "https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}"
payload = {
"add_labels": "<string>",
"remove_labels": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({add_labels: '<string>', remove_labels: '<string>'})
};
fetch('https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}', 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.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'add_labels' => '<string>',
'remove_labels' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}"
payload := strings.NewReader("{\n \"add_labels\": \"<string>\",\n \"remove_labels\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.patch("https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"add_labels\": \"<string>\",\n \"remove_labels\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"add_labels\": \"<string>\",\n \"remove_labels\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "<string>",
"id": "<string>",
"inbox_id": "<string>",
"subject": "<string>",
"preview": "<string>",
"labels": [
"<string>"
],
"participants": [
"<string>"
],
"message_count": 123,
"senders": [
"<string>"
],
"recipients": [
"<string>"
],
"last_message_id": "<string>",
"size": 123,
"messages": "<array>",
"last_message_at": "2023-11-07T05:31:56Z",
"timestamp": "2023-11-07T05:31:56Z",
"received_timestamp": "2023-11-07T05:31:56Z",
"sent_timestamp": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}Email
Update thread labels
Adds/removes labels on every message in a thread. Add spam to report the conversation as spam or trash to move it to trash; remove the label to undo. Trashed messages are permanently deleted 30 days after they were trashed. A new message arriving on a trashed thread brings it back. The held label can only be changed by a person in the Crevio inbox.
PATCH
/
email
/
inboxes
/
{inbox_id}
/
threads
/
{id}
Typescript (SDK)
import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.email.inboxes.threads.update({
inboxId: "<id>",
id: "<id>",
});
console.log(result);
}
run();curl --request PATCH \
--url https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"add_labels": "<string>",
"remove_labels": "<string>"
}
'import requests
url = "https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}"
payload = {
"add_labels": "<string>",
"remove_labels": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({add_labels: '<string>', remove_labels: '<string>'})
};
fetch('https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}', 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.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'add_labels' => '<string>',
'remove_labels' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}"
payload := strings.NewReader("{\n \"add_labels\": \"<string>\",\n \"remove_labels\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.patch("https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"add_labels\": \"<string>\",\n \"remove_labels\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/email/inboxes/{inbox_id}/threads/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"add_labels\": \"<string>\",\n \"remove_labels\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"object": "<string>",
"id": "<string>",
"inbox_id": "<string>",
"subject": "<string>",
"preview": "<string>",
"labels": [
"<string>"
],
"participants": [
"<string>"
],
"message_count": 123,
"senders": [
"<string>"
],
"recipients": [
"<string>"
],
"last_message_id": "<string>",
"size": 123,
"messages": "<array>",
"last_message_at": "2023-11-07T05:31:56Z",
"timestamp": "2023-11-07T05:31:56Z",
"received_timestamp": "2023-11-07T05:31:56Z",
"sent_timestamp": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}Authorizations
API key in the format: Bearer {api_token}
Body
application/json
Labels to add. Crevio uses unread (new incoming mail), starred and archived (out of the inbox, still listed) like Gmail; spam and trash hide the mail from lists and search until removed. held can't be changed through the API.
Labels to remove. Removing spam or trash brings the mail back.
Response
Updated
Was this page helpful?

