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

# Update a Meeting

> Adds a transcript, recording, or tags to an existing meeting.



## OpenAPI

````yaml PATCH /meetings/{id}
openapi: 3.1.0
info:
  title: Moonbase REST API
  version: v0
servers:
  - url: https://api.moonbase.ai/v0
security:
  - bearer: []
tags:
  - name: Inboxes
    description: Manage your inboxes, conversations, and messages
  - name: Collections
    description: Manage your collections and items
  - name: Marketing
    description: Manage your marketing campaigns and forms
  - name: Activities
    description: View activities and capture calls
  - name: Library
    description: Manage your meetings, files, and notes
paths:
  /meetings/{id}:
    patch:
      tags:
        - Library
      summary: Update a meeting
      description: Adds a transcript, recording, or tags to an existing meeting.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: The ID of the meeting to update.
          explode: true
      requestBody:
        description: ''
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeetingUpdateParams'
            examples:
              Default:
                summary: Default
                value:
                  recording:
                    provider: example
                    provider_id: abc123
                    content_type: video/mp4
                    url: https://example.com/recording.mp4
                  tags:
                    - id: 1CLJt2vJy3SZLhqYW8rQoN
                      type: tag
                  transcript:
                    provider: example
                    provider_id: def456
                    cues:
                      - from: 0.71999997
                        to: 1.22
                        text: Hello.
                        speaker: Jony Appleseed
                      - from: 1.52
                        to: 3.22
                        text: Hey! It's been too long.
                        speaker: Jane Doe
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Meeting'
              examples:
                Default:
                  summary: Default
                  value:
                    id: 1CLJt2v5aNd8G5SGzEaeVU
                    type: meeting
                    end_at: '2025-02-17T15:30:00.000Z'
                    duration: 1800
                    tags:
                      - id: 1CLJt2vJy3SZLhqYW8rQoN
                        type: tag
                        name: Intro
                        color: lunar
                    created_at: '2025-02-17T16:00:00.000Z'
                    title: Ended
                    updated_at: '2025-02-17T16:00:00.000Z'
                    provider_id: '146'
                    i_cal_uid: '147'
                    time_zone: Europe/Paris
                    start_at: '2025-02-17T15:00:00.000Z'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Default:
                  summary: Default
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '400'
                        title: Bad Request
                        detail: >-
                          The request could not be understood due to malformed
                          syntax or invalid parameters.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Default:
                  summary: Default
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '401'
                        title: Unauthorized
                        detail: >-
                          Invalid or missing API key or JWT. You should provide
                          your Moonbase API Key or JWT in the authorization
                          header, in the format: "Authorization: Bearer
                          MOONBASE_API_KEY"
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Default:
                  summary: Default
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '403'
                        title: Forbidden
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Meeting not found:
                  summary: Meeting not found
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '404'
                        title: Not Found
        '422':
          description: Invalid tags.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Invalid tags:
                  summary: Invalid tags
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '422'
                        title: Unprocessable Entity
                        detail: Tag ID 'invalid_tag_id' is invalid.
                        source:
                          pointer: /tags/0/id
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Default:
                  summary: Default
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '429'
                        title: Too Many Requests
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Default:
                  summary: Default
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '500'
                        title: Internal Server Error
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
              examples:
                Default:
                  summary: Default
                  value:
                    type: errors
                    errors:
                      - type: error
                        status: '503'
                        title: Service Unavailable
                        detail: >-
                          The service is temporarily unavailable, please try
                          again later.
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Moonbase from '@moonbaseai/sdk';

            const client = new Moonbase({
              apiKey: process.env['MOONBASE_API_KEY'], // This is the default and can be omitted
            });

            const meeting = await client.meetings.update('id', {
              recording: {
                provider_id: 'abc123',
                content_type: 'video/mp4',
                url: 'https://example.com/recording.mp4',
              },
              tags: [{ id: '1CLJt2vJy3SZLhqYW8rQoN', type: 'tag' }],
              transcript: {
                provider: 'example',
                provider_id: 'def456',
                cues: [
                  {
                    from: 0.71999997,
                    to: 1.22,
                    text: 'Hello.',
                    speaker: 'Jony Appleseed',
                  },
                  {
                    from: 1.52,
                    to: 3.22,
                    text: "Hey! It's been too long.",
                    speaker: 'Jane Doe',
                  },
                ],
              },
            });

            console.log(meeting.id);
        - lang: Python
          source: |-
            import os
            from moonbase import Moonbase

            client = Moonbase(
                api_key=os.environ.get("MOONBASE_API_KEY"),  # This is the default and can be omitted
            )
            meeting = client.meetings.update(
                id="id",
                recording={
                    "provider_id": "abc123",
                    "content_type": "video/mp4",
                    "url": "https://example.com/recording.mp4",
                },
                tags=[{
                    "id": "1CLJt2vJy3SZLhqYW8rQoN",
                    "type": "tag",
                }],
                transcript={
                    "provider": "example",
                    "provider_id": "def456",
                    "cues": [{
                        "from": 0.71999997,
                        "to": 1.22,
                        "text": "Hello.",
                        "speaker": "Jony Appleseed",
                    }, {
                        "from": 1.52,
                        "to": 3.22,
                        "text": "Hey! It's been too long.",
                        "speaker": "Jane Doe",
                    }],
                },
            )
            print(meeting.id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/moonbaseai/moonbase-sdk-go\"\n\t\"github.com/moonbaseai/moonbase-sdk-go/option\"\n\t\"github.com/moonbaseai/moonbase-sdk-go/shared\"\n)\n\nfunc main() {\n\tclient := moonbase.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tmeeting, err := client.Meetings.Update(\n\t\tcontext.TODO(),\n\t\t\"id\",\n\t\tmoonbase.MeetingUpdateParams{\n\t\t\tRecording: moonbase.MeetingUpdateParamsRecording{\n\t\t\t\tProviderID:  \"abc123\",\n\t\t\t\tContentType: \"video/mp4\",\n\t\t\t\tURL:         \"https://example.com/recording.mp4\",\n\t\t\t},\n\t\t\tTags: []shared.TagPointerParam{{\n\t\t\t\tID: \"1CLJt2vJy3SZLhqYW8rQoN\",\n\t\t\t}},\n\t\t\tTranscript: moonbase.MeetingUpdateParamsTranscript{\n\t\t\t\tProvider:   \"example\",\n\t\t\t\tProviderID: \"def456\",\n\t\t\t\tCues: []moonbase.MeetingUpdateParamsTranscriptCue{{\n\t\t\t\t\tFrom:    0.71999997,\n\t\t\t\t\tTo:      1.22,\n\t\t\t\t\tText:    \"Hello.\",\n\t\t\t\t\tSpeaker: \"Jony Appleseed\",\n\t\t\t\t}, {\n\t\t\t\t\tFrom:    1.52,\n\t\t\t\t\tTo:      3.22,\n\t\t\t\t\tText:    \"Hey! It's been too long.\",\n\t\t\t\t\tSpeaker: \"Jane Doe\",\n\t\t\t\t}},\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", meeting.ID)\n}\n"
        - lang: Ruby
          source: |-
            require "moonbase"

            moonbase = Moonbase::Client.new(api_key: "My API Key")

            meeting = moonbase.meetings.update("id")

            puts(meeting)
