Everything an AI agent can do with the Fireflies API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints17
API version2.24.1
Last updated23 June 2026
Orientation

How the Fireflies API works.

The Fireflies API is how an app or AI agent works with a Fireflies workspace: reading a meeting transcript with its sentences and summary, listing the people on a team, uploading audio to transcribe, or clipping a moment into a soundbite. Access is granted through an API key, and that key inherits the access of the person it belongs to, so it can reach only what that person can and admin-only actions still need an admin. A single area can also push an event when a transcript is ready, so an integration is notified instead of polling.

17Endpoints
5Capability groups
8Read
9Write
8Permissions
Authentication
Fireflies authenticates every call with an API key sent as a Bearer token in the Authorization header. A key is generated from the Integrations section of a Fireflies account and is tied to that one user. There is no separate test or live mode and no OAuth for first-party calls, so a key must be stored securely and never exposed in client code.
Permissions
There are no per-method scopes to grant. A key inherits exactly the access of its owner, so it sees only that person's and their team's data, and an admin-only action like setting a user's role or deleting another member's meeting fails with require_elevated_privilege unless the key belongs to an admin. Some methods also need a paid plan and return paid_required on free accounts.
Rate limits
Calls are capped by the plan behind the key: a free account gets 50 requests per day, Pro 500 per day, and Business or Enterprise 60 requests per minute. A few methods carry their own tighter limit regardless of plan, such as adding the bot to a live meeting (3 per 20 minutes) and deleting a transcript (10 per minute). Going over returns a too_many_requests error with a retryAfter timestamp.
Data model
Fireflies exposes a single GraphQL endpoint where a read is a query and a write is a mutation. A meeting is a Transcript carrying its sentences, summary, speakers, and media links; people are Users on a team; a clipped moment is a Bite (soundbite). There is no URL version to pin, and a finished transcript can be announced by webhook.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to Fireflies determines what it can reach. There is a route for making calls, a route for receiving an event when a transcript is ready, and a hosted server that exposes Fireflies tools to agents, and each is governed by the API key behind it and the access that key inherits from its owner.

Ways to connect

GraphQL API

Fireflies exposes a single GraphQL endpoint at https://api.fireflies.ai/graphql. A read is a query (transcripts, users, bites) and a write is a mutation (uploadAudio, createBite, setUserRole, deleteTranscript). Every call is a POST authenticated with an API key sent as a Bearer token, and list queries page with limit (max 50) and skip.

Best forConnecting an app or AI agent to Fireflies.
Governed byThe API key and the access its owner has.
Docs ↗

Webhooks

Fireflies POSTs a JSON payload to an HTTPS endpoint registered in the dashboard's Developer settings, or to a URL passed on an audio upload, when a transcript finishes processing. The payload names the meeting, the event type, and any client_reference_id. Each request carries an x-hub-signature header, a SHA-256 HMAC the receiver verifies before trusting it.

Best forReceiving a notification when a transcript is ready.
Governed byThe signing secret used to verify the x-hub-signature header.
Docs ↗

MCP server

A hosted Model Context Protocol server at https://api.fireflies.ai/mcp exposes around twenty Fireflies tools to AI agents across meetings and transcripts, meeting management, channels, soundbites, users and teams, and automation logs. It authenticates with OAuth or an API key. Two tools, fireflies_search and fireflies_fetch, are experimental and may not reach every account.

Best forConnecting an AI agent to Fireflies through MCP.
Governed byThe OAuth grant or API key and the access its owner has.
Docs ↗
Authentication

API key (Bearer)

Fireflies authenticates every first-party call with an API key sent as a Bearer token in the Authorization header. The key is generated from the Integrations section of a Fireflies account and is tied to that one user, so it has no scopes of its own and instead inherits whatever access its owner has. There is no separate test or live mode.

TokenBearer API key
Best forServer-side calls from an app or AI agent.
Docs ↗

OAuth (MCP server)

The hosted MCP server can authenticate an agent with OAuth instead of a raw API key, so consent is granted through a sign-in flow rather than by sharing a key. The resulting access still reflects what the connecting user can reach in Fireflies.

TokenOAuth access token
Best forConnecting an AI agent through the MCP server without sharing a key.
Docs ↗
Endpoint reference

Every Fireflies API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Transcripts (meetings)

Read recorded meetings with their sentences and summaries, and manage them.7

Returns only transcripts the key's owner can access. Max limit is 50 per page.

Acts ontranscript
Permission (capability)transcripts:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Returns object_not_found if the id is unknown or the key's owner lacks access.

Acts ontranscript
Permission (capability)transcripts:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

An owner can delete their own meeting; deleting another member's needs admin, else require_elevated_privilege.

Acts ontranscript
Permission (capability)transcripts:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit10 requests per minute (all tiers)

Returns only meetings the key's owner can see.

Acts onactive_meeting
Permission (capability)transcripts:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Title is limited to 256 characters.

Acts ontranscript
Permission (capability)transcripts:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Changes who in the workspace can see the meeting.

