Description
n8n-nodes-feishu-api-en
This project is forked from @zhgqthomas/n8n-nodes-feishu-lark → @SealinGp/n8n-nodes-feishu-api → . Thanks to the original authors for their open-source contribution. This fork adds missing English translations on top of necessary refactorings for proper multilingual operation.
—
Installation
Add in n8n environment:
N8NDEFAULTLOCALE=en
In n8n Settings → Community Nodes, enter:
n8n-nodes-feishu-api-en
—
Credentials
Tenant Access Token (App Identity)
Select Lark Tenant Token API and fill in App ID and App Secret from the Feishu app console.
User Access Token (OAuth2)
Select Lark OAuth2 API, fill in App ID (Client ID) and App Secret (Client Secret). Configure the generated OAuth Redirect URL in the Feishu app console under Security Settings → Redirect URL, and add the required scopes (e.g. base:app:create,offline_access).
> Enable offline_access so n8n can auto-refresh expired access tokens.
—
Triggers
- WebSocket (recommended, Feishu China only): Add a
Lark Triggernode with aLark Tenant Token APIcredential. - Webhook (Lark international): Use
Parse Webhook Messageoperation together with n8n’sWebhook+Respond to Webhooknodes.
—
Supported Feishu APIs
Message
| Operation | API |
|———–|—–|
| Send | POST /open-apis/im/v1/messages |
| Batch Send | POST /open-apis/im/v1/batch_messages |
| Reply | POST /open-apis/im/v1/messages/:message_id/reply |
| Edit | PUT /open-apis/im/v1/messages/:message_id |
| Forward | POST /open-apis/im/v1/messages/:message_id/forward |
| Recall | DELETE /open-apis/im/v1/messages/:message_id |
| Get Content Info | GET /open-apis/im/v1/messages/:message_id |
| Get Content Resource | GET /open-apis/im/v1/messages/:messageid/resources/:filekey |
| Parse Content | (local parsing, no dedicated endpoint) |
| Upload Image | POST /open-apis/im/v1/images |
| Download Image | GET /open-apis/im/v1/images/:image_key |
| Upload File | POST /open-apis/im/v1/files |
| Download File | GET /open-apis/im/v1/files/:file_key |
| Send Limited Card | POST /open-apis/ephemeral/v1/send |
| Update Card | PUT /open-apis/im/v1/messages/:message_id |
| Delete Limited Card | POST /open-apis/ephemeral/v1/delete |
| Update Interactive Card | POST /open-apis/interactive/v1/card/update |
| Send and Wait | POST /open-apis/im/v1/messages |
| Send Stream Message | POST /open-apis/im/v1/messages |
| Parse Webhook Message | (local parsing, no dedicated endpoint) |
Document
| Operation | API |
|———–|—–|
| Create | POST /open-apis/docx/v1/documents |
| Get Info | GET /open-apis/docx/v1/documents/:document_id |
| Get Raw Content | GET /open-apis/docx/v1/documents/:documentid/rawcontent |
| Get Block List | GET /open-apis/docx/v1/documents/:document_id/blocks |
| Create Block | POST /open-apis/docx/v1/documents/:documentid/blocks/:blockid/children |
| Create Nested Block | POST /open-apis/docx/v1/documents/:documentid/blocks/:blockid/descendant |
| Update Block | PATCH /open-apis/docx/v1/documents/:documentid/blocks/:blockid |
| Get Block | GET /open-apis/docx/v1/documents/:documentid/blocks/:blockid |
| Delete Block | DELETE /open-apis/docx/v1/documents/:documentid/blocks/:blockid/children/batch_delete |
| Markdown/HTML Convert to Block | POST /open-apis/docx/v1/documents/blocks/convert |
Space (Drive)
| Operation | API |
|———–|—–|
| Create Folder | POST /open-apis/drive/v1/files/create_folder |
| Delete File or Folder | DELETE /open-apis/drive/v1/files/:file_token |
| Get File List | GET /open-apis/drive/v1/files |
| Search Files | POST /open-apis/suite/docs-api/search/object |
| Upload File | POST /open-apis/drive/v1/files/upload_all |
| Upload Media | POST /open-apis/drive/v1/medias/upload_all |
| Download Media | GET /open-apis/drive/v1/medias/:file_token/download |
| Get Media Temp Download Link | POST /open-apis/drive/v1/medias/batchgettmpdownloadurl |
Wiki Spaces
| Operation | API |
|———–|—–|
| Get Space List | GET /open-apis/wiki/v2/spaces |
| Get Space Info | GET /open-apis/wiki/v2/spaces/:space_id |
| Update Space Setting | PUT /open-apis/wiki/v2/spaces/:space_id/setting |
| Get Members | GET /open-apis/wiki/v2/spaces/:space_id/members |
| Add Member | POST /open-apis/wiki/v2/spaces/:space_id/members |
| Delete Member | DELETE /open-apis/wiki/v2/spaces/:spaceid/members/:memberid |
| Get Node Info | GET /open-apis/wiki/v2/spaces/get_node |
| Get Child Nodes | GET /open-apis/wiki/v2/spaces/:space_id/nodes |
| Create Node | POST /open-apis/wiki/v2/spaces/:space_id/nodes |
| Copy Node | POST /open-apis/wiki/v2/spaces/:spaceid/nodes/:nodetoken/copy |
| Move Node | POST /open-apis/wiki/v2/spaces/:spaceid/nodes/:nodetoken/move |
| Update Node Title | PUT /open-apis/wiki/v2/spaces/:spaceid/nodes/:nodetoken/update_title |
Base (Bitable)
| Operation | API |
|———–|—–|
| Create App | POST /open-apis/bitable/v1/apps |
| Copy App | POST /open-apis/bitable/v1/apps/:app_token/copy |
| Get App Info | GET /open-apis/bitable/v1/apps/:app_token |
| Update App Info | PUT /open-apis/bitable/v1/apps/:app_token |
| Create Table | POST /open-apis/bitable/v1/apps/:app_token/tables |
| Batch Create Tables | POST /open-apis/bitable/v1/apps/:apptoken/tables/batchcreate |
| Update Table | PUT /open-apis/bitable/v1/apps/:apptoken/tables/:tableid |
| Get Tables | GET /open-apis/bitable/v1/apps/:app_token/tables |
| Delete Table | DELETE /open-apis/bitable/v1/apps/:apptoken/tables/:tableid |
| Batch Delete Tables | POST /open-apis/bitable/v1/apps/:apptoken/tables/batchdelete |
| Create View | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/views |
| Update View | PUT /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/views/:view_id |
| Get Views | GET /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/views |
| Get View Info | GET /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/views/:view_id |
| Delete View | DELETE /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/views/:view_id |
| Create Record | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records |
| Update Record | PUT /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/:record_id |
| Search Records | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/search |
| Get Records | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/batch_get |
| Delete Record | DELETE /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/:record_id |
| Batch Create Records | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/batch_create |
| Batch Update Records | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/batch_update |
| Batch Delete Records | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/records/batch_delete |
| Create Field | POST /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/fields |
| Update Field | PUT /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/fields/:field_id |
| Get Fields | GET /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/fields |
| Delete Field | DELETE /open-apis/bitable/v1/apps/:apptoken/tables/:tableid/fields/:field_id |
| Create Role | POST /open-apis/bitable/v1/apps/:app_token/roles |
| Update Role | PUT /open-apis/bitable/v1/apps/:apptoken/roles/:roleid |
| Get Roles | GET /open-apis/bitable/v1/apps/:app_token/roles |
| Delete Role | DELETE /open-apis/bitable/v1/apps/:apptoken/roles/:roleid |
| Create Role Member | POST /open-apis/bitable/v1/apps/:apptoken/roles/:roleid/members |
| Batch Create Role Members | POST /open-apis/bitable/v1/apps/:apptoken/roles/:roleid/members/batch_create |
| Get Role Members | GET /open-apis/bitable/v1/apps/:apptoken/roles/:roleid/members |
| Delete Role Member | DELETE /open-apis/bitable/v1/apps/:apptoken/roles/:roleid/members/:member_id |
| Batch Delete Role Members | POST /open-apis/bitable/v1/apps/:apptoken/roles/:roleid/members/batch_delete |
Spreadsheet
| Operation | API |
|———–|—–|
| Create | POST /open-apis/sheets/v3/spreadsheets |
| Update | PUT /open-apis/sheets/v3/spreadsheets/:spreadsheet_id |
| Get Info | GET /open-apis/sheets/v3/spreadsheets/:spreadsheet_id |
| Create Sheet | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/sheetsbatch_update |
| Copy Sheet | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/sheetsbatch_update |
| Delete Sheet | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/sheetsbatch_update |
| Update Sheet | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/sheetsbatch_update |
| Get Sheet List | GET /open-apis/sheets/v3/spreadsheets/:spreadsheet_id/sheets/query |
| Get Sheet Info | GET /open-apis/sheets/v3/spreadsheets/:spreadsheetid/sheets/:sheetid |
| Create Dimension | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/dimensionrange |
| Insert Dimension | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/insertdimension_range |
| Update Dimension | PUT /open-apis/sheets/v2/spreadsheets/:spreadsheetid/dimensionrange |
| Move Dimension | POST /open-apis/sheets/v3/spreadsheets/:spreadsheetid/sheets/:sheetid/move_dimension |
| Delete Dimension | DELETE /open-apis/sheets/v2/spreadsheets/:spreadsheetid/dimensionrange |
| Merge Cells | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/mergecells |
| Split Cells | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/unmergecells |
| Find Cells | POST /open-apis/sheets/v3/spreadsheets/:spreadsheetid/sheets/:sheetid/find |
| Replace Cells | POST /open-apis/sheets/v3/spreadsheets/:spreadsheetid/sheets/:sheetid/replace |
| Set Cell Style | PUT /open-apis/sheets/v2/spreadsheets/:spreadsheet_id/style |
| Insert Values | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/valuesprepend |
| Append Values | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/valuesappend |
| Insert Image | POST /open-apis/sheets/v2/spreadsheets/:spreadsheetid/valuesimage |
| Read Values | GET /open-apis/sheets/v2/spreadsheets/:spreadsheet_id/values/:range |
| Write Values | PUT /open-apis/sheets/v2/spreadsheets/:spreadsheet_id/values |
Calendar
| Operation | API |
|———–|—–|
| Create Calendar | POST /open-apis/calendar/v4/calendars |
| Delete Calendar | DELETE /open-apis/calendar/v4/calendars/:calendar_id |
| Get Primary Info | GET /open-apis/calendar/v4/calendars/primary |
| Get Info | GET /open-apis/calendar/v4/calendars/:calendar_id |
| Get List | GET /open-apis/calendar/v4/calendars |
| Update Calendar | PUT /open-apis/calendar/v4/calendars/:calendar_id |
| Search Calendar | POST /open-apis/calendar/v4/calendars/search |
| Availability | POST /open-apis/calendar/v4/freebusy/list |
| Create Event | POST /open-apis/calendar/v4/calendars/:calendar_id/events |
| Delete Event | DELETE /open-apis/calendar/v4/calendars/:calendarid/events/:eventid |
| Search Event | POST /open-apis/calendar/v4/calendars/:calendar_id/events/search |
| Get Event | GET /open-apis/calendar/v4/calendars/:calendarid/events/:eventid |
| Get Event List | GET /open-apis/calendar/v4/calendars/:calendar_id/events |
| Update Event | PUT /open-apis/calendar/v4/calendars/:calendarid/events/:eventid |
| Create Event Attendee | POST /open-apis/calendar/v4/calendars/:calendarid/events/:eventid/attendees |
| Delete Event Attendee | POST /open-apis/calendar/v4/calendars/:calendarid/events/:eventid/attendees/batch_delete |
| Get Event Attendee List | GET /open-apis/calendar/v4/calendars/:calendarid/events/:eventid/attendees |
| Create Meeting Chat | POST /open-apis/calendar/v4/calendars/:calendarid/events/:eventid/meeting_chat |
| Unbind Meeting Chat | DELETE /open-apis/calendar/v4/calendars/:calendarid/events/:eventid/meeting_chat |
Contacts
| Operation | API |
|———–|—–|
| Batch Get User Info | POST /open-apis/contact/v3/users/batchgetid |
| Get User Info | GET /open-apis/contact/v3/users/:user_id |
Approval
| Operation | API |
|———–|—–|
| Create Approval Instance | POST /open-apis/approval/v4/instances |
| Get Approval Instance | GET /open-apis/approval/v4/instances/:instance_code |
Task
| Operation | API |
|———–|—–|
| Create | POST /open-apis/task/v2/tasks |
| Update | PUT /open-apis/task/v2/tasks/:task_guid |
| Get Info | GET /open-apis/task/v2/tasks/:task_guid |
| Get List | GET /open-apis/task/v2/tasks |
| Get Tasks in Tasklist | GET /open-apis/task/v2/tasklists/:tasklist_guid/tasks |
| Delete | DELETE /open-apis/task/v2/tasks/:task_guid |
| Add Members | POST /open-apis/task/v2/tasks/:taskguid/addmembers |
| Remove Members | POST /open-apis/task/v2/tasks/:taskguid/removemembers |
—
Development
bun install
bun run build # compile to dist/
bun run dev # watch mode
bun run test
bun run lint
—
License
MIT License