curl https://api.bottari.ai/v1/data_sources/exampleDb001 \
-H "Authorization: Bearer $BOTTARI_TOKEN" \
-H "Bottari-Version: 2026-03-11"
{
"object": "data_source",
"id": "exampleDb001",
"created_time": "2026-01-10T01:00:00.000Z",
"last_edited_time": "2026-01-15T03:10:00.000Z",
"created_by": {
"object": "user",
"id": "11111111-1111-4111-8111-111111111111"
},
"last_edited_by": {
"object": "user",
"id": "11111111-1111-4111-8111-111111111111"
},
"in_trash": false,
"properties": {
"Name": {
"id": "title",
"name": "Name",
"description": null,
"type": "title",
"title": {}
},
"Team": {
"id": "exampleFld01",
"name": "Team",
"description": null,
"type": "select",
"select": {
"options": [
{
"id": "exampleOpt01",
"name": "Ops",
"color": "blue",
"description": null
}
]
}
}
},
"parent": {
"type": "database_id",
"database_id": "exampleDb001"
},
"database_parent": {
"type": "workspace",
"workspace": true
},
"is_inline": false,
"database_type": null,
"title": [
{
"type": "text",
"text": {
"content": "Orders",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Orders",
"href": null
}
],
"description": [],
"icon": null,
"cover": null,
"url": "https://app.bottari.ai/t/exampleTeam1/db/exampleDb001",
"public_url": null,
"request_id": "33333333-3333-4333-8333-333333333333"
}
Databases and data sources
Retrieve a data source
Read a database’s property definitions.
GET
/
v1
/
data_sources
/
{id}
curl https://api.bottari.ai/v1/data_sources/exampleDb001 \
-H "Authorization: Bearer $BOTTARI_TOKEN" \
-H "Bottari-Version: 2026-03-11"
{
"object": "data_source",
"id": "exampleDb001",
"created_time": "2026-01-10T01:00:00.000Z",
"last_edited_time": "2026-01-15T03:10:00.000Z",
"created_by": {
"object": "user",
"id": "11111111-1111-4111-8111-111111111111"
},
"last_edited_by": {
"object": "user",
"id": "11111111-1111-4111-8111-111111111111"
},
"in_trash": false,
"properties": {
"Name": {
"id": "title",
"name": "Name",
"description": null,
"type": "title",
"title": {}
},
"Team": {
"id": "exampleFld01",
"name": "Team",
"description": null,
"type": "select",
"select": {
"options": [
{
"id": "exampleOpt01",
"name": "Ops",
"color": "blue",
"description": null
}
]
}
}
},
"parent": {
"type": "database_id",
"database_id": "exampleDb001"
},
"database_parent": {
"type": "workspace",
"workspace": true
},
"is_inline": false,
"database_type": null,
"title": [
{
"type": "text",
"text": {
"content": "Orders",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Orders",
"href": null
}
],
"description": [],
"icon": null,
"cover": null,
"url": "https://app.bottari.ai/t/exampleTeam1/db/exampleDb001",
"public_url": null,
"request_id": "33333333-3333-4333-8333-333333333333"
}
Reads property names, IDs, types, and options. The data source ID is the same as the database ID.
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.string
required
The data source ID. Use the database ID.
object
Property definitions keyed by property name. Each has
id, name, description, type, and type-specific settings.These properties are left out:- Session, linked pages, and PR properties
- Relation properties pointing at a database that isn’t connected, and rollups that use them
object
{ "type": "database_id", "database_id": "..." }.object
The parent of the database.
object[]
The name.
boolean
true if the database or a document above it is in the trash.Property definitions
| Type | Settings |
|---|---|
number | format |
select, multi_select | options: id, name, color, description |
status | options, default_option, groups |
unique_id | prefix |
formula | expression. Properties appear by name, such as prop("Notes"). |
relation | database_id, data_source_id, limit, type (single_property or dual_property) |
rollup | rollup_property_name, relation_property_name, rollup_property_id, relation_property_id, function |
Errors
| Status | code | Cause |
|---|---|---|
| 404 | object_not_found | The database doesn’t exist or isn’t connected. |
curl https://api.bottari.ai/v1/data_sources/exampleDb001 \
-H "Authorization: Bearer $BOTTARI_TOKEN" \
-H "Bottari-Version: 2026-03-11"
{
"object": "data_source",
"id": "exampleDb001",
"created_time": "2026-01-10T01:00:00.000Z",
"last_edited_time": "2026-01-15T03:10:00.000Z",
"created_by": {
"object": "user",
"id": "11111111-1111-4111-8111-111111111111"
},
"last_edited_by": {
"object": "user",
"id": "11111111-1111-4111-8111-111111111111"
},
"in_trash": false,
"properties": {
"Name": {
"id": "title",
"name": "Name",
"description": null,
"type": "title",
"title": {}
},
"Team": {
"id": "exampleFld01",
"name": "Team",
"description": null,
"type": "select",
"select": {
"options": [
{
"id": "exampleOpt01",
"name": "Ops",
"color": "blue",
"description": null
}
]
}
}
},
"parent": {
"type": "database_id",
"database_id": "exampleDb001"
},
"database_parent": {
"type": "workspace",
"workspace": true
},
"is_inline": false,
"database_type": null,
"title": [
{
"type": "text",
"text": {
"content": "Orders",
"link": null
},
"annotations": {
"bold": false,
"italic": false,
"strikethrough": false,
"underline": false,
"code": false,
"color": "default"
},
"plain_text": "Orders",
"href": null
}
],
"description": [],
"icon": null,
"cover": null,
"url": "https://app.bottari.ai/t/exampleTeam1/db/exampleDb001",
"public_url": null,
"request_id": "33333333-3333-4333-8333-333333333333"
}