---
title: "Post a meeting to Slack"
description: "Posts the meeting's summary, decisions and action items (with Done buttons) to the workspace's meetings channel, again if it was posted before."
canonical_url: https://docs.markdrop.in/api/slack/post-a-meeting-to-slack
last_updated: 2026-11-05
site: "Markdrop Docs"
index: https://docs.markdrop.in/llms.txt
---

# Post a meeting to Slack

`POST https://api.markdrop.in/api/v1/slack/meetings/{meeting_id}/post`

Posts the meeting's summary, decisions and action items (with Done buttons) to the workspace's meetings channel, again if it was posted before. Anyone who can edit the meeting's page. 409 with the reason when it can't be posted: no channel chosen, the app isn't in a private channel, or the meeting is restricted (only meetings everyone in the channel may open are posted).

- **Authentication:** API token required: `Authorization: Bearer mdk_…`.
- **Rate limit:** 10 per minute per IP address.
- **Guide:** [Slack](https://docs.markdrop.in/integrations/slack)

## Path parameters

- `meeting_id` (string, required): The meeting's id.

## Responses

- `200`: OK.
- `401`: No token, or the token is revoked or mistyped.
- `422`: The request didn't validate. `detail` lists each problem, with where it is (`loc`) and why (`msg`).
- `429`: Too many requests from your IP address. Wait the seconds in `Retry-After`.

## Examples

**curl**

```bash
curl -X POST https://api.markdrop.in/api/v1/slack/meetings/MEETING_ID/post \
  -H "Authorization: Bearer $MARKDROP_TOKEN"
```

**JavaScript**

```javascript
const res = await fetch("https://api.markdrop.in/api/v1/slack/meetings/MEETING_ID/post", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.MARKDROP_TOKEN}`,
  },
});
const data = await res.json();
```

**Python**

```python
import os

import requests

r = requests.post(
    "https://api.markdrop.in/api/v1/slack/meetings/MEETING_ID/post",
    headers={"Authorization": f"Bearer {os.environ['MARKDROP_TOKEN']}"},
)
r.raise_for_status()
print(r.json())
```
