---
title: "Update a meeting"
method: PUT
path: "/public-api/v1/meetings/{meeting_id}"
tags: ["meetings"]
---

# Update a meeting

`PUT /public-api/v1/meetings/{meeting_id}`

## Request

- Base URL: `/` (relative, and the document’s source URL is not known)
- URL: `/public-api/v1/meetings/{meeting_id}`
- Auth: HTTP bearer and API key in header `x-tenant-code`

Partially update a video; returns the full updated ``{"video": {...}}``.

Send any subset of updatable fields (at least one); omitted fields are
left unchanged. 422 on invalid input (at request validation), 404 if
the video id is unknown.

## Path parameters

- `meeting_id` string, uuid, required

## Request body

- VideoUpdateRequest: Request body for ``PUT /meetings/{id}``. ``video`` carries the updatable fields; at least one of them (or ``template_ids``) must be provided. Unknown top-level fields are rejected.
  - `video` VideoUpdateFields, required: Updatable ``video`` fields. All optional (partial update); unknown fields are rejected.
    - `title` string, nullable: New video title. 1 to 256 characters.
    - `starts_at` string, date-time, nullable: New recording start time (ISO 8601).
    - `duration` number, nullable: New video duration, in seconds.
    - `metadata` object, nullable: Free-form metadata object stored under the video's platform namespace. Must be a JSON object ≤ 6144 bytes; keys may not start with '__'.
    - `salesforce_event_id` string, nullable: Salesforce Event id (must start with '00U').
    - `google_calendar_meeting` GoogleCalendarMeeting: Google Calendar link for the video.
      - `id` string, required
      - `ical_uid` string, required
      - `summary` string, required
      - `description` string, required
      - `calendar_meeting_id` string, uuid, required: Id of the calendar-sync record this meeting came from.
    - `outlook_calendar_meeting` OutlookCalendarMeeting: Outlook Calendar link for the video.
      - `id` string, required
      - `ical_uid` string, required
      - `starts_at` string, date-time, required
      - `timezone` string, required
      - `title` string, required
      - `description` string, required
      - `description_content_type` string, required
      - `calendar_meeting_id` string, uuid, required: Id of the calendar-sync record this meeting came from.
  - `template_ids` string[], nullable: Auto-summary template ids to attach to the video (replaces existing).

## Response `200`

The meeting after the update.

