Fireflies.ai Transcripts API

Retrieve and manage meeting transcripts and their content

Operations 1

POST / Execute a GraphQL operation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fireflies-transcripts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fireflies-transcripts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fireflies GraphQL Transcripts API
  description: 'The Fireflies GraphQL API provides a single HTTP endpoint for querying and mutating all meeting data including transcripts, summaries, action items, speakers, and analytics. Developers can retrieve transcripts, manage live meetings, work with AskFred AI threads, handle bites (meeting clips), and access audit event logs via strongly-typed GraphQL queries and mutations. Authentication uses a Bearer API key passed in the Authorization header.

    '
  version: 1.0.0
  contact:
    name: Fireflies.ai Support
    url: https://guide.fireflies.ai/
  x-api-type: GraphQL
  x-documentation-url: https://docs.fireflies.ai/getting-started/introduction
servers:
- url: https://api.fireflies.ai/graphql
  description: Fireflies GraphQL API endpoint
security:
- BearerAuth: []
tags:
- name: Transcripts
  description: Retrieve and manage meeting transcripts and their content
paths:
  /:
    post:
      summary: Execute a GraphQL operation
      description: 'All Fireflies API operations are performed via GraphQL POST requests to this single endpoint. The body must contain a `query` string (GraphQL query or mutation) and optionally a `variables` object. See the Fireflies documentation for the full schema of available queries and mutations.

        '
      operationId: graphqlOperation
      tags:
      - Transcripts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            examples:
              GetTranscript:
                summary: Query a single transcript by ID
                value:
                  query: "query Transcript($id: String!) {\n  transcript(id: $id) {\n    id\n    title\n    date\n    duration\n    host_email\n    organizer_email\n    participants\n    transcript_url\n    audio_url\n    video_url\n    summary {\n      overview\n      action_items\n      keywords\n      gist\n      short_summary\n      meeting_type\n      topics_discussed\n    }\n    sentences {\n      index\n      speaker_name\n      text\n      start_time\n      end_time\n    }\n  }\n}\n"
                  variables:
                    id: transcript-id-here
              ListTranscripts:
                summary: List transcripts with filters
                value:
                  query: "query Transcripts(\n  $title: String\n  $limit: Int\n  $skip: Int\n  $mine: Boolean\n  $host_email: String\n  $participant_email: String\n) {\n  transcripts(\n    title: $title\n    limit: $limit\n    skip: $skip\n    mine: $mine\n    host_email: $host_email\n    participant_email: $participant_email\n  ) {\n    id\n    title\n    date\n    duration\n    host_email\n    participants\n  }\n}\n"
                  variables:
                    limit: 10
                    skip: 0
                    mine: true
              GetUser:
                summary: Get the current authenticated user
                value:
                  query: "query User {\n  user {\n    user_id\n    name\n    email\n    num_transcripts\n    minutes_consumed\n    is_admin\n    integrations\n    recent_transcript\n    recent_meeting\n  }\n}\n"
              GetUsers:
                summary: List all users in the workspace
                value:
                  query: "query Users {\n  users {\n    user_id\n    name\n    email\n    is_admin\n    num_transcripts\n  }\n}\n"
              GetBite:
                summary: Get a single bite by ID
                value:
                  query: "query Bite($id: ID!) {\n  bite(id: $id) {\n    id\n    name\n    transcript_id\n    status\n    summary\n    start_time\n    end_time\n    media_type\n    created_at\n    thumbnail\n    preview\n  }\n}\n"
                  variables:
                    id: bite-id-here
              ListBites:
                summary: List bites with filters
                value:
                  query: "query Bites($mine: Boolean, $transcript_id: ID, $my_team: Boolean, $limit: Int) {\n  bites(mine: $mine, transcript_id: $transcript_id, my_team: $my_team, limit: $limit) {\n    id\n    name\n    transcript_id\n    status\n    summary\n    start_time\n    end_time\n    media_type\n    created_at\n  }\n}\n"
                  variables:
                    mine: true
                    limit: 10
              GetAIAppsOutputs:
                summary: Get AI app outputs for transcripts
                value:
                  query: "query GetAIAppsOutputs(\n  $app_id: String\n  $transcript_id: String\n  $skip: Float\n  $limit: Float\n) {\n  apps(\n    app_id: $app_id\n    transcript_id: $transcript_id\n    skip: $skip\n    limit: $limit\n  ) {\n    outputs {\n      transcript_id\n      user_id\n      app_id\n      created_at\n      title\n      prompt\n      response\n    }\n  }\n}\n"
                  variables:
                    limit: 10
              MutationSetUserRole:
                summary: Set a user's role (admin or user)
                value:
                  query: "mutation SetUserRole($user_id: String!, $role: Role!) {\n  setUserRole(user_id: $user_id, role: $role) {\n    name\n    is_admin\n  }\n}\n"
                  variables:
                    user_id: user-id-here
                    role: admin
              MutationDeleteTranscript:
                summary: Delete a transcript by ID
                value:
                  query: "mutation DeleteTranscript($id: String!) {\n  deleteTranscript(id: $id) {\n    title\n    date\n    duration\n    organizer_email\n  }\n}\n"
                  variables:
                    id: transcript-id-here
              MutationUploadAudio:
                summary: Upload an audio file for transcription
                value:
                  query: "mutation UploadAudio($input: AudioUploadInput!) {\n  uploadAudio(input: $input) {\n    success\n    title\n    message\n  }\n}\n"
                  variables:
                    input:
                      url: https://example.com/meeting-recording.mp3
                      title: Q3 Planning Meeting
                      webhook: https://example.com/webhook
                      attendees:
                      - displayName: Jane Smith
                        email: jane@example.com
              MutationCreateBite:
                summary: Create a bite (clip) from a transcript
                value:
                  query: "mutation CreateBite(\n  $transcript_id: ID!\n  $name: String\n  $start_time: Float!\n  $end_time: Float!\n  $media_type: String\n  $privacies: [String]\n  $summary: String\n) {\n  createBite(\n    transcript_id: $transcript_id\n    name: $name\n    start_time: $start_time\n    end_time: $end_time\n    media_type: $media_type\n    privacies: $privacies\n    summary: $summary\n  ) {\n    status\n    name\n    id\n  }\n}\n"
                  variables:
                    transcript_id: transcript-id-here
                    name: Key insight clip
                    start_time: 120.5
                    end_time: 180.0
                    media_type: video
                    privacies:
                    - public
              MutationAddToLiveMeeting:
                summary: Add Fireflies bot to a live meeting
                value:
                  query: "mutation AddToLiveMeeting(\n  $meeting_link: String!\n  $title: String\n  $duration: Int\n  $language: String\n  $attendees: [Attendee]\n) {\n  addToLiveMeeting(\n    meeting_link: $meeting_link\n    title: $title\n    duration: $duration\n    language: $language\n    attendees: $attendees\n  ) {\n    success\n  }\n}\n"
                  variables:
                    meeting_link: https://zoom.us/j/1234567890
                    title: Weekly Standup
                    duration: 60
                    language: en
      responses:
        '200':
          description: GraphQL response (errors may still be present in the response body)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
        '401':
          description: Authentication failed — invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLErrorResponse'
              example:
                errors:
                - friendly: true
                  code: auth_failed
                  message: An error occurred while authenticating your request. Please recheck your API key and try again.
                  extensions:
                    code: auth_failed
        '429':
          description: Rate limit exceeded
        '500':
          description: Internal server error
components:
  schemas:
    GraphQLRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
          description: The GraphQL query or mutation string
        variables:
          type: object
          description: Variables referenced in the query string
          additionalProperties: true
        operationName:
          type: string
          description: Optional name of the operation to execute (for multi-operation documents)
    GraphQLResponse:
      type: object
      properties:
        data:
          type: object
          description: The result data returned by the GraphQL operation
          additionalProperties: true
        errors:
          type: array
          description: GraphQL errors, if any
          items:
            $ref: '#/components/schemas/GraphQLError'
    GraphQLErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GraphQLError'
    GraphQLError:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        friendly:
          type: boolean
        extensions:
          type: object
          properties:
            code:
              type: string
          additionalProperties: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Obtain an API key from the Fireflies dashboard under Settings > Integrations > API. Pass the key as a Bearer token in the Authorization header.

        '