# Lark API Limitations - Dashboard SDK
**Last Updated**: 2025-12-09
---
## Critical Limitation: Dashboard Views Not Supported via API
### The Issue
The `lark-dashboard-sdk` was designed with the expectation that Lark's Bitable API would support dashboard block creation via:
```
POST /bitable/v1/apps/{appToken}/dashboard/blocks
```
**This endpoint does not exist in the public Lark Open API.**
### API Test Results
```
Error: 404 page not found
POST /bitable/v1/apps/IZ3cbKvLsakfGZsZgjvl38ifgwg/dashboard/blocks
```
### What IS Supported via API
| API Endpoint | Supported | Notes |
|--------------|-----------|-------|
| Create/List Tables | Yes | Full CRUD operations |
| Create/List Records | Yes | Full CRUD operations |
| Create/List Fields | Yes | Full CRUD operations |
| Create Views | **Partial** | Only grid, kanban, gallery, gantt, form |
| Create Dashboard Views | **No** | Must use UI |
| Create Dashboard Blocks | **No** | Must use UI or aPaaS |
### Supported View Types via `lark_create_view`
```typescript
type ViewType = 'grid' | 'kanban' | 'gallery' | 'gantt' | 'form';
// 'dashboard' is NOT supported
```
---
## Workarounds
### Option 1: Manual UI Creation (Recommended)
Create the dashboard view manually in the Lark/Feishu UI:
1. Open your base
2. Click "+" to add a new view
3. Select "Dashboard"
4. Add charts and metrics using the visual editor
See: `docs/SENTIMENT_DASHBOARD_MANUAL_GUIDE.md`
### Option 2: aPaaS Visual Editor
Use the aPaaS platform's visual editor to create dashboard components:
1. Export chart configurations as JSON
2. Import into aPaaS visual editor
3. Connect to your data source
See: `config/apaas-charts/DEPLOYMENT_GUIDE.md`
### Option 3: VChart Component
Embed charts directly in your application using VChart:
1. Use the React VChart component
2. Fetch data via MCP tools
3. Render charts in your app
See: `src/vchart-component/demo.html`
---
## SDK Components Affected
### Components That DO Work
| Component | Status | Usage |
|-----------|--------|-------|
| `LarkDashboardClient` | Works | Data fetching, record operations |
| `ChartBlockBuilder` | Works | Builds chart config (for aPaaS/VChart) |
| `MetricsBlockBuilder` | Works | Builds metrics config (for aPaaS/VChart) |
| `TextBlockBuilder` | Works | Builds text config |
| `ViewBlockBuilder` | Works | Builds view config |
| MCP Integration | Works | Via lark-bitable MCP server |
### Components That DON'T Work
| Component | Status | Reason |
|-----------|--------|--------|
| `DashboardApi.createBlock()` | 404 Error | API endpoint doesn't exist |
| `DashboardApi.updateBlock()` | 404 Error | API endpoint doesn't exist |
| `DashboardApi.deleteBlock()` | 404 Error | API endpoint doesn't exist |
| `client.createDashboard()` | 404 Error | Calls non-existent API |
---
## Recommended Approach
1. **Use MCP tools** for all data operations (records, fields, tables)
2. **Create dashboards manually** in the Lark UI
3. **Use VChart** for custom application integrations
4. **Export to aPaaS** for enterprise deployments
---
## API Documentation References
- [Lark Open Platform - Bitable Overview](https://open.larkoffice.com/document/server-docs/docs/bitable-v1/bitable-overview)
- [Feishu Open Platform - Base API](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/search)
- [Official Lark MCP Server](https://github.com/larksuite/lark-openapi-mcp)
---
## Future Considerations
If Lark adds dashboard block APIs in the future, update:
1. `src/api/dashboard-api.ts` - Verify endpoint format
2. `src/client.ts` - Update createDashboard method
3. Test with a valid dashboard view ID
---
*This document clarifies the current limitations of the Lark Open API as of December 2025.*