# Fireflies.ai

> Bring your Fireflies.ai meeting recordings and AI notes into your workflows.

App · Meeting Notes · 38 actions. Web page: https://docs.lodol.com/docs/integrations/fireflies

## Actions

### Add live action item

Add an action item to a meeting that is happening now, described in plain words for Fireflies' assistant to write up. Only the meeting's organizer or a team admin can do this, Fireflies allows 10 an hour, and each one spends AI credits.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The live meeting's ID: the 'id' of a List active meetings result.
- Action item (`prompt`, text, required): What needs doing, in 5 to 255 characters, such as 'James sends the revised quote by Friday'.

**Outputs**

- `success` (true/false): Whether Fireflies did it.

**Example output**

```json
{
  "success": true
}
```

### Add member to user group

Add a teammate to a user group by email. Needs a team admin's API key and a Fireflies Business plan or higher.

**Inputs**

- User group (`group_id`, text, required): The user group. Pick one, or give its ID.
- Team member's email (`email`, text, required): The email address of someone on your Fireflies team.

**Outputs**

- `handle` (text)
- `id` (text)
- `members` (list)
- `name` (text)

**Example output**

```json
{
  "handle": "sales",
  "id": "grp_sales",
  "members": [
    {
      "email": "sarah@example.com",
      "first_name": "Sarah",
      "last_name": "Chen",
      "name": "Sarah Chen",
      "user_id": "01HXUSER000000000000000"
    }
  ],
  "name": "Sales"
}
```

### Ask Fred

Ask Fireflies' AI assistant a question about one meeting, or about every meeting that matches the filters (by default the last 30 days, and never more than a year back). Returns the answer and a thread ID for follow-up questions. Spends Fireflies AI credits.

**Inputs**

- Question (`question`, text, required): What to ask, up to 2,000 characters, such as 'What objections did customers raise this week?'
- Meeting ID (`meeting_id`, text): Ask about this meeting only. Leave blank to ask across meetings, narrowed by the filters below.
- From date (`start_date`, date and time): Only meetings on or after this date, up to a year back.
- To date (`end_date`, date and time): Only meetings on or before this date and time.
- Meeting IDs (`meeting_ids`, list): Only these meetings.
- Channel IDs (`channel_ids`, list): Only meetings in these channels.
- Organizer emails (`organizer_emails`, list): Only meetings organized by these addresses.
- Participant emails (`participant_emails`, list): Only meetings these addresses attended.
- Answer language (`language`, text): Answer in this language, as a code such as 'en' or 'es'. Leave blank to answer in the question's language.
- Answer format (`answer_format`, text): Markdown keeps headings and lists; plain text has none. One of: `markdown`, `plaintext` (Plain text).
- Suggest follow-up questions (`suggest_follow_ups`, true/false): Also suggest follow-up questions. The answer takes longer.

**Outputs**

- `answer` (text): AskFred's answer.
- `cost` (number): AI credits used.
- `created_at` (text)
- `message_id` (text)
- `query` (text): The question that was asked.
- `status` (text): processing, completed or failed.
- `suggested_queries` (list): Follow-up questions, when they were asked for.
- `thread_id` (text): The conversation's ID, for follow-up questions.

**Example output**

```json
{
  "answer": "The release ships on 1 August, after the design review on Thursday.",
  "cost": 1.0,
  "created_at": "2026-07-15T10:30:00Z",
  "message_id": "msg_001",
  "query": "What did we decide about the release?",
  "status": "completed",
  "suggested_queries": [],
  "thread_id": "thread_abc123"
}
```

### Ask Fred a follow-up

Ask a follow-up question in an Ask Fred conversation, which keeps the earlier questions and answers in mind. Spends Fireflies AI credits.

**Inputs**

- Thread ID (`thread_id`, text, required): The conversation's ID: the 'thread_id' of an Ask Fred result.
- Question (`question`, text, required): The follow-up question, up to 2,000 characters.
- Answer language (`language`, text): Answer in this language, as a code such as 'en' or 'es'. Leave blank to answer in the question's language.
- Answer format (`answer_format`, text): Markdown keeps headings and lists; plain text has none. One of: `markdown`, `plaintext` (Plain text).
- Suggest follow-up questions (`suggest_follow_ups`, true/false): Also suggest follow-up questions. The answer takes longer.

**Outputs**

- `answer` (text): AskFred's answer.
- `cost` (number): AI credits used.
- `created_at` (text)
- `message_id` (text)
- `query` (text): The question that was asked.
- `status` (text): processing, completed or failed.
- `suggested_queries` (list): Follow-up questions, when they were asked for.
- `thread_id` (text): The conversation's ID, for follow-up questions.

**Example output**

```json
{
  "answer": "James Lee owns the design review on Thursday.",
  "cost": 1.0,
  "created_at": "2026-07-15T10:31:00Z",
  "message_id": "msg_002",
  "query": "Who owns the design review?",
  "status": "completed",
  "suggested_queries": [],
  "thread_id": "thread_abc123"
}
```

### Change who can see a meeting

Set who can open a meeting's notes and recording in Fireflies. Only the meeting's owner or a team admin can do this.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.
- Who can see it (`privacy`, text, required): Who can open the meeting. One of: `link` (Anyone with the link), `owner` (Only the owner), `participants`, `teammatesandparticipants` (Teammates and participants), `teammates`, `participatingteammates` (Teammates who took part (beta)).

**Outputs**

- `id` (text)
- `privacy` (text)
- `title` (text)

**Example output**

```json
{
  "id": "01HXAMPLE0000000000000000",
  "privacy": "teammates",
  "title": "Weekly Standup"
}
```