- VideoUpdateResponse: Response for ``PUT /meetings/{id}``: ``{"video": {...}}`` — the updated video. The record carries the same fields as ``GET /meetings/{id}`` minus the derived ones; fields that are not set stay absent from the response.
  - `video` UpdatedVideoRecord, required: The updated video record.
    - `title` string, nullable
    - `platform` string, nullable
    - `starts_at` string, date-time, nullable
    - `expires_at` string, date-time, nullable
    - `duration` union
      - integer
      - number
    - `access_permission` string, nullable
    - `bookmarked` boolean, nullable
    - `participant_names` string, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `video_participants` VideoRecordParticipant[], nullable
      - `id` string, nullable
      - `user_name` string, nullable
      - `user_name_at_creation` string, nullable
      - `guest_id` string, nullable
    - `video_details` VideoDetail[], nullable
      - `id` string, nullable
      - `starts_at` string, date-time, nullable
      - `ends_at` string, date-time, nullable
      - `volumes` number[], nullable
      - `state_video` string, nullable
      - `state_audio` string, nullable
      - `state_audio_analyze_error_reason` string, nullable
      - `video_keywords` VideoKeyword[], nullable
        - `id` string, nullable
        - `keyword` string, nullable
        - `starts_at` number, nullable
        - `video_participant` VideoRecordParticipant: A meeting participant.
          - `id` string, nullable
          - `user_name` string, nullable
          - `user_name_at_creation` string, nullable
          - `guest_id` string, nullable
        - `video_tags` VideoKeywordTag[], nullable
          - `id` string, uuid, nullable
          - `value` string, nullable
          - `creator_type` string, nullable
      - `video_participant_analysis` VideoParticipantAnalysis[], nullable
        - `video_participant` VideoRecordParticipant: A meeting participant.
          - `id` string, nullable
          - `user_name` string, nullable
          - `user_name_at_creation` string, nullable
          - `guest_id` string, nullable
        - `volumes` number[], nullable
        - `f0` number, nullable
        - `speechrate` number, nullable
        - `variance` number, nullable
        - `tlr` number, nullable
        - `speak` VideoAnalysisSpan[], nullable
          - `start_at` number, nullable
          - `end_at` number, nullable
        - `silence_all` VideoSilenceAll: Aggregated silence stats.
          - `count` integer, nullable
          - `position` VideoAnalysisSpan[], nullable
            - `start_at` number, nullable
            - `end_at` number, nullable
        - `overlap` VideoAnalysisSpan[], nullable
          - `start_at` number, nullable
          - `end_at` number, nullable
        - `overlap_all` VideoOverlapAll: Aggregated overlapping-speech stats.
          - `count` integer, nullable
        - `filler_count` integer, nullable
      - `video_detail_participants` VideoDetailParticipant[], nullable
        - `id` string, nullable
        - `analysis_status` string, nullable
        - `guest_id` string, nullable
        - `video_participant_id` string, nullable
      - `video_summaries` VideoRecordSummary[], nullable
        - `id` string, uuid, nullable
        - `summary` string, nullable
        - `summary_status` string, nullable
        - `submitted_prompt_template_id` string, nullable
        - `requested_by` VideoSummaryRequester: The account that requested the summary.
          - `account_id` string, nullable
          - `name` string, nullable
        - `requester_type` string, nullable
        - `is_edited` boolean, nullable
        - `created_at` string, date-time, nullable
        - `is_quick_summary` boolean, nullable
        - `redacted_due_to_copyright_on_creation` boolean, nullable
    - `video_chats` VideoChat[], nullable
      - `id` string, nullable
      - `user_name` string, nullable
      - `posts_at` string, date-time, nullable
      - `text` string, nullable
      - `video_participant` VideoRecordParticipant: A meeting participant.
        - `id` string, nullable
        - `user_name` string, nullable
        - `user_name_at_creation` string, nullable
        - `guest_id` string, nullable
      - `element` VideoChatElement: Structured content of a chat message.
        - `urls` VideoChatUrl[], nullable
          - `url` string, nullable
          - `indices` integer[], nullable
    - `salesforce_event_id` string, nullable
    - `salesforce_id` string, nullable
    - `access_users` VideoAccessUser[], nullable
      - `account_id` string, uuid, required
      - `name` string, nullable
      - `deleted` boolean, nullable
    - `host` VideoAccountUser: An account user reference.
      - `id` string, uuid, nullable
      - `name` string, nullable
    - `sound_source` string, nullable
    - `folder_id` string, uuid, nullable
    - `third_party_last_synced_at` string, date-time, nullable
    - `quick_transcript_completion_time` string, date-time, nullable
    - `high_precision_transcript_completion_time` string, date-time, nullable
    - `bot_id` string, nullable
    - `metadata` object, nullable
    - `summaries_count` integer, nullable
    - `summary_quota` integer, nullable
    - `summary_quota_usage` integer, nullable
    - `play_users` VideoUserRef[], nullable
      - `id` integer, nullable
      - `first_name` string, nullable
    - `play_users_count` integer, nullable
    - `id` string, uuid, nullable

## Other responses

- `400`: The tenant could not be resolved from the request.
- `401`: Error envelope (`public_api.unauthorized`).
- `403`: The request is not allowed for the current tenant or access configuration.
- `404`: Error envelope (`public_api.not_found`).
- `409`: Error envelope (`public_api.conflict`).
- `413`: The request body exceeds the maximum allowed size.
- `422`: Validation Error
- `429`: Rate limit exceeded. Wait for ``Retry-After`` seconds before retrying.
- `502`: Error envelope (`public_api.internal_error`).
- `503`: The request could not be served right now. Please retry.
- `504`: Error envelope (`public_api.request_timeout`).

---

[API](https://skmtc.dev/miitel/apis/miitel-public-api.md) - [All operations](https://skmtc.dev/miitel/apis/miitel-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/miitel/apis/miitel-public-api/revisions/961732756fa3?raw)
