# Start a session Start a new Meeting Buddy bot to join and record a meeting. Start a new Meeting Buddy bot session. The bot joins the meeting asynchronously in the background. The API returns immediately with session details. Session status transitions: `initializing` -> `joining` -> `active` -> `completed`. Supported meeting platforms: Microsoft Teams, Zoom, Google Meet, and Webex. #### Request Body **`meeting_link`** string required HTTPS URL to the meeting. Must be from a supported platform (Teams, Zoom, Google Meet, or Webex). **`bot_name`** string optional · Defaults to `"Meeting Buddy"` Display name for the bot in the meeting. **`transcription_enabled`** boolean optional · Defaults to `true` Enable real-time transcription of the meeting. **`transcription_language`** string optional · Defaults to `"en"` Language code for transcription (e.g., `"en"`, `"de"`, `"fr"`). ## Returns Returns a [Session object](#session-object) with the initial status set to `initializing`. The session includes identifiers, configuration, timestamps, and recording metadata fields (which are `null` until the session progresses). Request ```bash cURL curl -X POST https://api.aitronos.com/v1/meeting-buddy/sessions \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "meeting_link": "https://teams.microsoft.com/l/meetup-join/abc123", "bot_name": "Meeting Buddy", "transcription_enabled": true, "transcription_language": "en" }' ``` ```python Python SDK from aitronos import Aitronos client = Aitronos(api_key="your-api-key") session = client.meeting_buddy.start_session( meeting_link="https://teams.microsoft.com/l/meetup-join/abc123", bot_name="Meeting Buddy", transcription_enabled=True, transcription_language="en", ) print(session.session_id) print(session.status) ``` ```python Python import os import requests access_token = os.environ["ACCESS_TOKEN"] url = "https://api.aitronos.com/v1/meeting-buddy/sessions" headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json", } payload = { "meeting_link": "https://teams.microsoft.com/l/meetup-join/abc123", "bot_name": "Meeting Buddy", "transcription_enabled": True, "transcription_language": "en", } response = requests.post(url, headers=headers, json=payload) session = response.json() print(f"Session ID: {session['session_id']}") print(f"Status: {session['status']}") ``` ```javascript JavaScript const accessToken = process.env.ACCESS_TOKEN; const response = await fetch('https://api.aitronos.com/v1/meeting-buddy/sessions', { method: 'POST', headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ meeting_link: 'https://teams.microsoft.com/l/meetup-join/abc123', bot_name: 'Meeting Buddy', transcription_enabled: true, transcription_language: 'en', }), }); const session = await response.json(); console.log('Session ID:', session.session_id); console.log('Status:', session.status); ``` Response ```json 201 Created { "session_id": "mbsess_abc123def456", "organization_id": "org_xyz789", "user_id": "usr_user123", "meeting_link": "https://teams.microsoft.com/l/meetup-join/abc123", "platform": "teams", "bot_name": "Meeting Buddy", "status": "initializing", "transcription_enabled": true, "transcription_language": "en", "debug_mode": false, "created_at": "2025-12-11T10:00:00Z", "updated_at": "2025-12-11T10:00:00Z", "join_timestamp": null, "leave_timestamp": null, "total_duration_seconds": null, "segment_count": null, "audio_file_count": null, "video_file_count": null, "total_size_bytes": null, "output_directory": "recordings/org_xyz789/mbsess_abc123def456", "error_message": null, "error_code": null, "metadata": {}, "current_participants": {}, "participant_history": [] } ``` ```json 401 Unauthorized { "success": false, "error": { "code": "AUTHENTICATION_REQUIRED", "message": "Authentication is required to access this resource.", "type": "client_error", "status": 401, "details": {}, "trace_id": "abc-123-def", "timestamp": "2025-12-11T10:00:00Z" } } ``` ```json 422 Validation Error { "success": false, "error": { "code": "INVALID_MEETING_LINK", "message": "Meeting link must be a valid HTTPS URL", "type": "client_error", "status": 422, "details": { "field": "meeting_link" }, "trace_id": "abc-123-def", "timestamp": "2025-12-11T10:00:00Z" } } ``` ```json 500 Internal Server Error { "success": false, "error": { "code": "SESSION_START_FAILED", "message": "Failed to start bot session", "type": "server_error", "status": 500, "details": {}, "trace_id": "abc-123-def", "timestamp": "2025-12-11T10:00:00Z" } } ``` ## Session Object | Field | Type | Description | | --- | --- | --- | | `session_id` | string | Unique session identifier (prefixed with `mbsess_`) | | `organization_id` | string | Organization that owns this session | | `user_id` | string | User who created the session | | `meeting_link` | string | Original meeting URL | | `platform` | string | Detected platform (`teams`, `zoom`, `google_meet`, `webex`) | | `bot_name` | string | Display name of the bot | | `status` | string | Current status (`initializing`, `joining`, `active`, `recording`, `leaving`, `completed`, `failed`) | | `transcription_enabled` | boolean | Whether transcription is active | | `transcription_language` | string | Language code for transcription | | `debug_mode` | boolean | Whether debug mode is enabled | | `created_at` | string | ISO 8601 creation timestamp | | `updated_at` | string | ISO 8601 last update timestamp | | `join_timestamp` | string or null | When the bot joined the meeting | | `leave_timestamp` | string or null | When the bot left the meeting | | `total_duration_seconds` | number or null | Total session duration in seconds | | `segment_count` | integer or null | Number of recording segments | | `audio_file_count` | integer or null | Number of audio files | | `video_file_count` | integer or null | Number of video files | | `total_size_bytes` | integer or null | Total recording size in bytes | | `output_directory` | string or null | Path to recording files | | `error_message` | string or null | Error description if session failed | | `error_code` | string or null | Error code if session failed | | `metadata` | object | Additional session metadata | | `current_participants` | object | Currently active participants | | `participant_history` | array | History of participant join/leave events | ## Related Resources - [List Sessions](/docs/api-reference/meeting-buddy/list-sessions) - [Get Session Details](/docs/api-reference/meeting-buddy/get-session) - [Stop Session](/docs/api-reference/meeting-buddy/stop-session) - [Get Transcripts](/docs/api-reference/meeting-buddy/get-transcripts) - [Export Transcript](/docs/api-reference/meeting-buddy/export-transcript) - [Delete Session](/docs/api-reference/meeting-buddy/delete-session) - [Stream Session Status](/docs/api-reference/meeting-buddy/session-status-stream) - [Stream Transcripts](/docs/api-reference/meeting-buddy/transcript-stream) - [Stream Logs](/docs/api-reference/meeting-buddy/log-stream) - [Analytics Summary](/docs/api-reference/meeting-buddy/analytics-summary)