### Clip live soundbite

Clip a soundbite from a meeting that is happening now, described in plain words, such as 'the pricing discussion'. Only the meeting's organizer or a team admin can do this, Fireflies allows 10 an hour, and each one spends AI credits.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The live meeting's ID: the 'id' of a List active meetings result.
- What to clip (`prompt`, text, required): What the clip should capture, in 5 to 255 characters.

**Outputs**

- `success` (true/false): Whether Fireflies did it.

**Example output**

```json
{
  "success": true
}
```

### Create soundbite

Clip part of a meeting's recording as a soundbite to share. Fireflies makes the clip in the background: its status is 'ready' when it can be played.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.
- Start time (`start_time`, number, required): Where the clip starts, in seconds from the start of the meeting. A transcript line's 'start_time' works. At least 0.
- End time (`end_time`, number, required): Where the clip ends, in seconds from the start. At least 0.
- Name (`name`, text): The clip's title, up to 256 characters.
- Summary (`summary`, text): A description, up to 500 characters.
- Media (`media_type`, text): Video or audio only. One of: `video`, `audio`.
- Who can see it (`privacies`, list): Leave blank for Fireflies' default. One or more of: `public` (Anyone with the link), `team` (Teammates), `participants` (Meeting participants).

**Outputs**

- `captions` (list)
- `created_at` (text)
- `created_by` (object)
- `end_time` (number): Seconds from the start of the meeting.
- `id` (text)
- `media_type` (text): video or audio.
- `meeting_id` (text)
- `name` (text)
- `preview` (text)
- `privacies` (list): Who can see it.
- `sources` (list): Where to play the clip.
- `start_time` (number): Seconds from the start of the meeting.
- `status` (text): pending, processing, ready or error.
- `summary` (text)
- `thumbnail` (text)

**Example output**

```json
{
  "captions": [
    {
      "end_time": 3.2,
      "speaker_name": "Sarah Chen",
      "start_time": 0.5,
      "text": "Let's start with the release timeline."
    }
  ],
  "created_at": "2026-07-15T10:00:00.000Z",
  "created_by": {
    "id": "01HXUSER000000000000000",
    "name": "Sarah Chen"
  },
  "end_time": 6.1,
  "id": "01HXBITE00000000000000000",
  "media_type": "video",
  "meeting_id": "01HXAMPLE0000000000000000",
  "name": "Release timeline",
  "preview": "https://cdn.fireflies.ai/bites/preview.mp4",
  "privacies": [
    "team"
  ],
  "sources": [
    {
      "type": "video/mp4",
      "url": "https://cdn.fireflies.ai/bites/clip.mp4"
    }
  ],
  "start_time": 0.5,
  "status": "pending",
  "summary": "Sarah sets the release timeline.",
  "thumbnail": "https://cdn.fireflies.ai/bites/thumb.jpg"
}
```

### Delete Ask Fred conversation

Permanently delete an Ask Fred conversation and its messages. The meetings it was about are not touched.

**Inputs**

- Thread ID (`thread_id`, text, required): The conversation's ID: the 'thread_id' of an Ask Fred result.

**Outputs**

- `deleted` (true/false)
- `id` (text)
- `title` (text)

**Example output**

```json
{
  "deleted": true,
  "id": "thread_abc123",
  "title": "What did we decide about the release?"
}
```

### Delete meeting

Permanently delete a meeting with its recording, transcript and notes. This cannot be undone. You can delete your own meetings; deleting a teammate's needs a team admin. Fireflies allows 10 deletions a minute.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.

**Outputs**

- `date` (text)
- `deleted` (true/false)
- `id` (text)
- `title` (text)

**Example output**

```json
{
  "date": "2026-07-15T09:00:00Z",
  "deleted": true,
  "id": "01HXAMPLE0000000000000000",
  "title": "Weekly Standup"
}
```

### Get Ask Fred conversation

Get an Ask Fred conversation with every question and answer in it.

**Inputs**

- Thread ID (`thread_id`, text, required): The conversation's ID: the 'thread_id' of an Ask Fred result.

**Outputs**

- `created_at` (text)
- `id` (text)
- `meeting_id` (text): The meeting it is about, if just one.
- `messages` (list): The questions and answers, in order.
- `title` (text): Taken from the first question.
- `user_id` (text)

**Example output**

```json
{
  "created_at": "2026-07-15T10:30:00Z",
  "id": "thread_abc123",
  "meeting_id": "01HXAMPLE0000000000000000",
  "messages": [
    {
      "answer": "The release ships on 1 August, after the design review on Thursday.",
      "created_at": "2026-07-15T10:30:00Z",
      "message_id": "msg_001",
      "query": "What did we decide about the release?",
      "status": "completed",
      "suggested_queries": [],
      "thread_id": "thread_abc123"
    },
    {
      "answer": "James Lee owns the design review on Thursday.",
      "created_at": "2026-07-15T10:31:00Z",
      "message_id": "msg_002",
      "query": "Who owns the design review?",
      "status": "completed",
      "suggested_queries": [],
      "thread_id": "thread_abc123"
    }
  ],
  "title": "What did we decide about the release?",
  "user_id": "01HXUSER000000000000000"
}
```

### Get channel

Get one channel's name, privacy and members.

**Inputs**

- Channel (`channel_id`, text, required): The channel (folder). Pick one, or give a channel's ID.

**Outputs**

- `created_at` (text)
- `created_by` (text): Email of whoever made the channel.
- `id` (text)
- `is_private` (true/false)
- `members` (list)
- `title` (text)
- `updated_at` (text)

