Bitable Tools
This document details the Bitable tools.
⚠️ Important Notes
- Empty rows in default table: When creating a bitable, the default table has empty records. Delete them before inserting data.
- Field types: Different field types have different value format requirements. Always query field types first.
- Batch limit: Maximum 500 records per operation
- Concurrency: Same table doesn't support concurrent writes. Call serially with 0.5-1s delay.
Tool List
| Tool | Function |
|---|---|
| feishu_bitable_app | Manage bitable (create, delete, copy) |
| feishu_bitable_app_table | Manage data tables |
| feishu_bitable_app_table_field | Manage fields |
| feishu_bitable_app_table_record | Manage records (CRUD, batch) |
| feishu_bitable_app_table_view | Manage views |
Resource Hierarchy
Bitable App (app_token)
└── Data Table (table_id)
├── Field (field_id)
├── Record (record_id)
└── View (view_id)Field Types and Value Formats
| type | Field Type | Value Format | Example |
|---|---|---|---|
| 1 | Text | String | "Hello" |
| 2 | Number | Number | 123 |
| 3 | Single Select | String | "Option1" |
| 4 | Multi Select | String Array | ["Option1", "Option2"] |
| 5 | Date | Millisecond Timestamp | 1674206443000 |
| 7 | Checkbox | Boolean | true |
| 11 | User | Object Array | [{id: "ou_xxx"}] |
| 13 | Phone | String | "13800138000" |
| 15 | URL | Object | {link: "url", text: "text"} |
| 17 | Attachment | Object Array | [{file_token: "xxx"}] |
Common Errors
| Error Code | Error Type | Solution |
|---|---|---|
| 1254064 | Date format error | Use millisecond timestamp, not seconds |
| 1254068 | URL format error | Use {link, text} object format |
| 1254066 | User field format error | Use [{id: "ou_xxx"}] format |
| 1254015 | Field type mismatch | Query field types first, construct values accordingly |
| 1254104 | Batch limit exceeded | Split into batches, max 500 per call |
| 1254291 | Concurrent conflict | Call serially, add 0.5-1s delay |
Usage Examples
Query Fields
json
{
"action": "list",
"app_token": "S404bxxxxx",
"table_id": "tblxxxxx"
}Insert Record
json
{
"action": "create",
"app_token": "S404bxxxxx",
"table_id": "tblxxxxx",
"fields": {
"Customer Name": "ByteDance",
"Owner": [{"id": "ou_xxx"}],
"Sign Date": 1674206443000,
"Status": "In Progress"
}
}Batch Import
json
{
"action": "batch_create",
"app_token": "S404bxxxxx",
"table_id": "tblxxxxx",
"records": [
{"fields": {"Customer Name": "Customer A", "Status": "In Progress"}},
{"fields": {"Customer Name": "Customer B", "Status": "Completed"}}
]
}Advanced Filtering
json
{
"action": "list",
"app_token": "S404bxxxxx",
"table_id": "tblxxxxx",
"filter": {
"conjunction": "and",
"conditions": [
{"field_name": "Status", "operator": "is", "value": ["In Progress"]},
{"field_name": "Sign Date", "operator": "isGreater", "value": ["ExactDate", "1672531200000"]}
]
}
}Filter Operators
| Operator | Description |
|---|---|
| is | Equals |
| isNot | Not equals |
| contains | Contains |
| doesNotContain | Does not contain |
| isEmpty | Is empty |
| isNotEmpty | Is not empty |
| isGreater | Greater than |
| isGreaterEqual | Greater than or equal |
| isLess | Less than |
| isLessEqual | Less than or equal |