canonical: https://jentic.com/apis/larksuite.com/larksuite

# Larksuite Lark Open Platform API

Jentic publishes the only available OpenAPI specification for Lark Open Platform API, keeping it validated and agent-ready. The Lark Open Platform API exposes operations across the Lark productivity suite - instant messaging, group chats, contacts, calendar events, and approvals. It supports sending messages to users and groups, managing chat membership, looking up users and departments, scheduling calendar events, and routing approval requests. The spec covers 24 operations across the core collaboration surfaces of Lark.

## For AI agents

Send Lark messages, manage chats and contacts, schedule calendar events, and route approvals across the Lark workspace.

## Scope

Does not handle video meeting hosting, file storage in Lark Docs, or HRIS payroll - use for messaging, contacts, calendar, and approvals only.

## Capabilities

- Send a direct or group message in Lark Messenger
- Create or fetch a Lark chat and manage its member list
- Look up Lark users and departments by ID
- Create, update, or fetch calendar events on a user's Lark calendar
- Submit and track approval requests through the Lark Approvals service
- Read message metadata for a specific message in a chat

## Use cases

### Internal Notifications and Alerts

An ops or product team posts deployment, incident, and KPI notifications into a dedicated Lark group chat by calling the messaging endpoints. The API accepts text and rich card payloads, so notifications can include action buttons that link back to internal tools. This keeps the engineering team aligned without leaving Lark.

Example prompt: POST a Lark message containing the deploy version, commit, and a 'view logs' button to the #ops-alerts chat using its chat_id, then confirm delivery.

### Onboarding and Directory Lookups

An onboarding workflow looks up a new joiner's Lark user record and department to grant downstream access and post a welcome message in the team chat. The contact endpoints expose users and departments by ID so internal tools can mirror the Lark org chart. Useful for HRIS-to-collab sync without a custom directory.

Example prompt: GET the user record for the new joiner from `/contact/v3/users`, then POST a welcome message to their team chat tagging them.

### Calendar and Approval Automation

A workflow tool schedules meetings on a user's Lark calendar and routes related approvals through the Lark Approvals service. Calendar endpoints accept event details and attendees, while approval endpoints submit and track requests against a configured approval template. This automates the meet-then-approve pattern common in operations.

Example prompt: Create a 30-minute calendar event in `/calendar/v4/calendars/{id}/events` with the listed attendees, then submit a related approval request that references the meeting outcome.

### AI Agent Workspace Assistant

An AI agent answers user questions and performs Lark actions on their behalf - sending messages, scheduling events, and submitting approvals - by calling the Lark Open Platform API through Jentic. The agent searches Jentic for messaging or calendar operations, loads the schema, and executes the call without manually wiring Lark tenant tokens. This turns Lark into a tool surface for agent workflows.

Example prompt: Use Jentic to send a Lark message to the user's manager confirming the agent has scheduled the requested meeting and submitted the approval, then return the message_id to the user.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/im/v1/messages` | Send a message in Lark Messenger. |
| GET | `/im/v1/messages/{message_id}` | Retrieve metadata for a specific message. |
| POST | `/im/v1/chats` | Create a new chat. |
| GET | `/im/v1/chats/{chat_id}/members` | List members of a chat. |
| GET | `/contact/v3/users/{user_id}` | Get a Lark user record. |
| GET | `/contact/v3/departments` | List departments in the organisation. |
| GET | `/calendar/v4/calendars` | List the user's calendars. |
| POST | `/calendar/v4/calendars/{calendar_id}/events` | Create a calendar event. |

## Key resources

- **Messages** — Send and read messages in Lark Messenger.
- **Chats** — Create and manage chats and chat members.
- **Contacts** — Look up users and departments in the Lark organisation.
- **Calendar** — Create and manage calendar events for Lark users.
- **Approvals** — Submit and track approval requests in Lark.

## Why Jentic

- **Setup:** Wiring the Lark Open Platform API by hand means exchanging an app id and secret for a tenant access token, refreshing that token, and targeting the open.larksuite.com host yourself. Through Jentic you install once, import the Lark Open Platform API from the API Directory, store the app credentials once, and your agent calls it.
- **Permission scoping:** You choose which Lark operations the agent may call, so you can limit it to the ones it needs, such as sending messages and reading a user's contact record. Allowing message and contact reads lets the agent post updates without being able to create calendar events or new chats.
- **Credential handling:** Your Lark app id and secret are stored once, encrypted, by your own Jentic One instance and the tenant access token is injected at execution time. The app secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a Lark message' or 'look up a user by id', and Jentic returns the matching Lark Open Platform operation with its input schema so the agent calls the right endpoint without browsing the Lark docs.

## Related APIs

- **Slack** — Slack covers messaging, channels, and approvals for teams outside the Lark ecosystem.
- **Zoom Meetings** — Zoom Meetings hosts video calls that complement Lark calendar events when teams prefer Zoom over Lark Meetings.
- **Google Calendar** — Google Calendar pairs with Lark to bridge Workspace and Lark teams on cross-org events.

## FAQ

### Why is there no official OpenAPI spec for Lark Open Platform API?

Lark does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Lark Open Platform API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Lark Open Platform API use?

The API uses Bearer auth - typically a tenant_access_token or user_access_token issued from a Lark app's app_id and app_secret. Through Jentic, those credentials live in the encrypted vault and the agent only sees a scoped Bearer token at execution time.

### Can I send a message to a Lark group chat with the Lark Open Platform API?

Yes. POST to `/im/v1/messages` with receive_id_type='chat_id' and the chat's id, plus a text or interactive card payload. The response returns the message_id which can be passed to `/im/v1/messages/{message_id}` for delivery confirmation.

### What are the rate limits for the Lark Open Platform API?

Lark applies per-app and per-tenant rate limits that vary by endpoint and are not enumerated in the spec. Messaging and contact endpoints typically have stricter limits than read-only lookups; check the Lark Open Platform docs for current per-endpoint quotas.

### How do I schedule a Lark calendar event through Jentic?

Search Jentic for 'schedule a lark calendar event', load the operation schema, and POST to `/calendar/v4/calendars/{calendar_id}/events` with the event title, start, end, and attendees.

### Can I submit approval requests with the Lark Open Platform API?

Yes. The Approvals endpoints submit a request against a configured approval template and return its instance_code so the workflow can poll for approve or reject decisions.

### Can I limit what my agent is allowed to do with the Lark Open Platform API?

Yes. Because you run Jentic One yourself, your own rules decide which Lark operations and credentials the agent may use, so you can allow only what a task needs. For example, you can let the agent send messages to `/im/v1/messages` and read a user's contact record from `/contact/v3/users` while withholding the ability to create calendar events at `/calendar/v4/calendars/{calendar_id}/events`, open new chats, or submit approval requests. The Lark app id and secret stay on your instance and the tenant access token is injected only for the operations you permit.