**Example output**

```json
{
  "created_at": "2026-06-01T09:00:00.000Z",
  "created_by": "sarah@example.com",
  "id": "01HXCHANNEL0000000000000",
  "is_private": false,
  "members": [
    {
      "email": "sarah@example.com",
      "name": "Sarah Chen",
      "user_id": "01HXUSER000000000000000"
    }
  ],
  "title": "Customer calls",
  "updated_at": "2026-07-01T09:00:00.000Z"
}
```

### Get meeting

Get one meeting's details: who organized and attended it, when each person joined and left, who spoke, who can see it, its channel and whether its notes are ready.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.

**Outputs**

- `attendance` (list): When each participant joined and left, as ISO 8601.
- `attendees` (list): The invited attendees.
- `calendar_id` (text): The calendar event's ID.
- `calendar_type` (text): The calendar provider.
- `channel_ids` (list): The channel the meeting is filed in.
- `date` (text): When the meeting took place, as ISO 8601 UTC.
- `duration` (number): How long the meeting lasted, in minutes.
- `fireflies_users` (list): Participants who have a Fireflies account.
- `host_email` (text): Email address of the organizer (the same as organizer_email).
- `id` (text): The meeting's unique ID. Use this with the other meeting actions.
- `is_live` (true/false): Whether the meeting is happening now.
- `meeting_link` (text): The Zoom, Google Meet or Teams link, when there was one.
- `notetaker_joined` (true/false): Whether the Fireflies notetaker joined.
- `organizer_email` (text): Email address of the organizer.
- `owner` (object): The Fireflies user the meeting was recorded for.
- `participants` (list): Email addresses of everyone who took part.
- `privacy` (text): Who can see the meeting: link, owner, participants, teammatesandparticipants, teammates or participatingteammates.
- `silent_meeting` (true/false): Whether nothing was said.
- `speakers` (list): The names of everyone who spoke.
- `summary_status` (text): processing, processed, failed or skipped.
- `title` (text): The meeting's title.
- `transcript_url` (text): Link to the meeting in Fireflies.ai.

**Example output**

```json
{
  "attendance": [
    {
      "join_time": "2026-07-15T09:00:00.000Z",
      "leave_time": "2026-07-15T09:30:00.000Z",
      "name": "Sarah Chen"
    }
  ],
  "attendees": [
    {
      "email": "sarah@example.com",
      "name": "Sarah Chen"
    },
    {
      "email": "james@example.com",
      "name": "James Lee"
    }
  ],
  "calendar_id": "7f3c2b1a@google.com",
  "calendar_type": "google",
  "channel_ids": [
    "01HXCHANNEL0000000000000"
  ],
  "date": "2026-07-15T09:00:00Z",
  "duration": 30.0,
  "fireflies_users": [
    "sarah@example.com"
  ],
  "host_email": "sarah@example.com",
  "id": "01HXAMPLE0000000000000000",
  "is_live": false,
  "meeting_link": "https://meet.google.com/abc-defg-hij",
  "notetaker_joined": true,
  "organizer_email": "sarah@example.com",
  "owner": {
    "email": "sarah@example.com",
    "id": "01HXUSER000000000000000",
    "name": "Sarah Chen"
  },
  "participants": [
    "sarah@example.com",
    "james@example.com"
  ],
  "privacy": "teammates",
  "silent_meeting": false,
  "speakers": [
    "Sarah Chen",
    "James Lee"
  ],
  "summary_status": "processed",
  "title": "Weekly Standup",
  "transcript_url": "https://app.fireflies.ai/view/01HXAMPLE0000000000000000"
}
```

### Get meeting analytics

Get a meeting's conversation analytics: how positive or negative it was, how many questions, dates, metrics and tasks came up, and each speaker's talk time, word count, pace and filler words. Needs a Fireflies Pro plan or higher.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.

**Outputs**

- `categories` (object): How many questions, dates, metrics and tasks came up.
- `id` (text)
- `sentiments` (object): How positive, neutral and negative the conversation was, in percent.
- `speakers` (list): Talk-time figures per speaker.
- `title` (text)

**Example output**

```json
{
  "categories": {
    "date_times": 3.0,
    "metrics": 2.0,
    "questions": 6.0,
    "tasks": 4.0
  },
  "id": "01HXAMPLE0000000000000000",
  "sentiments": {
    "negative_pct": 4.0,
    "neutral_pct": 61.0,
    "positive_pct": 35.0
  },
  "speakers": [
    {
      "duration": 820.0,
      "duration_pct": 55.0,
      "filler_words": 12.0,
      "longest_monologue": 95.0,
      "monologues_count": 14.0,
      "name": "Sarah Chen",
      "questions": 4.0,
      "speaker_id": "0",
      "word_count": 2100.0,
      "words_per_minute": 154.0
    }
  ],
  "title": "Weekly Standup"
}
```

### Get meeting summary

Get the AI-generated notes for one meeting, including a written overview, the action items, the key topics, an outline, a one-line gist and the meeting type. Use the List meetings action first to find the meeting's ID.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The ID of the meeting to summarize. You can get this from the List meetings action.

**Outputs**