Acts ontranscript
Permission (capability)transcripts:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Up to 50 email addresses per request.

Acts ontranscript
Permission (capability)transcripts:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit10 requests per hour (all tiers)

Users (team)

Read the people on a team and change a member's role.4

Returns users within the key owner's team only.

Acts onuser
Permission (capability)users:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Querying a user outside the owner's organization returns object_not_found.

Acts onuser
Permission (capability)users:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Admin-only; a non-admin key returns require_elevated_privilege.

Acts onuser
Permission (capability)users:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Returns groups within the key owner's team.

Acts onuser_group
Permission (capability)users:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Audio upload

Upload audio or video for Fireflies to transcribe.1

Paid plans only; free accounts return paid_required. File must be at least 50KB unless bypass_size_check is set.

Acts onaudio_upload
Permission (capability)audio:write
VersionAvailable since the API’s base version
Webhook eventtranscription_complete
Rate limitStandard limits apply

Soundbites (bites)

Read and create short clips taken from a meeting.3

At least one of mine, transcript_id, or my_team is required, else args_required. Max limit is 50.

Acts onbite
Permission (capability)bites:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Returns object_not_found if the id is unknown or out of reach.

Acts onbite
Permission (capability)bites:read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

privacies sets visibility to public, team, or participants. Summary is limited to 500 characters.

Acts onbite
Permission (capability)bites:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Live meetings

Add the Fireflies bot to a meeting in progress and clip live moments.2

An unsupported meeting URL returns unsupported_platform. Duration ranges 15 to 120 minutes.

Acts onlive_meeting
Permission (capability)live:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit3 requests per 20 minutes (all tiers)

Organizer or admin only; consumes AI credits and returns require_ai_credits when none remain.

Acts onlive_soundbite
Permission (capability)live:write
VersionAvailable since the API’s base version
Webhook eventNone
Rate limit10 requests per hour (all tiers)
No endpoints match those filters.
Webhooks

Webhook events.

Fireflies can notify an app when a meeting has finished processing and its transcript is ready. It sends a small JSON payload naming the transcript, so an integration learns a recording is ready without polling.

EventWhat it signalsTriggered by
Transcription completeFires when a meeting has finished processing and its transcript is ready. The JSON payload names the meeting (meetingId), the event type, and any client_reference_id set on the upload.mutation uploadAudio
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

Fireflies limits how many calls an app can make, and the ceiling depends on the plan of the account whose key is used, with a few methods carrying their own tighter limit.

Request rate

Fireflies meters calls against the plan of the account whose key is used, not against a per-method cost. A free account is allowed 50 requests per day, a Pro account 500 per day, and a Business or Enterprise account 60 requests per minute. Separate from that account ceiling, a handful of methods carry their own limit that applies on every plan: adding the bot to a live meeting is capped at 3 requests per 20 minutes, creating a live soundbite and sharing a meeting at 10 per hour, and deleting a transcript at 10 per minute. Going over returns a too_many_requests error carrying a retryAfter timestamp to wait for before retrying.

Pagination

List queries such as transcripts, users, and bites page through results with skip (how many to step past) and limit (how many to return). The maximum limit is 50 per call, so a larger set is read by stepping skip forward in pages of up to 50.

Request size

An audio upload must be at least 50KB unless bypass_size_check is set for very short clips. A meeting title is limited to 256 characters, a soundbite summary to 500, and a keyword search to 255. The client_reference_id passed on an upload, echoed back on the webhook, may be up to 128 characters.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400invalid_argumentsOne or more arguments were invalid, for example a value outside its allowed range.Read the field constraints in the error metadata and correct the arguments before resending.
400args_requiredA required argument was missing, for example calling bites without mine, transcript_id, or my_team.Supply one of the mandatory arguments named in the error metadata.
400payload_too_smallAn uploaded file is under the 50KB minimum.Submit a file larger than 50KB, or set bypass_size_check for a very short clip.
400unsupported_platformThe meeting URL passed to addToLiveMeeting is not a supported platform.Use a link from a supported platform, like Zoom, Google Meet, or Microsoft Teams.
402require_ai_creditsThe account has no AI credits left for an operation that consumes them, like creating a live soundbite.Upgrade the plan or add AI credits, then retry.
403forbiddenThe key's owner is not authorized to perform the requested action.Confirm the owner has permission for the operation, or use a key that does.
403paid_requiredThe operation is restricted to paid plans, for example uploading audio on a free account.Upgrade to the required tier (Pro or higher) and retry.
403require_elevated_privilegeAn admin-only action was attempted with a non-admin key, like setting a user's role or deleting another member's meeting.Use a key belonging to a team admin, or have an admin perform the action.
404object_not_foundThe requested object does not exist or is not visible to the key's owner.Verify the id and confirm the key's owner has access to that resource.
429too_many_requestsA rate limit was exceeded, either the plan's call ceiling or a method's own limit.Wait until the retryAfter timestamp in the error, then retry, and slow the request rate.
500invariant_violationAn unexpected internal error on the Fireflies side.Retry, and contact Fireflies support if it persists.
Versioning & freshness

