curl --request POST \
--url https://api.getoneprofile.ai/tables/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"description": "<string>",
"folder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/tables/"
payload = {
"description": "<string>",
"folder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: '<string>',
folder_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>'
})
};
fetch('https://api.getoneprofile.ai/tables/', 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.getoneprofile.ai/tables/",
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([
'description' => '<string>',
'folder_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.getoneprofile.ai/tables/"
payload := strings.NewReader("{\n \"description\": \"<string>\",\n \"folder_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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.post("https://api.getoneprofile.ai/tables/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"<string>\",\n \"folder_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/tables/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"<string>\",\n \"folder_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"auto_run": true,
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"keep_existing_results": true,
"name": "<string>",
"row_count": 123,
"updated_at": "2023-11-07T05:31:56Z",
"ai_made": false,
"archived_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"folder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folder_path": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"former_tags": [
"<string>"
],
"is_favorite": false,
"last_viewed_at": "2023-11-07T05:31:56Z",
"owner_display_name": "<string>",
"owner_user_id": "<string>",
"shared_as_template": false
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Create a table
Create a table with its starter canvas: one manual text column (New column) and a screenful of empty rows. One request transaction, atomic; the default column is manual, so no recompute run is requested. Leave the name out to get the next free name: “New table”, then “New table (2)” and onward. The person creating it owns it, and folder_id makes it inside that folder.
curl --request POST \
--url https://api.getoneprofile.ai/tables/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"description": "<string>",
"folder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
'import requests
url = "https://api.getoneprofile.ai/tables/"
payload = {
"description": "<string>",
"folder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: '<string>',
folder_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>'
})
};
fetch('https://api.getoneprofile.ai/tables/', 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.getoneprofile.ai/tables/",
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([
'description' => '<string>',
'folder_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.getoneprofile.ai/tables/"
payload := strings.NewReader("{\n \"description\": \"<string>\",\n \"folder_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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.post("https://api.getoneprofile.ai/tables/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"<string>\",\n \"folder_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/tables/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"<string>\",\n \"folder_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"auto_run": true,
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"keep_existing_results": true,
"name": "<string>",
"row_count": 123,
"updated_at": "2023-11-07T05:31:56Z",
"ai_made": false,
"archived_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"folder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folder_path": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
}
],
"former_tags": [
"<string>"
],
"is_favorite": false,
"last_viewed_at": "2023-11-07T05:31:56Z",
"owner_display_name": "<string>",
"owner_user_id": "<string>",
"shared_as_template": false
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Body
Request body for creating a table.
1 - 2000The folder to make it in, as when somebody makes a table while looking inside one. Leave it out for the top level of the Tables list.
Table name, unique per organisation. Leave it out for a blank table: the server names it "New table", or "New table (2)" and onward when that name is taken, checked against every table in the workspace.
1 - 255Response
Successful Response
A table definition with its authoritative row counter.
Whether data changes request recompute runs by themselves. Column-definition changes always recompute.
Whether a manual run-all only fills the errored, empty and stale cells rather than recomputing every cell in scope.
Exact row count, maintained atomically by row mutations.
Whether the AI Assistant created this table through a granted action. The owner is still the person who approved it.
When somebody archived it; null for a table on the list. An archived table is left out of All, its folder, Favorites and Recent, and still found by search and opened as before.
When the table was moved to trash; null for a live table.
The folder it sits in; null for the top level.
The folders on the way to it, from the top level down; empty at the top level. What the list says under a search result and the table's own breadcrumb shows.
Show child attributes
Show child attributes
The tags it carried when folders replaced tags, when it carried more than one and so waits for somebody to file it. Empty once it is filed.
Whether the CALLING USER starred this table. Per-user, so a teammate may see a different value. Always false for API-key callers, which have no user to have preferences.
When the calling user last opened this table; null means never.
The owner's name, resolved for display. Null when there is no owner or the account has no name to show.
Who created the table. Null for tables older than this field and for anything a background job created. NOT an access control: every member of the organisation can open and edit every table.
Whether this table's shape is readable by anyone with the link, with no sign-in. Never its rows.
Was this page helpful?