- `action_items` (text): The follow-up tasks identified in the meeting, one per line.
- `bullet_gist` (text): A few bullet points with emoji.
- `date` (text): When the meeting took place, as ISO 8601 UTC.
- `gist` (text): The meeting in one sentence.
- `id` (text)
- `keywords` (list): The main topics and terms.
- `meeting_type` (text): What kind of meeting it was.
- `outline` (text): A section-by-section outline with timestamps.
- `short_overview` (text): A brief overview.
- `short_summary` (text): The meeting in one paragraph.
- `shorthand_bullet` (text): Shorthand bullet notes.
- `summary` (text): A written overview of what the meeting covered.
- `summary_status` (text): processing, processed, failed or skipped. The notes are empty until it is processed.
- `title` (text)
- `topics_discussed` (list): The topics discussed.
- `transcript_chapters` (list): Chapters of the condensed transcript.

**Example output**

```json
{
  "action_items": "Sarah: Follow up with the design team.\nJames: Schedule the next review.",
  "bullet_gist": "\ud83c\udfaf Q1 goals reviewed\n\ud83d\udcc5 Release timeline confirmed",
  "date": "2026-07-15T09:00:00Z",
  "gist": "The team confirmed the release timeline.",
  "id": "01HXAMPLE0000000000000000",
  "keywords": [
    "Q1 goals",
    "release timeline",
    "design review"
  ],
  "meeting_type": "Standup",
  "outline": "Q1 goals\nProject timelines\nNext steps",
  "short_overview": "Q1 review and release planning.",
  "short_summary": "The team reviewed Q1 goals and confirmed the timeline.",
  "shorthand_bullet": "Q1 goals reviewed; timelines confirmed.",
  "summary": "The team reviewed Q1 goals and confirmed project timelines for the next release.",
  "summary_status": "processed",
  "title": "Weekly Standup",
  "topics_discussed": [
    "Q1 goals",
    "Release timeline"
  ],
  "transcript_chapters": [
    "Q1 goals",
    "Release timeline"
  ]
}
```

### Get meeting transcript

Get the full word-for-word transcript of one meeting, as a single speaker-labelled text block and as individual timestamped lines. Use the List meetings action first to find the meeting's ID.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The ID of the meeting to transcribe. You can get this from the List meetings action.

**Outputs**

- `attendees` (list): The invited attendees.
- `date` (text): When the meeting took place, as ISO 8601 UTC.
- `duration` (number): How long the meeting lasted, in minutes.
- `host_email` (text): Email address of the organizer (the same as organizer_email).
- `id` (text): The meeting's unique ID. Use this with the other meeting actions.
- `meeting_link` (text): The Zoom, Google Meet or Teams link, when there was one.
- `organizer_email` (text): Email address of the organizer.
- `participants` (list): Email addresses of everyone who took part.
- `sentence_count` (number): How many transcript lines there are.
- `sentences` (list): The transcript line by line.
- `speakers` (list): The names of everyone who spoke.
- `text` (text): The whole transcript, one 'Speaker: what they said' line per sentence.
- `title` (text): The meeting's title.
- `transcript_url` (text): Link to the meeting in Fireflies.ai.

**Example output**

```json
{
  "attendees": [
    {
      "email": "sarah@example.com",
      "name": "Sarah Chen"
    },
    {
      "email": "james@example.com",
      "name": "James Lee"
    }
  ],
  "date": "2026-07-15T09:00:00Z",
  "duration": 30.0,
  "host_email": "sarah@example.com",
  "id": "01HXAMPLE0000000000000000",
  "meeting_link": "https://meet.google.com/abc-defg-hij",
  "organizer_email": "sarah@example.com",
  "participants": [
    "sarah@example.com",
    "james@example.com"
  ],
  "sentence_count": 2,
  "sentences": [
    {
      "end_time": 3.2,
      "speaker_name": "Sarah Chen",
      "start_time": 0.5,
      "text": "Let's start with the release timeline."
    },
    {
      "end_time": 6.1,
      "speaker_name": "James Lee",
      "start_time": 3.4,
      "text": "Design review lands on Thursday."
    }
  ],
  "speakers": [
    "Sarah Chen",
    "James Lee"
  ],
  "text": "Sarah Chen: Let's start with the release timeline.\nJames Lee: Design review lands on Thursday.",
  "title": "Weekly Standup",
  "transcript_url": "https://app.fireflies.ai/view/01HXAMPLE0000000000000000"
}
```

### Get recording links

Get download links for a meeting's audio and, if video recording is on in Fireflies, its video. The links stop working after 24 hours, so use them in the same run. Needs a Fireflies Pro plan or higher.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.

**Outputs**

- `audio_url` (text): A download link for the audio. It stops working after 24 hours.
- `id` (text)
- `title` (text)
- `video_url` (text): A download link for the video, if video recording is on. It stops working after 24 hours.

**Example output**

```json
{
  "audio_url": "https://cdn.fireflies.ai/audio/standup.mp3?token=abc",
  "id": "01HXAMPLE0000000000000000",
  "title": "Weekly Standup",
  "video_url": "https://cdn.fireflies.ai/video/standup.mp4?token=abc"
}
```

### Get soundbite

Get one soundbite: its clip and thumbnail links, captions, summary and processing status.

**Inputs**

- Soundbite ID (`soundbite_id`, text, required): The 'id' of a List soundbites or Create soundbite result.

**Outputs**

- `captions` (list)
- `created_at` (text)
- `created_by` (object)
- `end_time` (number): Seconds from the start of the meeting.
- `id` (text)
- `media_type` (text): video or audio.
- `meeting_id` (text)
- `name` (text)
- `preview` (text)
- `privacies` (list): Who can see it.
- `sources` (list): Where to play the clip.
- `start_time` (number): Seconds from the start of the meeting.
- `status` (text): pending, processing, ready or error.
- `summary` (text)
- `thumbnail` (text)

**Example output**