components:
  schemas:
    MeetingUpdateParams:
      title: MeetingUpdateParams
      description: Parameters for updating a `Meeting`.
      type: object
      properties:
        recording:
          $ref: '#/components/schemas/MeetingRecordingParams'
          description: A video recording of the meeting.
        transcript:
          $ref: '#/components/schemas/MeetingTranscriptParams'
          description: The meeting transcript.
        tags:
          description: >-
            Optional list of tag pointers to assign to the meeting. If omitted,
            existing tags are unchanged. Pass an empty array to clear tags.
          type: array
          items:
            $ref: '#/components/schemas/TagPointerParam'
      required: []
    Meeting:
      title: Meeting
      description: >-
        The Meeting object represents a calendar event. It includes details
        about the participants, timing, and associated content like summaries
        and recordings.
      type: object
      properties:
        type:
          description: >-
            String representing the object’s type. Always `meeting` for this
            object.
          type: string
          const: meeting
        id:
          description: Unique identifier for the object.
          type: string
        title:
          description: The title or subject of the meeting.
          type: string
        provider_id:
          description: >-
            The unique identifier for the meeting from the external calendar
            provider (e.g., Google Calendar).
          type: string
        provider_uri:
          description: A URL to access the meeting in the external provider's system.
          type: string
          format: uri
        i_cal_uid:
          description: The globally unique iCalendar UID for the meeting event.
          type: string
        description:
          description: A detailed description or agenda for the meeting.
          type: string
        location:
          description: The physical or virtual location of the meeting.
          type: string
        time_zone:
          description: >-
            The IANA time zone in which the meeting is scheduled (e.g.,
            `America/Los_Angeles`).
          type: string
        start_at:
          description: The start time of the meeting, as an ISO 8601 timestamp in UTC.
          type: string
          format: date-time
        end_at:
          description: The end time of the meeting, as an ISO 8601 timestamp in UTC.
          type: string
          format: date-time
        duration:
          description: The duration of the meeting in seconds.
          type: number
        recording_url:
          description: >-
            A temporary, signed URL to download the meeting recording. The URL
            expires after one hour.
          type: string
          format: uri
        organizer:
          $ref: '#/components/schemas/MeetingOrganizer'
          description: >
            The `Organizer` of the meeting.


            **Note:** Only present when requested using the `include` query
            parameter.
        attendees:
          description: >
            A list of `Attendee` objects for the meeting.


            **Note:** Only present when requested using the `include` query
            parameter.
          type: array
          items:
            $ref: '#/components/schemas/MeetingAttendee'
        transcript:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MeetingTranscript'
        note:
          description: >
            Any personal notes taken during the meeting. It also includes the
            AI-generated pre-meeting briefing. Returns `null` if no note exists.


            **Note:** Only present when requested using the `include` query
            parameter.
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Note'
        summary:
          description: >
            A summary of the meeting, or `null` if no summary has been generated
            yet.


            **Note:** Only present when requested using the `include` query
            parameter.
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Note'
        tags:
          description: The tags currently applied to this meeting.
          type: array
          items:
            $ref: '#/components/schemas/Tag'
        created_at:
          description: >-
            Time at which the object was created, as an ISO 8601 timestamp in
            UTC.
          type: string
          format: date-time
        updated_at:
          description: >-
            Time at which the object was last updated, as an ISO 8601 timestamp
            in UTC.
          type: string
          format: date-time
      required:
        - start_at
        - end_at
        - time_zone
        - provider_id
        - i_cal_uid
        - type
        - id
        - tags
        - created_at
        - updated_at
    Errors:
      title: Errors
      description: >-
        The Errors object is a container that holds multiple Error objects when
        an API request encounters several validation or processing issues. This
        allows the API to return comprehensive feedback about all problems
        encountered in a single response.
      type: object
      properties:
        type:
          type: string
          const: errors
        errors:
          description: A list of `Error` objects.
          type: array
          items:
            $ref: '#/components/schemas/Error'
      required:
        - type
    MeetingRecordingParams:
      title: MeetingRecordingParams
      description: Parameters for creating a `MeetingRecording` object.
      type: object
      properties:
        provider_id:
          description: The unique identifier for the recording from the provider's system.
          type: string
        content_type:
          description: >-
            The content type of the recording. Note that only `video/mp4` is
            supported at this time.
          type: string
          enum:
            - video/mp4
        url:
          description: The URL pointing to the recording.
          type: string
          format: uri
      required:
        - provider_id
        - content_type
        - url
    MeetingTranscriptParams:
      title: MeetingTranscriptParams
      description: Parameters for creating a `MeetingTranscript` object.
      type: object
      properties:
        provider:
          description: Identifies the source of the transcript.
          type: string
        provider_id:
          description: The unique identifier for the transcript from the provider's system.
          type: string
        cues:
          description: >-
            A list of cues that identify the text spoken in specific time slices
            of the meeting.
          type: array
          items:
            $ref: '#/components/schemas/MeetingTranscriptCueParams'
      required:
        - provider
        - provider_id
        - cues
    TagPointerParam:
      title: TagPointerParam
      description: A lightweight reference to a `Tag` used in request bodies.
      type: object
      properties:
        type:
          description: String representing the object’s type. Always `tag` for this object.
          type: string
          const: tag
        id:
          description: Unique identifier of the tag.
          type: string
      required:
        - type
        - id
    MeetingOrganizer:
      title: MeetingOrganizer
      description: Represents the organizer of a meeting.
      type: object
      properties:
        type:
          description: >-
            String representing the object’s type. Always `meeting_organizer`
            for this object.
          type: string
          const: meeting_organizer
        id:
          description: Unique identifier for the object.
          type: string
        email:
          description: The email address of the organizer.
          type: string
          format: email
        person:
          $ref: '#/components/schemas/ItemPointer'
        organization:
          $ref: '#/components/schemas/ItemPointer'
      required:
        - email
        - type
        - id
    MeetingAttendee:
      title: MeetingAttendee
      description: >-
        The Attendee object represents a participant in a meeting. It includes
        their email address and links to associated `Person` and `Organization`
        items, if they exist in your collections.
      type: object
      properties:
        type:
          description: >-
            String representing the object’s type. Always `meeting_attendee` for
            this object.
          type: string
          const: meeting_attendee
        id:
          description: Unique identifier for the object.
          type: string
        email:
          description: The email address of the attendee.
          type: string
          format: email
        person:
          $ref: '#/components/schemas/ItemPointer'
        organization:
          $ref: '#/components/schemas/ItemPointer'
      required:
        - email
        - type
        - id
    MeetingTranscript:
      title: MeetingTranscript
      description: ''
      type: object
      properties:
        cues:
          type: array
          items:
            $ref: '#/components/schemas/MeetingTranscriptCue'
      required:
        - cues
    Note:
      title: Note
      description: >-
        The Note object represents a block of text content, often used for
        meeting notes or summaries.
      type: object
      properties:
        type:
          description: >-
            String representing the object’s type. Always `note` for this
            object.
          type: string
          const: note
        id:
          description: Unique identifier for the object.
          type: string
        lock_version:
          description: >-
            The current lock version of the note for optimistic concurrency
            control.
          type: integer
        body:
          $ref: '#/components/schemas/FormattedText'
          description: The main content of the note.
        created_at:
          description: >-
            Time at which the object was created, as an ISO 8601 timestamp in
            UTC.
          type: string
          format: date-time
        updated_at:
          description: >-
            Time at which the object was last updated, as an ISO 8601 timestamp
            in UTC.
          type: string
          format: date-time
        title:
          description: An optional title for the note.
          type: string
        summary:
          description: A short, system-generated summary of the note's content.
          type: string
        creator:
          description: The person that created the note.
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ItemPointer'
        associations:
          description: A list of items, meetings or calls this note is associated with.
          type: array
          items:
            $ref: '#/components/schemas/NoteAssociationPointer'
      required:
        - type
        - id
        - lock_version
        - body
        - created_at
        - updated_at
        - associations
    Tag:
      title: Tag
      description: >-
        A Tag is a label that can be applied to supported resources (such as
        conversations, calls, and meetings) for organization and filtering.
      type: object
      properties:
        type:
          description: String representing the object’s type. Always `tag` for this object.
          type: string
          const: tag
        id:
          description: Unique identifier for the object.
          type: string
        name:
          description: The name of the tag.
          type: string
        color:
          $ref: '#/components/schemas/NamedColor'
          description: The color for the tag.
      required:
        - name
        - type
        - id
        - color
    Error:
      title: Error
      description: >-
        The Error object represents a single error that occurred during API
        request processing. It provides detailed information about what went
        wrong, including a unique identifier, status code, and human-readable
        descriptions to help developers understand and resolve the issue.
      type: object
      properties:
        type:
          type: string
          const: error
        id:
          description: A unique identifier for this specific error instance.
          type: string
        status:
          description: The HTTP status code for this problem, as a string.
          type: string
        code:
          description: An application-specific error code string.
          type: string
        title:
          description: A short, human-readable summary of the problem.
          type: string
        detail:
          description: A human-readable explanation of this specific error.
          type: string
        source:
          $ref: '#/components/schemas/ErrorSource'
          description: >-
            An object containing more specific information about the part of the
            request that caused the error.
        meta:
          type: object
          additionalProperties: true
      required:
        - type
    MeetingTranscriptCueParams:
      title: MeetingTranscriptCueParams
      description: >-
        Parameters for creating a `MeetingTranscriptCue` object to capture the
        text spoken in a specific time slice.
      type: object
      properties:
        from:
          description: >-
            The start time of the slice, in fractional seconds from the start of
            the meeting.
          type: number
        to:
          description: >-
            The end time of the slice, in fractional seconds from the start of
            the meeting.
          type: number
        text:
          description: The text spoken during the slice.
          type: string
        speaker:
          description: The name of the person speaking.
          type: string
      required:
        - from
        - to
        - text
        - speaker
    ItemPointer:
      title: ItemPointer
      description: >-
        A reference to an `Item` within a specific `Collection`, providing the
        context needed to locate the item.
      type: object
      properties:
        type:
          description: >-
            String representing the object’s type. Always `item` for this
            object.
          type: string
          const: item
        id:
          description: Unique identifier of the item.
          type: string
        collection:
          $ref: '#/components/schemas/CollectionPointer'
          description: A reference to the `Collection` containing this item.
      required:
        - collection
        - type
        - id
    MeetingTranscriptCue:
      title: MeetingTranscriptCue
      description: ''
      type: object
      properties:
        from:
          type: number
        to:
          type: number
        text:
          type: string
        speaker:
          $ref: '#/components/schemas/MeetingTranscriptSpeaker'
      required:
        - from
        - to
        - text
        - speaker
    FormattedText:
      title: FormattedText
      description: >-
        Structured content that can be rendered in multiple formats, currently
        supporting Markdown.
      type: object
      properties:
        markdown:
          description: The content formatted as Markdown text.
          type: string
      required: []
    NoteAssociationPointer:
      title: NoteAssociationPointer
      description: A reference to a call, meeting, or item associated with the note.
      oneOf:
        - $ref: '#/components/schemas/CallPointer'
        - $ref: '#/components/schemas/ItemPointer'
        - $ref: '#/components/schemas/MeetingPointer'
      discriminator:
        propertyName: type
        mapping:
          call:
            $ref: '#/components/schemas/CallPointer'
          item:
            $ref: '#/components/schemas/ItemPointer'
          meeting:
            $ref: '#/components/schemas/MeetingPointer'
    NamedColor:
      type: string
      enum:
        - amber
        - blue
        - cyan
        - emerald
        - fuchsia
        - green
        - indigo
        - lime
        - lunar
        - orange
        - pink
        - purple
        - red
        - rose
        - sky
        - teal
        - violet
        - yellow
      description: >-
        One of Moonbase's standard color names. Moonbase renders these
        consistently across light and dark modes.
    ErrorSource:
      title: ErrorSource
      description: >-
        The ErrorSource object provides additional context about the specific
        part of an API request that caused an error. It can point to either a
        field in the request document or a query parameter that contains invalid
        data.
      type: object
      properties:
        pointer:
          description: >-
            A JSON Pointer [RFC6901] to the associated entity in the request
            document.
          type: string
        parameter:
          description: A string indicating which URI query parameter caused the error.
          type: string
      required: []
    CollectionPointer:
      title: CollectionPointer
      description: >-
        A lightweight reference to a `Collection`, containing the minimal
        information needed to identify it.
      type: object
      properties:
        type:
          description: >-
            String representing the object’s type. Always `collection` for this
            object.
          type: string
          const: collection
        id:
          description: Unique identifier of the collection.
          type: string
        ref:
          description: The stable, machine-readable reference identifier of the collection.
          type: string
      required:
        - type
        - id
        - ref
    MeetingTranscriptSpeaker:
      title: MeetingTranscriptSpeaker
      description: ''
      type: object
      properties:
        label:
          type: string
        attendee_id:
          type: string
      required: []
    CallPointer:
      title: CallPointer
      type: object
      properties:
        type:
          type: string
          const: call
        id:
          type: string
      required:
        - type
        - id
    MeetingPointer:
      title: MeetingPointer
      type: object
      properties:
        type:
          type: string
          const: meeting
        id:
          type: string
      required:
        - type
        - id
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: Your Moonbase API key.

````