curl https://api.bottari.ai/v1/pages \
-X POST \
-H "Authorization: Bearer $BOTTARI_TOKEN" \
-H "Bottari-Version: 2026-03-11" \
-H "Content-Type: application/json" \
-d '{
"parent": {
"data_source_id": "exampleDb001"
},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "New order"
}
}
]
},
"Team": {
"select": {
"name": "Ops"
}
},
"Quantity": {
"number": 3
}
}
}'
{
"object": "page",
"id": "exampleRow01",
"created_time": "2026-01-15T02:30:00.000Z",
"last_edited_time": "2026-01-15T02:30:00.000Z",
"created_by": {
"object": "user",
"id": "22222222-2222-4222-8222-222222222222"
},
"last_edited_by": {
"object": "user",
"id": "22222222-2222-4222-8222-222222222222"
},
"in_trash": false,
"cover": null,
"icon": null,
"parent": {
"type": "data_source_id",
"data_source_id": "exampleDb001",
"database_id": "exampleDb001"
},
"is_archived": false,
"is_locked": false,
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [
{
"type": "text",
"text": {
"content": "New order",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "New order",
"href": null
}
]
},
"Team": {
"id": "exampleFld01",
"type": "select",
"select": {
"id": "exampleOpt01",
"name": "Ops",
"color": "default"
}
},
"Quantity": {
"id": "exampleFld02",
"type": "number",
"number": 3
}
},
"url": "https://app.bottari.ai/t/exampleTeam1/p/exampleRow01",
"public_url": null,
"request_id": "33333333-3333-4333-8333-333333333333"
}
{
"object": "error",
"status": 403,
"code": "restricted_resource",
"message": "Insufficient permissions for this endpoint.",
"request_id": "33333333-3333-4333-8333-333333333333"
}
{
"object": "error",
"status": 404,
"code": "object_not_found",
"message": "Could not find data_source with ID: exampleDb001. Make sure the relevant pages and databases are shared with your integration \"Order sync\".",
"request_id": "33333333-3333-4333-8333-333333333333"
}
Pages
Create a row
Create a row in a connected database. Requires Insert content.
POST
/
v1
/
pages
curl https://api.bottari.ai/v1/pages \
-X POST \
-H "Authorization: Bearer $BOTTARI_TOKEN" \
-H "Bottari-Version: 2026-03-11" \
-H "Content-Type: application/json" \
-d '{
"parent": {
"data_source_id": "exampleDb001"
},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "New order"
}
}
]
},
"Team": {
"select": {
"name": "Ops"
}
},
"Quantity": {
"number": 3
}
}
}'
{
"object": "page",
"id": "exampleRow01",
"created_time": "2026-01-15T02:30:00.000Z",
"last_edited_time": "2026-01-15T02:30:00.000Z",
"created_by": {
"object": "user",
"id": "22222222-2222-4222-8222-222222222222"
},
"last_edited_by": {
"object": "user",
"id": "22222222-2222-4222-8222-222222222222"
},
"in_trash": false,
"cover": null,
"icon": null,
"parent": {
"type": "data_source_id",
"data_source_id": "exampleDb001",
"database_id": "exampleDb001"
},
"is_archived": false,
"is_locked": false,
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [
{
"type": "text",
"text": {
"content": "New order",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "New order",
"href": null
}
]
},
"Team": {
"id": "exampleFld01",
"type": "select",
"select": {
"id": "exampleOpt01",
"name": "Ops",
"color": "default"
}
},
"Quantity": {
"id": "exampleFld02",
"type": "number",
"number": 3
}
},
"url": "https://app.bottari.ai/t/exampleTeam1/p/exampleRow01",
"public_url": null,
"request_id": "33333333-3333-4333-8333-333333333333"
}
{
"object": "error",
"status": 403,
"code": "restricted_resource",
"message": "Insufficient permissions for this endpoint.",
"request_id": "33333333-3333-4333-8333-333333333333"
}
{
"object": "error",
"status": 404,
"code": "object_not_found",
"message": "Could not find data_source with ID: exampleDb001. Make sure the relevant pages and databases are shared with your integration \"Order sync\".",
"request_id": "33333333-3333-4333-8333-333333333333"
}
Creates a row in a connected database. Requires Insert content. The creator and last editor are the integration bot.
Page content can’t be written, and subpages under a row can’t be created.
See Common rules for shared errors.
string
Optional. Only
2026-03-11 is accepted. Without it, the current version is used. A different value returns 400.object
required
{ "data_source_id": "..." } or { "database_id": "..." }. Both take the same ID. page_id and workspace return 400.object
Values keyed by property name or ID. See Property values. Without a title, the title is empty. Without
status, the default option is used.object | null
Accepts
emoji, custom_emoji (from this team), and icon (name and color). Icon names aren’t checked. external returns 400.object | null
Accepts
external (an http(s) URL).object
{ "mode": "default" } or { "mode": "silent" }. Only the format is checked; it doesn’t change behavior.boolean
Accepted and ignored. A new row is never in the trash.
Keys that aren’t accepted
| Key | Behavior |
|---|---|
children, content | An empty array is accepted. With content, returns 400 <key> is not supported by this server. |
markdown, markdown_version, allow_async | 400 ... is not supported by this server. |
template | { "type": "none" } is accepted. Other values return 400. |
position | 400. It can’t be used when the parent is a database. |
archived, unknown keys | 400 body failed validation: body.<key> should be not present ... |
Response
The new row’spage object. The new row appears in queries right away.
Errors
| Status | code | Cause |
|---|---|---|
| 400 | validation_error | parent is missing or a value is wrong. A trashed database returns 400 Can't edit block that is archived... |
| 403 | restricted_resource | Insert content is off, the database has a task agent attached, or the team reached its block limit. |
| 404 | object_not_found | The database isn’t connected, or an ID in a people or relation value can’t be found. |
curl https://api.bottari.ai/v1/pages \
-X POST \
-H "Authorization: Bearer $BOTTARI_TOKEN" \
-H "Bottari-Version: 2026-03-11" \
-H "Content-Type: application/json" \
-d '{
"parent": {
"data_source_id": "exampleDb001"
},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "New order"
}
}
]
},
"Team": {
"select": {
"name": "Ops"
}
},
"Quantity": {
"number": 3
}
}
}'
{
"object": "page",
"id": "exampleRow01",
"created_time": "2026-01-15T02:30:00.000Z",
"last_edited_time": "2026-01-15T02:30:00.000Z",
"created_by": {
"object": "user",
"id": "22222222-2222-4222-8222-222222222222"
},
"last_edited_by": {
"object": "user",
"id": "22222222-2222-4222-8222-222222222222"
},
"in_trash": false,
"cover": null,
"icon": null,
"parent": {
"type": "data_source_id",
"data_source_id": "exampleDb001",
"database_id": "exampleDb001"
},
"is_archived": false,
"is_locked": false,
"properties": {
"Name": {
"id": "title",
"type": "title",
"title": [
{
"type": "text",
"text": {
"content": "New order",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "New order",
"href": null
}
]
},
"Team": {
"id": "exampleFld01",
"type": "select",
"select": {
"id": "exampleOpt01",
"name": "Ops",
"color": "default"
}
},
"Quantity": {
"id": "exampleFld02",
"type": "number",
"number": 3
}
},
"url": "https://app.bottari.ai/t/exampleTeam1/p/exampleRow01",
"public_url": null,
"request_id": "33333333-3333-4333-8333-333333333333"
}
{
"object": "error",
"status": 403,
"code": "restricted_resource",
"message": "Insufficient permissions for this endpoint.",
"request_id": "33333333-3333-4333-8333-333333333333"
}
{
"object": "error",
"status": 404,
"code": "object_not_found",
"message": "Could not find data_source with ID: exampleDb001. Make sure the relevant pages and databases are shared with your integration \"Order sync\".",
"request_id": "33333333-3333-4333-8333-333333333333"
}