```json
{
  "captions": [
    {
      "end_time": 3.2,
      "speaker_name": "Sarah Chen",
      "start_time": 0.5,
      "text": "Let's start with the release timeline."
    }
  ],
  "created_at": "2026-07-15T10:00:00.000Z",
  "created_by": {
    "id": "01HXUSER000000000000000",
    "name": "Sarah Chen"
  },
  "end_time": 6.1,
  "id": "01HXBITE00000000000000000",
  "media_type": "video",
  "meeting_id": "01HXAMPLE0000000000000000",
  "name": "Release timeline",
  "preview": "https://cdn.fireflies.ai/bites/preview.mp4",
  "privacies": [
    "team"
  ],
  "sources": [
    {
      "type": "video/mp4",
      "url": "https://cdn.fireflies.ai/bites/clip.mp4"
    }
  ],
  "start_time": 0.5,
  "status": "ready",
  "summary": "Sarah sets the release timeline.",
  "thumbnail": "https://cdn.fireflies.ai/bites/thumb.jpg"
}
```

### Get team analytics

Get the team's meeting and conversation figures for a period: meeting counts and time, talk-to-listen ratio, questions, filler words, sentiment, and the same per team member. Needs a team admin's API key and a Fireflies Business plan or higher.

**Inputs**

- From date (`start_date`, date and time): The start of the period.
- To date (`end_date`, date and time): The end of the period.

**Outputs**

- `team` (object)
- `users` (list): Figures per team member.

**Example output**

```json
{
  "team": {
    "conversation": {
      "average_filler_words": 9.0,
      "average_monologues_count": 11.0,
      "average_questions": 5.0,
      "average_sentiments": {
        "negative_pct": 5.0,
        "neutral_pct": 60.0,
        "positive_pct": 35.0
      },
      "average_silence_duration": 40.0,
      "average_talk_listen_ratio": 0.8,
      "average_words_per_minute": 148.0,
      "longest_monologue_duration_sec": 210.0,
      "teammates_count": 4.0,
      "total_filler_words": 270.0,
      "total_meeting_notes_count": 30.0,
      "total_meetings_count": 30.0,
      "total_monologues_count": 330.0,
      "total_questions": 150.0,
      "total_silence_duration": 1200.0
    },
    "meeting": {
      "average_count": 7.5,
      "average_duration": 30.0,
      "count": 30.0,
      "duration": 900.0
    }
  },
  "users": [
    {
      "conversation": {
        "talk_listen_pct": 55.0,
        "talk_listen_ratio": 1.2,
        "total_silence_duration": 300.0,
        "total_speak_duration": 8200.0,
        "total_word_count": 21000.0,
        "user_filler_words": 80.0,
        "user_longest_monologue_sec": 210.0,
        "user_monologues_count": 90.0,
        "user_questions": 40.0,
        "user_speak_duration": 8200.0,
        "user_word_count": 21000.0,
        "user_words_per_minute": 154.0
      },
      "email": "sarah@example.com",
      "meeting": {
        "count": 12.0,
        "duration": 360.0
      },
      "name": "Sarah Chen",
      "user_id": "01HXUSER000000000000000"
    }
  ]
}
```

### Get team member

Get one team member's details and user groups. Leave the team member blank to get the API key's owner, which also shows whose account the connection uses.

**Inputs**

- Team member (`member_id`, text): Leave blank for the API key's owner.

**Outputs**

- `email` (text)
- `id` (text): The member's Fireflies user ID.
- `integrations` (list): Their connected integrations.
- `is_admin` (true/false): Whether they administer the team.
- `minutes_consumed` (number): Transcription minutes used.
- `name` (text)
- `num_transcripts` (number): How many meetings they have recorded.
- `recent_meeting` (text): Their most recent meeting.
- `recent_transcript` (text): Their most recent transcript.
- `user_groups` (list): The user groups they belong to.

**Example output**

```json
{
  "email": "sarah@example.com",
  "id": "01HXUSER000000000000000",
  "integrations": [
    "google_calendar",
    "slack"
  ],
  "is_admin": true,
  "minutes_consumed": 3400.0,
  "name": "Sarah Chen",
  "num_transcripts": 128.0,
  "recent_meeting": "01HXAMPLE0000000000000000",
  "recent_transcript": "01HXAMPLE0000000000000000",
  "user_groups": [
    {
      "handle": "sales",
      "id": "grp_sales",
      "name": "Sales"
    }
  ]
}
```

### List active meetings

List the meetings the Fireflies notetaker is in right now, with their IDs for the live meeting actions. Without an email this lists the API key owner's; a team admin can ask for any teammate's.

**Inputs**

- Team member's email (`email`, text): Whose meetings to list. Leave blank for the API key's owner.
- State (`states`, list): Leave blank for both recording and paused meetings. One or more of: `active` (Recording), `paused`.

**Outputs**

- `meetings` (list): The meetings in progress.

**Example output**

```json
{
  "meetings": [
    {
      "end_time": "2026-07-15T15:00:00.000Z",
      "id": "01HXLIVE00000000000000000",
      "meeting_link": "https://zoom.us/j/123456789",
      "organizer_email": "sarah@example.com",
      "privacy": "teammates",
      "start_time": "2026-07-15T14:00:00.000Z",
      "state": "active",
      "title": "Customer call: Acme Corp"
    }
  ]
}
```

### List AI app outputs

List what your Fireflies AI apps (custom prompts run on each meeting, such as 'Sales call scorecard') wrote, for one meeting, one app, or both. Returns up to 10 at a time.

**Inputs**