Version history.

Fireflies serves a single, continuously updated API and tracks notable changes through a numbered changelog rather than a dated version an integration pins to.

Version history

What changed, and when

Latest version2.24.1
2.24.1Current version
Pro plan rate limit raised

Fireflies serves a single, continuously updated GraphQL API and records notable changes in a numbered changelog rather than a dated version an integration pins to.

What changed
  • Increased the API rate limit for Pro plan accounts from 50 to 500 requests per day.
  • Free accounts remain at 50 requests per day; Business and Enterprise remain at 60 per minute.
2.23.2
Self-service transcript deletion

deleteTranscript was widened so a user can delete their own meetings.

What changed
  • Updated deleteTranscript so an owner can delete their own meeting, where previously only a team admin could delete via the API.
2.23.0
Live transcript support

Added live-transcript signals to the Transcript schema.

What changed
  • Added the is_live field to the Transcript schema and live-transcript support for sentences.
2.22.0
Meeting sharing mutations

Introduced sharing and access-revocation for meetings.

What changed
  • Introduced shareMeeting and revokeSharedMeetingAccess mutations, with a shared_with field on the transcript.
2.19.0
Channels added

Added channels for organizing meetings.

What changed
  • Introduced channels and channel queries with new Channel and ChannelMember schemas.
2.16.0
AskFred assistant

Launched the AskFred AI meeting assistant with its own queries and mutations.

What changed
  • Launched the AskFred AI-powered meeting assistant with multiple query and mutation operations.
2.14.0
Active meetings query

Added a way to read meetings in progress.

What changed
  • Added the active_meetings query for retrieving in-progress meetings.
2.13.0
Delete rate limit

Applied a tighter limit to transcript deletion.

What changed
  • Applied rate limiting to the deleteTranscript mutation at 10 requests per minute.
2.6.0
Realtime API

Added Realtime API support for live meeting events.

What changed
  • Introduced Realtime API support.
2.3.3
Add to live meeting

Added the ability to add the bot to a meeting in progress.

What changed
  • Added the addToLiveMeeting mutation.
2.2.0
Soundbites added

Added soundbites (bites) to the API.

What changed
  • Added bites queries and the createBite mutation.

There is no version to pin; follow the changelog for new fields and behavior changes.

Fireflies API changelog ↗
Questions

Fireflies API, answered.

How do I authenticate with the Fireflies API?+
Every request carries an Authorization header of the form Bearer your_api_key. The key is generated from the Integrations section of a Fireflies account, belongs to that one user, and should be kept in a secret store rather than in client code. There is no OAuth flow for first-party calls and no separate test mode.
Does a Fireflies API key have scopes or permissions?+
There are no per-operation scopes to choose. A key simply inherits the access of the person it belongs to, so it reaches only the data that user and their team can see. Admin-only actions, like setting a user's role or deleting another member's meeting, succeed only when the key belongs to an admin, otherwise they fail with require_elevated_privilege.
Which operations need a paid plan?+
Reading transcripts and users works on any plan within the rate limit, but some writes require a paid subscription and return paid_required on a free account, including uploading audio to transcribe. Creating a live soundbite additionally consumes AI credits and returns require_ai_credits when none are left. The daily and per-minute call ceilings also rise with the plan.
What are the rate limits and what happens when I exceed them?+
The ceiling depends on the plan behind the key: 50 requests per day on free, 500 per day on Pro, and 60 per minute on Business or Enterprise. Some methods add their own limit on every plan, such as adding the bot to a live meeting (3 per 20 minutes) and deleting a transcript (10 per minute). Exceeding any of these returns a too_many_requests error with a retryAfter timestamp to wait for.
How do I get notified when a transcript is ready?+
Register an HTTPS endpoint in the Developer settings of the Fireflies dashboard, or pass a webhook URL on an audio upload for a one-off notification. When processing finishes, Fireflies POSTs a JSON payload naming the meeting (meetingId), the event type, and any client_reference_id set on the upload. Each request carries an x-hub-signature header, a SHA-256 HMAC the receiver verifies before trusting the payload.
Does Fireflies have an MCP server for AI agents?+
Yes. Fireflies hosts a remote Model Context Protocol server at https://api.fireflies.ai/mcp that exposes around twenty tools across meetings and transcripts, meeting management, channels, soundbites, users and teams, and automation logs. It authenticates with OAuth or an API key. Two tools, fireflies_search and fireflies_fetch, are marked experimental and may not be available to every account.
Related

More productivity API guides for agents

What is Bollard AI?

Control what every AI agent can do in Fireflies.

Bollard AI sits between a team's AI agents and Fireflies. Grant each agent exactly the access it needs, read or write, area by area, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared Fireflies key.
  • Denied by default, so an agent reaches only what has been explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
Fireflies
Meeting Notes Agent
Read transcripts ResourceOffReadFull use
Delete a transcript ActionOffReadFull use
Soundbites ResourceOffReadFull use
Change a member's role ActionOffReadFull use
Per-agent access, set in Bollard AI, not in Fireflies