Create list
curl --request POST \
--url https://api.nuvia.ai/v1/tables/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"table_kind": "dataset",
"columns": [
{
"name": "<string>",
"key": "<string>",
"description": "<string>",
"is_nullable": true,
"is_unique": true,
"sample_values": [
"<string>"
]
}
]
}
'import requests
url = "https://api.nuvia.ai/v1/tables/list"
payload = {
"name": "<string>",
"description": "<string>",
"table_kind": "dataset",
"columns": [
{
"name": "<string>",
"key": "<string>",
"description": "<string>",
"is_nullable": True,
"is_unique": True,
"sample_values": ["<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({
name: '<string>',
description: '<string>',
table_kind: 'dataset',
columns: [
{
name: '<string>',
key: '<string>',
description: '<string>',
is_nullable: true,
is_unique: true,
sample_values: ['<string>']
}
]
})
};
fetch('https://api.nuvia.ai/v1/tables/list', 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/tables/list",
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>',
'description' => '<string>',
'table_kind' => 'dataset',
'columns' => [
[
'name' => '<string>',
'key' => '<string>',
'description' => '<string>',
'is_nullable' => true,
'is_unique' => true,
'sample_values' => [
'<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/tables/list"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"table_kind\": \"dataset\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"key\": \"<string>\",\n \"description\": \"<string>\",\n \"is_nullable\": true,\n \"is_unique\": true,\n \"sample_values\": [\n \"<string>\"\n ]\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/tables/list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"table_kind\": \"dataset\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"key\": \"<string>\",\n \"description\": \"<string>\",\n \"is_nullable\": true,\n \"is_unique\": true,\n \"sample_values\": [\n \"<string>\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/tables/list")
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 \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"table_kind\": \"dataset\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"key\": \"<string>\",\n \"description\": \"<string>\",\n \"is_nullable\": true,\n \"is_unique\": true,\n \"sample_values\": [\n \"<string>\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": {},
"name": "<string>",
"status": "PROCESSING",
"type": "DEFAULT",
"table_kind": "dataset",
"columns": [
{}
],
"stats": {},
"company": {
"_id": {},
"name": "<string>",
"channels": [
"WAP_AUTO_CLOSER"
],
"agent_flows": [
{
"_id": {},
"name": "<string>",
"url": "<string>",
"specialist_url": "<string>",
"type": "N8N"
}
],
"description": "<string>",
"status": "ACTIVE",
"domains": [
"<string>"
],
"site": "<string>",
"general_config": {},
"agent_builder_mcp_enabled": true,
"client_mcp_servers_enabled": true,
"auto_join_enabled": true,
"subscription": {},
"onboarding": {},
"attribution": {}
},
"description": "<string>",
"file_url": "<string>",
"object_type": "contact",
"file_metadata": {},
"import_errors": [
{}
],
"summary": "<string>",
"data": [
{}
],
"sync_key_column": "<string>",
"ranking_config": [
{}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}Tabelas e Listas
Create list
Creates a list (table_kind=list) to organize contacts or companies. Unlike a dataset, a list is not a data source: it’s a context around records that already exist.
POST
/
v1
/
tables
/
list
Create list
curl --request POST \
--url https://api.nuvia.ai/v1/tables/list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"table_kind": "dataset",
"columns": [
{
"name": "<string>",
"key": "<string>",
"description": "<string>",
"is_nullable": true,
"is_unique": true,
"sample_values": [
"<string>"
]
}
]
}
'import requests
url = "https://api.nuvia.ai/v1/tables/list"
payload = {
"name": "<string>",
"description": "<string>",
"table_kind": "dataset",
"columns": [
{
"name": "<string>",
"key": "<string>",
"description": "<string>",
"is_nullable": True,
"is_unique": True,
"sample_values": ["<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({
name: '<string>',
description: '<string>',
table_kind: 'dataset',
columns: [
{
name: '<string>',
key: '<string>',
description: '<string>',
is_nullable: true,
is_unique: true,
sample_values: ['<string>']
}
]
})
};
fetch('https://api.nuvia.ai/v1/tables/list', 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/tables/list",
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>',
'description' => '<string>',
'table_kind' => 'dataset',
'columns' => [
[
'name' => '<string>',
'key' => '<string>',
'description' => '<string>',
'is_nullable' => true,
'is_unique' => true,
'sample_values' => [
'<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/tables/list"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"table_kind\": \"dataset\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"key\": \"<string>\",\n \"description\": \"<string>\",\n \"is_nullable\": true,\n \"is_unique\": true,\n \"sample_values\": [\n \"<string>\"\n ]\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/tables/list")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"table_kind\": \"dataset\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"key\": \"<string>\",\n \"description\": \"<string>\",\n \"is_nullable\": true,\n \"is_unique\": true,\n \"sample_values\": [\n \"<string>\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nuvia.ai/v1/tables/list")
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 \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"table_kind\": \"dataset\",\n \"columns\": [\n {\n \"name\": \"<string>\",\n \"key\": \"<string>\",\n \"description\": \"<string>\",\n \"is_nullable\": true,\n \"is_unique\": true,\n \"sample_values\": [\n \"<string>\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": {},
"name": "<string>",
"status": "PROCESSING",
"type": "DEFAULT",
"table_kind": "dataset",
"columns": [
{}
],
"stats": {},
"company": {
"_id": {},
"name": "<string>",
"channels": [
"WAP_AUTO_CLOSER"
],
"agent_flows": [
{
"_id": {},
"name": "<string>",
"url": "<string>",
"specialist_url": "<string>",
"type": "N8N"
}
],
"description": "<string>",
"status": "ACTIVE",
"domains": [
"<string>"
],
"site": "<string>",
"general_config": {},
"agent_builder_mcp_enabled": true,
"client_mcp_servers_enabled": true,
"auto_join_enabled": true,
"subscription": {},
"onboarding": {},
"attribution": {}
},
"description": "<string>",
"file_url": "<string>",
"object_type": "contact",
"file_metadata": {},
"import_errors": [
{}
],
"summary": "<string>",
"data": [
{}
],
"sync_key_column": "<string>",
"ranking_config": [
{}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}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.
Body
application/json
List name
List description
Table type
Available options:
dataset, list Object type for lists (required if table_kind=list)
Available options:
contact, business List columns (for Attio-like lists)
Show child attributes
Show child attributes
Response
201 - application/json
Available options:
PROCESSING, READY, ERROR, PARTIAL Available options:
DEFAULT, FILE Available options:
dataset, list Show child attributes
Show child attributes
Available options:
contact, business Key of the business column used as the key in the upload sync (diff). Without it, the upload sync is rejected.
Ordered business ranking criteria. The sync materializes the result in the internal _score column (higher = better).