- Meeting ID (`meeting_id`, text): Only outputs for this meeting: the 'id' of a List meetings result.
- AI app ID (`app_id`, text): Only outputs of this AI app: an 'app_id' from an earlier result.
- Maximum outputs (`limit`, number): How many to return, from 1 to 10. From 1 to 10.
- Skip (`skip`, number): How many results to skip, to read the next page. At least 0.

**Outputs**

- `outputs` (list): The AI app outputs.

**Example output**

```json
{
  "outputs": [
    {
      "app_id": "app_scorecard",
      "created_at": "2026-07-15T09:33:20Z",
      "meeting_id": "01HXAMPLE0000000000000000",
      "prompt": "Score the call on discovery, demo and next steps.",
      "response": "Discovery: 4/5. Demo: 3/5. Next steps: agreed.",
      "title": "Sales call scorecard",
      "user_id": "01HXUSER000000000000000"
    }
  ]
}
```

### List Ask Fred conversations

List the API key owner's Ask Fred conversations. Fireflies keeps conversations about one meeting out of the full list, so to find those, choose the meeting.

**Inputs**

- Meeting ID (`meeting_id`, text): List the conversations about this meeting. Leave blank for the ones asked across meetings.

**Outputs**

- `threads` (list): The conversations.

**Example output**

```json
{
  "threads": [
    {
      "created_at": "2026-07-15T10:30:00Z",
      "id": "thread_abc123",
      "meeting_id": "01HXAMPLE0000000000000000",
      "title": "What did we decide about the release?",
      "user_id": "01HXUSER000000000000000"
    }
  ]
}
```

### List channels

List the channels (folders that meetings are filed in) the API key's owner can see: every public channel and the private ones they belong to.

**Inputs**: None.

**Outputs**

- `channels` (list): The channels the key's owner can see.

**Example output**

```json
{
  "channels": [
    {
      "created_at": "2026-06-01T09:00:00.000Z",
      "created_by": "sarah@example.com",
      "id": "01HXCHANNEL0000000000000",
      "is_private": false,
      "members": [
        {
          "email": "sarah@example.com",
          "name": "Sarah Chen",
          "user_id": "01HXUSER000000000000000"
        }
      ],
      "title": "Customer calls",
      "updated_at": "2026-07-01T09:00:00.000Z"
    }
  ]
}
```

### List contacts

List the people the API key's owner has met with, with the date of their last meeting together.

**Inputs**: None.

**Outputs**

- `contacts` (list): People you have met with.

**Example output**

```json
{
  "contacts": [
    {
      "email": "client@example.com",
      "last_meeting_date": "2026-07-15",
      "name": "Alex Morgan",
      "picture": ""
    }
  ]
}
```

### List live action items

List the action items so far in a meeting that is happening now, both those Fireflies noticed and those added with Add live action item. Only the meeting's organizer or a team admin can read them.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The live meeting's ID: the 'id' of a List active meetings result.

**Outputs**

- `action_items` (list): The action items so far.

**Example output**

```json
{
  "action_items": [
    {
      "action_item": "Send the revised quote to Acme by Friday.",
      "name": "James Lee"
    }
  ]
}
```

### List meetings

List the meetings Fireflies.ai has recorded and transcribed, newest first. Search titles or what was said, and narrow the results to a date range, an organizer, a participant, a team member or a channel. Use this to find a meeting's ID before reading its notes or transcript.

**Inputs**

- Search for (`keyword`, text): Only meetings that mention this. Searches titles unless Search in says otherwise.
- Search in (`search_in`, text): Where to look for the search words. Defaults to titles. One of: `title` (Meeting titles), `sentences` (What was said), `all` (Titles and what was said).
- From date (`start_date`, date and time): Only include meetings held on or after this date and time, for example 2026-07-15T09:00:00Z. Leave blank to include meetings from any start date.
- To date (`end_date`, date and time): Only include meetings held on or before this date and time, for example 2026-07-31T17:00:00Z. Leave blank to include meetings up to the present.
- Maximum meetings (`limit`, number): The most meetings to return, from 1 to 50. Leave blank to use the Fireflies default. From 1 to 50.
- Skip (`skip`, number): How many results to skip, to read the next page. At least 0.
- Host email (`host_email`, text): Only include meetings hosted by this email address. Leave blank to include meetings from any host.
- Organizer email (`organizer_email`, text): Only meetings organized by one of these addresses. Separate several with commas.
- Participant email (`participant_email`, text): Only include meetings one of these email addresses attended. Separate several with commas. Leave blank to include meetings with any participant.
- Team member (`member_id`, text): Only meetings this team member organized or attended.
- Only my meetings (`mine`, true/false): Only meetings the API key's owner organized.
- Channel (`channel_id`, text): Only meetings filed in this channel.

**Outputs**

- `meetings` (list): The matching meetings, newest first.

**Example output**

```json
{
  "meetings": [
    {
      "attendees": [
        {
          "email": "sarah@example.com",
          "name": "Sarah Chen"
        },
        {
          "email": "james@example.com",
          "name": "James Lee"
        }
      ],
      "date": "2026-07-15T09:00:00Z",
      "duration": 30.0,
      "host_email": "sarah@example.com",
      "id": "01HXAMPLE0000000000000000",
      "meeting_link": "https://meet.google.com/abc-defg-hij",
      "organizer_email": "sarah@example.com",
      "participants": [
        "sarah@example.com",
        "james@example.com"
      ],
      "title": "Weekly Standup",
      "transcript_url": "https://app.fireflies.ai/view/01HXAMPLE0000000000000000"
    }
  ]
}
```

### List soundbites

