Create table rows
curl --request POST \
--url https://api.getoneprofile.ai/tables/{table_id}/rows/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"after_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"before_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 1
}
'import requests
url = "https://api.getoneprofile.ai/tables/{table_id}/rows/"
payload = {
"after_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"before_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 1
}
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({
after_record_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
before_record_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
count: 1
})
};
fetch('https://api.getoneprofile.ai/tables/{table_id}/rows/', 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/{table_id}/rows/",
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([
'after_record_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'before_record_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'count' => 1
]),
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/{table_id}/rows/"
payload := strings.NewReader("{\n \"after_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"before_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 1\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/{table_id}/rows/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"after_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"before_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/tables/{table_id}/rows/")
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 \"after_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"before_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 1\n}"
response = http.request(request)
puts response.read_body{
"count": 123,
"rows": [
{
"cells": {},
"created_at": "2023-11-07T05:31:56Z",
"record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}table-rows
Create table rows
Append up to 1000 empty rows to the table (one by default) and request a SINGLE row-added recompute run scoped to all of them. The row cap is enforced atomically over the whole batch, so the append is all-or-nothing. Passing after_record_id or before_record_id instead inserts exactly one row directly below or above that row, touching no other row’s position. The run appears on the next active-runs poll; the response never carries a run ID, and a table with no formula columns discards the request at plan time.
POST
/
tables
/
{table_id}
/
rows
/
Create table rows
curl --request POST \
--url https://api.getoneprofile.ai/tables/{table_id}/rows/ \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"after_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"before_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 1
}
'import requests
url = "https://api.getoneprofile.ai/tables/{table_id}/rows/"
payload = {
"after_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"before_record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 1
}
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({
after_record_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
before_record_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
count: 1
})
};
fetch('https://api.getoneprofile.ai/tables/{table_id}/rows/', 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/{table_id}/rows/",
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([
'after_record_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'before_record_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'count' => 1
]),
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/{table_id}/rows/"
payload := strings.NewReader("{\n \"after_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"before_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 1\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/{table_id}/rows/")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"after_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"before_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/tables/{table_id}/rows/")
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 \"after_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"before_record_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 1\n}"
response = http.request(request)
puts response.read_body{
"count": 123,
"rows": [
{
"cells": {},
"created_at": "2023-11-07T05:31:56Z",
"record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
APIKeyHeaderHTTPBearer
Path Parameters
Body
application/json
Request body for the row create: how many empty rows, and where.
Without an anchor, rows are appended to the end of the table. With one, exactly one row is inserted directly above or below the anchor row.
Was this page helpful?