> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aigenda.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Meeting bot

> Send the AiGenda assistant to a Zoom, Google Meet, or Yandex Telemost meeting.

The bot joins the meeting as a participant, records it, and puts the recording in the space. You do not need to upload a file.

```bash theme={null}
curl -X POST https://api.aigenda.tech/api/space/1024/meeting/ \
  -H "Authorization: Bearer <access>" \
  -H "Content-Type: application/json" \
  -d '{"link": "https://telemost.yandex.ru/j/12345678901234", "meeting_service": "telemost"}'
```

```json Response 201 theme={null}
{ "id": 3141, "link": "https://telemost.yandex.ru/j/12345678901234", "meeting_service": "telemost" }
```

<Note>
  The path uses the singular `space`: `/api/space/{space_id}/meeting/`. All other requests use `spaces`.
</Note>

| Field | Rule |
| - | - |
| `link` | Meeting invitation link, up to 255 characters. Formats are in the table below |
| `meeting_service` | Platform: `telemost`, `zoom`, or `google_meet`. **Always send it**: without this field AiGenda treats the meeting as Google Meet, and the bot won't reach Telemost or Zoom |

## Platforms and links

| Platform | `meeting_service` | `link` format |
| - | - | - |
| Yandex Telemost | `telemost` | `https://telemost.yandex.ru/j/<id>` or `https://telemost.360.yandex.ru/j/<id>` |
| Zoom | `zoom` | `https://zoom.us/j/<number>` or `https://<company>.zoom.us/j/<number>`, optionally with `?pwd=…` |
| Google Meet | `google_meet` | `https://meet.google.com/abc-defg-hij` |

## Errors

| Response | Meaning | What to do |
| - | - | - |
| `400 {"detail": "User has not available minutes", "code": 4}` | Less than 5 minutes left on the plan, or the subscription is inactive | Top up minutes in the web cabinet |
| `400 {"detail": "User already start meeting", "code": 5}` | You already have an active meeting with the bot in this space | Wait until it ends |
| `500 {"detail": "Meeting service is not available"}` | Unknown `meeting_service` value | Send `telemost`, `zoom`, or `google_meet` |

## After the meeting

The recording appears in the space right after you send the bot, with a name like `a1b2c3d4.mp4` and `is_uploaded: false`. When the meeting ends, the file uploads and processing starts on its own: you don't need to call `classify`. Minutes are charged the same way as for regular processing.

1. Find the recording in the [recording list](/en/api-reference/audio/list): newest first, `ordering=-created_at`. The response to sending the bot contains the bot request `id`, not the recording's.
2. Wait for `is_uploaded: true` in [`info/`](/en/api-reference/audio/info): while the bot records the meeting, `result/` may respond with an error.
3. Poll the [result](/en/processing/status) by the recording's `id` until you get `classified: true`.

Don't call `classify` for a bot recording: the minutes would be charged twice.

<Warning>
  Meeting participants see the bot in the participant list. Let them know about the recording in advance.
</Warning>

<Tip>
  If calendar-based bot joining is enabled in the cabinet, do not send the bot to the same meeting through the API: you will end up with two recordings of one meeting.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.