List soundbites (short clips cut from meetings): yours, your team's, or one meeting's. With nothing chosen it lists yours.

**Inputs**

- Meeting ID (`meeting_id`, text): Only clips from this meeting: the 'id' of a List meetings result.
- Whose soundbites (`owner`, text): Yours or your whole team's. One of: `mine`, `team` (My team's).
- Maximum soundbites (`limit`, number): How many to return, from 1 to 50. From 1 to 50.
- Skip (`skip`, number): How many to skip, up to 5,000, to read the next page. From 0 to 5000.

**Outputs**

- `soundbites` (list): The soundbites.

**Example output**

```json
{
  "soundbites": [
    {
      "captions": [
        {
          "end_time": 3.2,
          "speaker_name": "Sarah Chen",
          "start_time": 0.5,
          "text": "Let's start with the release timeline."
        }
      ],
      "created_at": "2026-07-15T10:00:00.000Z",
      "created_by": {
        "id": "01HXUSER000000000000000",
        "name": "Sarah Chen"
      },
      "end_time": 6.1,
      "id": "01HXBITE00000000000000000",
      "media_type": "video",
      "meeting_id": "01HXAMPLE0000000000000000",
      "name": "Release timeline",
      "preview": "https://cdn.fireflies.ai/bites/preview.mp4",
      "privacies": [
        "team"
      ],
      "sources": [
        {
          "type": "video/mp4",
          "url": "https://cdn.fireflies.ai/bites/clip.mp4"
        }
      ],
      "start_time": 0.5,
      "status": "ready",
      "summary": "Sarah sets the release timeline.",
      "thumbnail": "https://cdn.fireflies.ai/bites/thumb.jpg"
    }
  ]
}
```

### List team members

List the people in your Fireflies.ai workspace, with how many meetings each has recorded. Use this to find the email address or user ID to filter meetings by.

**Inputs**: None.

**Outputs**

- `users` (list): The people on the team.

**Example output**

```json
{
  "users": [
    {
      "email": "sarah@example.com",
      "id": "01HXUSER000000000000000",
      "integrations": [
        "google_calendar",
        "slack"
      ],
      "is_admin": true,
      "minutes_consumed": 3400.0,
      "name": "Sarah Chen",
      "num_transcripts": 128.0,
      "recent_meeting": "01HXAMPLE0000000000000000"
    }
  ]
}
```

### List user groups

List the team's user groups and their members.

**Inputs**

- Only groups I'm in (`mine`, true/false): Only the groups the API key's owner belongs to.

**Outputs**

- `user_groups` (list): The user groups.

**Example output**

```json
{
  "user_groups": [
    {
      "handle": "sales",
      "id": "grp_sales",
      "members": [
        {
          "email": "sarah@example.com",
          "first_name": "Sarah",
          "last_name": "Chen",
          "name": "Sarah Chen",
          "user_id": "01HXUSER000000000000000"
        }
      ],
      "name": "Sales"
    }
  ]
}
```

### Move meetings to a channel

File up to 5 meetings in a channel (a Fireflies folder). A meeting is in one channel at a time, so this replaces its current one. If any meeting can't be moved, none are. Only the meetings' owner or a team admin can do this.

**Inputs**

- Meeting IDs (`meeting_ids`, list, required): One to five meeting IDs.
- Channel (`channel_id`, text, required): The channel (folder). Pick one, or give a channel's ID.

**Outputs**

- `channel_id` (text)
- `meetings` (list): The meetings that were moved.

**Example output**

```json
{
  "channel_id": "01HXCHANNEL0000000000000",
  "meetings": [
    {
      "channel_ids": [
        "01HXCHANNEL0000000000000"
      ],
      "id": "01HXAMPLE0000000000000000",
      "title": "Weekly Standup"
    }
  ]
}
```

### Pause or resume recording

Pause or resume the Fireflies notetaker's recording in a meeting that is happening now. Only the meeting's organizer or a team admin can, up to 10 times an hour.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The live meeting's ID: the 'id' of a List active meetings result.
- Recording (`recording`, text, required): Pause or resume. One of: `pause_recording` (Pause recording), `resume_recording` (Resume recording).

**Outputs**

- `action` (text): pause_recording or resume_recording.
- `success` (true/false)

**Example output**

```json
{
  "action": "pause_recording",
  "success": true
}
```

### Remove member from user group

Remove a teammate from a user group by email. Needs a team admin's API key and a Fireflies Business plan or higher.

**Inputs**

- User group (`group_id`, text, required): The user group. Pick one, or give its ID.
- Team member's email (`email`, text, required): The email address of someone on your Fireflies team.

**Outputs**

- `handle` (text)
- `id` (text)
- `members` (list)
- `name` (text)

**Example output**

```json
{
  "handle": "sales",
  "id": "grp_sales",
  "members": [],
  "name": "Sales"
}
```

### Rename meeting

Change a meeting's title. Fireflies only lets team admins rename meetings, and the title must be 5 to 256 characters.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.
- New title (`title`, text, required): The new title, 5 to 256 characters.

**Outputs**

- `id` (text)
- `title` (text)

**Example output**

```json
{
  "id": "01HXAMPLE0000000000000000",
  "title": "Weekly Standup: Q3 planning"
}
```

### Send notetaker to a meeting

Send the Fireflies.ai notetaker into a meeting that is happening now, so it records and transcribes the call. Works with Zoom, Google Meet, and Microsoft Teams links. Fireflies allows 3 of these requests every 20 minutes.

**Inputs**

