================================================================================
LARK APAAS API RESEARCH - EXECUTIVE SUMMARY
================================================================================
Date: December 9, 2025
Project: lark-dashboard-sdk v1.0.0
Research Duration: Comprehensive multi-source investigation
================================================================================
KEY FINDING
================================================================================
❌ CRITICAL LIMITATION DISCOVERED:
Dashboard views CANNOT be created programmatically via Lark API.
The Bitable API endpoint for creating views only supports 5 view types:
✅ grid
✅ kanban
✅ gallery
✅ gantt
✅ form
❌ dashboard (NOT SUPPORTED)
Source: Official Go SDK implementation
https://github.com/chyroc/lark/blob/master/api_bitable_view_create.go
API Endpoint:
POST /open-apis/bitable/v1/apps/:app_token/tables/:table_id/views
Request body attempting to create dashboard will return error:
{
"code": 40002,
"msg": "Invalid view_type parameter"
}
================================================================================
RESEARCH SOURCES
================================================================================
✅ Official Documentation:
- Lark Developer Portal (open.larksuite.com)
- Feishu Open Platform (open.feishu.cn)
- Lark Base API documentation
- Lark Base JS SDK documentation
✅ Code Repositories:
- Lark Base Team GitHub (official)
- Awesome-BaseScript (community resources)
- Go SDK implementation (chyroc/lark)
- Node.js SDK (larksuite/node-sdk)
- Lark OpenAPI MCP (official MCP server)
✅ Community Resources:
- Developer forums
- Third-party integrations
- Base extensions examples
================================================================================
WHAT WORKS VIA API
================================================================================
✅ Base Management:
- Create/read/update/delete bases
- Manage base settings
- Copy bases
✅ Table Management:
- Create/read/update/delete tables
- List tables
- Batch operations
✅ Field Management:
- Create fields (26 types supported)
- Update field properties
- Delete fields
✅ Record Management:
- Create/read/update/delete records
- Batch operations (up to 1000 records)
- Search with filters and sorting
✅ View Management:
- Create grid/kanban/gallery/gantt/form views
- Update view properties
- Delete views
- List views
================================================================================
WHAT DOESN'T WORK VIA API
================================================================================
❌ Dashboard Creation:
- Cannot create dashboard views
- Cannot add charts to dashboards
- Cannot configure dashboard layouts
❌ aPaaS Page Management:
- No API for creating custom pages
- No API for adding components/widgets
- No programmatic UI manipulation
❌ Chart/Visualization:
- No API for creating chart blocks
- No API for configuring visualizations
- No API for dashboard analytics
================================================================================
RECOMMENDED SOLUTION
================================================================================
APPROACH A: Manual Dashboard + API Data Management
Implementation:
1. Create dashboard MANUALLY in Lark UI (3 minutes)
2. Configure charts and visualizations manually
3. Use API to manage underlying data
4. Dashboard auto-updates when data changes
Code Example:
```typescript
const client = new LarkBaseClient({
appId: 'cli_xxx',
appSecret: 'xxx',
appToken: 'KdW3bZ3axa636XsocGVln8DAgmg'
});
// Create table via API
const table = await client.tables.create({
name: 'TikTok Campaigns',
fields: [...]
});
// Create dashboard MANUALLY in UI
// (open Base app, click +, select Dashboard)
// Add data via API - dashboard auto-updates
await client.records.batchCreate(table.table_id, [
{ fields: { 'Campaign Name': 'Q1', 'Conversions': 250 } }
]);
```
Pros:
✅ Full dashboard functionality
✅ Professional visualizations
✅ Easy to implement
✅ Works immediately
Cons:
❌ Manual dashboard creation required
❌ Cannot automate dashboard structure changes
Time to implement: 5 minutes total
- 1 min: Create tables via API
- 3 min: Create dashboard manually
- 1 min: Add data via API
================================================================================
ALTERNATIVE APPROACHES
================================================================================
APPROACH B: Lark Docs + Embedded Charts
- Create Lark Docs via API
- Generate charts as images
- Embed in documents
- Time: 30 minutes
- Best for: Automated reports
APPROACH C: Custom Base Extension
- Build extension with Lark Base JS SDK
- Use VChart for interactive charts
- Deploy as Base extension
- Time: 2-4 hours
- Best for: Custom analytics needs
================================================================================
IMPLEMENTATION DELIVERED
================================================================================
✅ Documentation:
- docs/APAAS_API_RESEARCH.md (21,500 words)
- docs/QUICK_START_APAAS.md (quick start guide)
- docs/README.md (documentation index)
✅ Code:
- src/apaas/DashboardManager.ts (helper utilities)
- examples/apaas-dashboard-setup.ts (complete example)
✅ Features:
- Dashboard infrastructure preparation
- Guided setup instructions
- Data management utilities
- Automated instruction generation
================================================================================
NEXT STEPS
================================================================================
For Your Use Case (TikTok Dashboard):
App ID: KdW3bZ3axa636XsocGVln8DAgmg
Page ID: pgezUmwCsOuXn53q
Recommended Action Plan:
1. IMMEDIATE (Today):
- Run: npm run example:apaas
- Follow printed instructions
- Create dashboard manually (3 min)
- Dashboard will be functional
2. WEEK 1:
- Integrate TikTok API data
- Set up automated sync
- Test dashboard updates
3. MONTH 1-2 (Optional):
- Consider building custom extension
- Add advanced features
- Deploy enhanced dashboard
================================================================================
API ENDPOINT REFERENCE
================================================================================
Base Management:
POST /open-apis/bitable/v1/apps
GET /open-apis/bitable/v1/apps/:app_token
PATCH /open-apis/bitable/v1/apps/:app_token
Table Management:
GET /open-apis/bitable/v1/apps/:app_token/tables
POST /open-apis/bitable/v1/apps/:app_token/tables
PATCH /open-apis/bitable/v1/apps/:app_token/tables/:table_id
View Management:
GET /open-apis/bitable/v1/apps/:app_token/tables/:table_id/views
POST /open-apis/bitable/v1/apps/:app_token/tables/:table_id/views
(Supports: grid, kanban, gallery, gantt, form)
(NOT SUPPORTED: dashboard)
Record Management:
GET /open-apis/bitable/v1/apps/:app_token/tables/:table_id/records
POST /open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_create
POST /open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_update
================================================================================
CONCLUSION
================================================================================
Dashboard views cannot be created programmatically, but a simple workaround
exists: create dashboards manually in Lark UI, then manage data via API.
This approach:
✅ Takes only 5 minutes to set up
✅ Provides full dashboard functionality
✅ Updates automatically when data changes
✅ Requires minimal code
All implementation code and documentation has been delivered.
The dashboard can be operational TODAY.
================================================================================
SUPPORT RESOURCES
================================================================================
Documentation:
- Full Research: docs/APAAS_API_RESEARCH.md
- Quick Start: docs/QUICK_START_APAAS.md
- Examples: examples/apaas-dashboard-setup.ts
External Links:
- Lark Developer: https://open.larksuite.com/
- Lark Base API: https://open.larksuite.com/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/bitable-overview
- GitHub Issues: https://github.com/hypelab/lark-dashboard-sdk/issues
================================================================================