Meetings
Import a Meeting Transcript
Changed onAttaches a transcript to an existing calendar meeting. Never creates meetings, and never stores audio or video.
Prefer meeting_id from list_meetings or get_meeting. Otherwise send calendar_event_id (Google Calendar events.id) or ical_uid, plus started_at when the id belongs to a recurring meeting. Unmatched rows return unmatched_meeting: skip them, do not invent a meeting.
The transcript is only stored when Monaco has not covered the meeting itself. Check transcript_source on get_meeting before posting. Rejections carry a machine-readable error.code and write nothing:
- monaco_recorder_configured (409): Monaco's recorder handles this call.
- transcript_exists (409): the meeting already has a transcript, or this external_id is stored with different content. A meeting holds at most one imported transcript.
- do_not_ingest (409): the meeting or its series is marked do-not-ingest.
- ambiguous_meeting (422): several occurrences match; resend with started_at.
- meeting_not_ended (422): the meeting has not finished yet; retry after it ends.
- unmatched_meeting (422): no meeting matched the identifiers sent.
- privacy_blocked (403): org privacy settings block this meeting's content.
- meeting_deleted (410): the meeting was deleted.
Retries with the same external_id and the same transcript return created: false.
post/v1/meetings/transcripts
Request
- Base URLhttps://api.monaco.com
- URLhttps://api.monaco.com/v1/meetings/transcripts
- Authnone declared
Request body
Example request
{
"external_id": "call-abc123",
"transcript": [
{
"speaker": "Jane Smith",
"text": "Thanks everyone for joining.",
"end": 1.5,
"language": "en"
}
],
"meeting_id": "550e8400-e29b-41d4-a716-446655440000",
"calendar_event_id": "abc123",
"ical_uid": "abc123@google.com",
"started_at": "2026-03-01T10:02:14Z"
}Response
Successful Response
Changes
- info
endpoint added
- info