- Meeting link (`meeting_link`, text, required): The https link to the live meeting to join, for example a Zoom, Google Meet, or Microsoft Teams URL.
- Meeting title (`title`, text): The title to file the recording under in Fireflies. Leave blank to use the meeting's own name.
- Meeting password (`meeting_password`, text): The password or passcode the meeting needs, if it has one (up to 32 characters).
- Minutes to stay (`duration`, number): How many minutes the notetaker should stay, from 15 to 120. Leave blank for 60. From 15 to 120.
- Meeting language (`language`, text): The language spoken in the meeting, as a code such as 'en' or 'es'. Leave blank for English.
- Attendees (`attendees`, list): Who is taking part. Each attendee needs an email; name and phone_number are optional. Fireflies uses them to file notes in a connected CRM.

**Outputs**

- `success` (true/false): Whether Fireflies did it.

**Example output**

```json
{
  "success": true
}
```

### Set team member's role

Make a team member an admin or a regular member. Needs a team admin's API key, and the team must keep at least one admin.

**Inputs**

- Team member (`member_id`, text, required): The team member. Pick one, or give their Fireflies user ID.
- Role (`role`, text, required): Admin or member. One of: `admin`, `user` (Member).

**Outputs**

- `id` (text)
- `is_admin` (true/false): Whether they are now a team admin.
- `name` (text)
- `role` (text): admin or user.

**Example output**

```json
{
  "id": "01HXUSER000000000000000",
  "is_admin": true,
  "name": "Sarah Chen",
  "role": "admin"
}
```

### Share meeting

Share a meeting with up to 50 people by email, even outside your team, for good or for 7, 14 or 30 days. Fireflies emails them a link. Only the meeting's owner or a team admin can share, up to 60 times an hour.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.
- Share with (`emails`, list, required): The email addresses to share with, up to 50.
- Access expires after (`expiry_days`, text): Leave blank for access that never expires. One of: `7` (7 days), `14` (14 days), `30` (30 days).
- Share as (`share_type`, text): An email invitation, or a password-protected link that works without a Fireflies account. Password links are in beta at Fireflies: ask their support to turn them on. One of: `EMAIL` (Invite by email), `PASSWORD_LINK` (Password-protected link (beta)).
- Link password (`password`, text): 8 to 128 characters. Fireflies does not email it, so send it to them separately. Only when Share as is Password-protected link (beta).

**Outputs**

- `message` (text): What Fireflies said, such as already invited.
- `share_link` (text): The password-protected link, when one was made.
- `shared_with` (list): The addresses it was shared with.
- `success` (true/false): Whether Fireflies shared the meeting.

**Example output**

```json
{
  "message": "Invite created successfully",
  "share_link": "",
  "shared_with": [
    "client@example.com"
  ],
  "success": true
}
```

### Stop sharing meeting

Take back one person's access to a meeting that was shared with them. Only the meeting's owner or a team admin can do this.

**Inputs**

- Meeting ID (`meeting_id`, text, required): The meeting's ID: the 'id' of a List meetings result.
- Email (`email`, text, required): The address the meeting was shared with.

**Outputs**

- `email` (text)
- `message` (text)
- `success` (true/false)

**Example output**

```json
{
  "email": "client@example.com",
  "message": "Access revoked",
  "success": true
}
```

### Transcribe a recording

Send an audio or video recording to Fireflies.ai to be transcribed. The file is fetched from a URL and transcribed in the background, so its notes appear in the List meetings action a few minutes later. Needs a paid Fireflies plan: on the free plan this action returns 'You need to be subscribed to a paid plan to perform this action', though the rest of the integration still works. Fireflies rejects files smaller than 50KB unless told otherwise.

**Inputs**

- Recording URL (`url`, text, required): An https link to the audio or video file to transcribe (mp3, mp4, wav, m4a or ogg). It must be the file itself, not a preview page, and public or pre-signed unless Download sign-in is set.
- Meeting title (`title`, text): The title to file the recording under in Fireflies. Leave blank to use the file name.
- Attendees (`attendees`, list): Who is taking part. Each attendee needs an email; name and phone_number are optional. Fireflies uses them to file notes in a connected CRM.
- Meeting date (`meeting_date`, date and time): When the meeting really took place, for importing old recordings. It can't be in the future. Leave blank to date it now.
- Language (`language`, text): The language spoken, as a code such as 'es' or 'de'. Leave blank for your Fireflies default.
- Reference ID (`client_reference_id`, text): Your own ID for this upload, up to 128 characters. Fireflies sends it back in its webhook.
- Webhook URL (`webhook_url`, text): A URL Fireflies calls when the transcript is ready.
- Save video (`save_video`, true/false): Keep the video, not just the audio, of a video file.
- Allow recordings under 50KB (`bypass_size_check`, true/false): Transcribe very short clips that Fireflies would otherwise reject as too small.
- Download sign-in (`download_auth`, text): How Fireflies signs in to download a file that isn't public. One of: `none` (None (a public or pre-signed link)), `bearer_token` (Bearer token), `basic_auth` (Username and password).
- Download token (`download_token`, text): Sent as 'Authorization: Bearer <token>'. Only when Download sign-in is Bearer token.
- Download username (`download_username`, text): Optional. Only when Download sign-in is Username and password.
- Download password (`download_password`, text): The password for the file's server. Only when Download sign-in is Username and password.

**Outputs**

- `message` (text): What Fireflies reported about the upload.
- `success` (true/false): Whether Fireflies accepted the recording.
- `title` (text): The title the recording was filed under.

**Example output**

```json
{
  "message": "Uploaded audio has been queued for processing.",
  "success": true,
  "title": "Customer call: Acme Corp"
}
```
