curl --request PUT \
--url https://api.nuvia.ai/v1/inboxes/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"webhook_url": "<string>",
"number": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": false,
"test_numbers": []
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>"
}
'import requests
url = "https://api.nuvia.ai/v1/inboxes/{id}"
payload = {
"name": "<string>",
"webhook_url": "<string>",
"number": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": False,
"test_numbers": []
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": True,
"disable_inbound_ai": True,
"pdf_local_text_extraction": True,
"default_owner": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
webhook_url: '<string>',
number: '<string>',
default_agent: '<string>',
test_mode: {enabled: false, test_numbers: []},
coexistence_enabled: '<unknown>',
process_unsupported_messages: true,
disable_inbound_ai: true,
pdf_local_text_extraction: true,
default_owner: '<string>'
})
};
fetch('https://api.nuvia.ai/v1/inboxes/{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.nuvia.ai/v1/inboxes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'webhook_url' => '<string>',
'number' => '<string>',
'default_agent' => '<string>',
'test_mode' => [
'enabled' => false,
'test_numbers' => [
]
],
'coexistence_enabled' => '<unknown>',
'process_unsupported_messages' => true,
'disable_inbound_ai' => true,
'pdf_local_text_extraction' => true,
'default_owner' => '<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/inboxes/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"number\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": false,\n \"test_numbers\": []\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.nuvia.ai/v1/inboxes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"number\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": false,\n \"test_numbers\": []\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/inboxes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"number\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": false,\n \"test_numbers\": []\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"number": "<string>",
"company": "<unknown>",
"channel": "<string>",
"status": "ACTIVE",
"_id": "<string>",
"webhook_url": "<string>",
"test_mode": {
"enabled": true,
"test_numbers": [
"<string>"
]
},
"default_agent": "<unknown>",
"api_wap_config": {
"phone_number_id": "<string>",
"business_id": "<string>",
"business_token": "<string>",
"waba_id": "<string>"
},
"evolution_api_config": {
"base_url": "<string>",
"api_key": "<string>",
"instance_name": "<string>"
},
"linkedin_config": {
"account_id": "<string>",
"provider": "<string>",
"display_name": "<string>",
"profile_url": "<string>",
"public_identifier": "<string>"
},
"general_config": {
"include_operator_name_on_message": true
},
"coexistence_enabled": true,
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>",
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Update inbox
Updates the settings of an existing inbox (name, webhook, default agent, API settings, etc.)
curl --request PUT \
--url https://api.nuvia.ai/v1/inboxes/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"webhook_url": "<string>",
"number": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": false,
"test_numbers": []
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>"
}
'import requests
url = "https://api.nuvia.ai/v1/inboxes/{id}"
payload = {
"name": "<string>",
"webhook_url": "<string>",
"number": "<string>",
"default_agent": "<string>",
"test_mode": {
"enabled": False,
"test_numbers": []
},
"coexistence_enabled": "<unknown>",
"process_unsupported_messages": True,
"disable_inbound_ai": True,
"pdf_local_text_extraction": True,
"default_owner": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
webhook_url: '<string>',
number: '<string>',
default_agent: '<string>',
test_mode: {enabled: false, test_numbers: []},
coexistence_enabled: '<unknown>',
process_unsupported_messages: true,
disable_inbound_ai: true,
pdf_local_text_extraction: true,
default_owner: '<string>'
})
};
fetch('https://api.nuvia.ai/v1/inboxes/{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.nuvia.ai/v1/inboxes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'webhook_url' => '<string>',
'number' => '<string>',
'default_agent' => '<string>',
'test_mode' => [
'enabled' => false,
'test_numbers' => [
]
],
'coexistence_enabled' => '<unknown>',
'process_unsupported_messages' => true,
'disable_inbound_ai' => true,
'pdf_local_text_extraction' => true,
'default_owner' => '<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/inboxes/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"number\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": false,\n \"test_numbers\": []\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.nuvia.ai/v1/inboxes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"number\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": false,\n \"test_numbers\": []\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/inboxes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"webhook_url\": \"<string>\",\n \"number\": \"<string>\",\n \"default_agent\": \"<string>\",\n \"test_mode\": {\n \"enabled\": false,\n \"test_numbers\": []\n },\n \"coexistence_enabled\": \"<unknown>\",\n \"process_unsupported_messages\": true,\n \"disable_inbound_ai\": true,\n \"pdf_local_text_extraction\": true,\n \"default_owner\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"number": "<string>",
"company": "<unknown>",
"channel": "<string>",
"status": "ACTIVE",
"_id": "<string>",
"webhook_url": "<string>",
"test_mode": {
"enabled": true,
"test_numbers": [
"<string>"
]
},
"default_agent": "<unknown>",
"api_wap_config": {
"phone_number_id": "<string>",
"business_id": "<string>",
"business_token": "<string>",
"waba_id": "<string>"
},
"evolution_api_config": {
"base_url": "<string>",
"api_key": "<string>",
"instance_name": "<string>"
},
"linkedin_config": {
"account_id": "<string>",
"provider": "<string>",
"display_name": "<string>",
"profile_url": "<string>",
"public_identifier": "<string>"
},
"general_config": {
"include_operator_name_on_message": true
},
"coexistence_enabled": true,
"process_unsupported_messages": true,
"disable_inbound_ai": true,
"pdf_local_text_extraction": true,
"default_owner": "<string>",
"createdAt": "<unknown>",
"updatedAt": "<unknown>"
}Authorizations
Token JWT de autenticação
Headers
Target company identifier. Required only for global API keys (type=global). Ignored for company API keys and human users.
Path Parameters
Inbox ID
Body
Inbox channel
WAP_AUTO_CLOSER, WEB_V2, EVOLUTION_API, LINKEDIN, EMAIL Inbox name
1Webhook URL for notifications
Inbox phone number (international format)
1Default agent ID for new conversations
1WhatsApp Business API settings
Show child attributes
Show child attributes
Evolution API settings
Show child attributes
Show child attributes
Test mode settings
Show child attributes
Show child attributes
General inbox settings
Show child attributes
Show child attributes
Inbox status
ACTIVE, DELETED Read-only field, automatically synced from Meta.
Allows UNSUPPORTED messages from Meta to follow the agent's normal flow.
Opt-in. When true, the AI does not handle organic inbound (new conversations are born for human handling); the AI keeps handling campaign leads. Default false.
Opt-in for the hybrid PDF reading mode. When true, the text is extracted locally and the AI receives the TEXT instead of the image (it stays in the loop, just reorganizing it): no size limit and no vision tokens. Falls back to the vision path when local reading doesn't work (scanned PDF, non-PDF, unreadable). Default false.
Opt-in. ID of the default owner user for any new conversation in this inbox (an explicit owner from the caller takes precedence). Null clears the default owner.
1Response
Inbox updated successfully
Inbox name
Inbox's phone number
Company that owns the inbox
Communication channel (WAP_AUTO_CLOSER, etc.)
Inbox status (ACTIVE, DELETED)
ACTIVE, DELETED Inbox ID
Webhook URL for notifications
Test mode settings
Show child attributes
Show child attributes
Default agent for new conversations
WhatsApp Business API settings (channel only)
Show child attributes
Show child attributes
Evolution API settings
Show child attributes
Show child attributes
LinkedIn settings (Unipile)
Show child attributes
Show child attributes
General inbox settings
Show child attributes
Show child attributes
Enables ingestion of smb_message_echoes (WhatsApp Coexistence).
Allows UNSUPPORTED messages from Meta to follow the agent's normal flow.
Opt-in. When true, the AI does not handle organic inbound (new conversations for human handling); the AI keeps handling campaign leads.
Opt-in for the hybrid PDF reading mode. When true, the text is extracted locally and the AI receives the TEXT instead of the image (it stays in the loop, just reorganizing it): no size limit and no vision tokens. Falls back to the vision path when local reading doesn't work (scanned PDF, non-PDF, unreadable). Default false.
ID of the default owner user for new conversations in this inbox (opt-in). Null = no default owner.
Inbox creation date
Inbox update date