Access the Fireflies.ai GraphQL API with managed OAuth authentication. Retrieve meeting transcripts, summaries, users, contacts, channels, and use AI-powered meeting analysis with AskFred.
Reference
Request Format
POST /fireflies/graphql
Content-Type: application/json
{
"query": "{ ... }",
"variables": { ... }
}Get Current User
{
user {
user_id
name
email
is_admin
num_transcripts
minutes_consumed
recent_transcript
recent_meeting
}
}Response:
{
"data": {
"user": {
"user_id": "01KH5131Z0W4TS7BBSEP66CV6V",
"name": "John Doe",
"email": "john@example.com",
"is_admin": true,
"num_transcripts": null,
"minutes_consumed": 0
}
}
}List Users
{
users {
user_id
name
email
is_admin
num_transcripts
minutes_consumed
}
}List Transcripts
{
transcripts {
id
title
date
duration
host_email
organizer_email
privacy
transcript_url
audio_url
video_url
dateString
calendar_type
meeting_link
}
}With Variables (filtering):
{
"query": "query($limit: Int, $skip: Int) { transcripts(limit: $limit, skip: $skip) { id title date duration } }",
"variables": {
"limit": 10,
"skip": 0
}
}Get Transcript by ID
query($id: String!) {
transcript(id: $id) {
id
title
date
duration
host_email
privacy
transcript_url
audio_url
summary {
overview
short_summary
action_items
outline
keywords
meeting_type
}
sentences {
text
speaker_name
start_time
end_time
}
participants
speakers {
name
}
}
}List Channels
{
channels {
id
title
created_at
updated_at
is_private
created_by
}
}Get Channel by ID
query($id: String!) {
channel(id: $id) {
id
title
created_at
is_private
members
}
}List Contacts
{
contacts {
email
name
picture
last_meeting_date
}
}List User Groups
{
user_groups {
id
name
}
}List Bites (Soundbites)
{
bites {
id
name
transcript_id
thumbnail
preview
status
summary
start_time
end_time
media_type
created_at
}
}Get Bite by ID
query($id: String!) {
bite(id: $id) {
id
name
transcript_id
summary
start_time
end_time
captions
}
}List Active Meetings
{
active_meetings {
id
title
date
}
}AskFred Threads
Query meeting content using AI.
List Threads:
{
askfred_threads {
id
title
created_at
}
}Get Thread by ID:
query($id: String!) {
askfred_thread(id: $id) {
id
title
messages {
content
role
}
}
}Upload Audio
mutation($input: AudioUploadInput!) {
uploadAudio(input: $input) {
success
title
message
}
}Variables:
{
"input": {
"url": "https://example.com/audio.mp3",
"title": "Meeting Recording"
}
}Delete Transcript
mutation($id: String!) {
deleteTranscript(id: $id) {
success
message
}
}Update Meeting Title
mutation($id: String!, $title: String!) {
updateMeetingTitle(id: $id, title: $title) {
success
}
}Update Meeting Privacy
mutation($id: String!, $privacy: String!) {
updateMeetingPrivacy(id: $id, privacy: $privacy) {
success
}
}Update Meeting Channel
mutation($id: String!, $channelId: String!) {
updateMeetingChannel(id: $id, channelId: $channelId) {
success
}
}Set User Role
mutation($userId: String!, $role: String!) {
setUserRole(userId: $userId, role: $role) {
success
}
}Create Bite
mutation($input: CreateBiteInput!) {
createBite(input: $input) {
id
name
}
}AskFred Mutations
Create Thread:
mutation($input: CreateAskFredThreadInput!) {
createAskFredThread(input: $input) {
id
title
}
}Continue Thread:
mutation($id: String!, $question: String!) {
continueAskFredThread(id: $id, question: $question) {
id
messages {
content
role
}
}
}Delete Thread:
mutation($id: String!) {
deleteAskFredThread(id: $id) {
success
}
}Live Meeting Mutations
Update Meeting State (pause/resume):
mutation($id: String!, $state: String!) {
updateMeetingState(id: $id, state: $state) {
success
}
}Create Live Action Item:
mutation($meetingId: String!, $text: String!) {
createLiveActionItem(meetingId: $meetingId, text: $text) {
success
}
}Create Live Soundbite:
mutation($meetingId: String!, $name: String!) {
createLiveSoundbite(meetingId: $meetingId, name: $name) {
success
}
}Add Bot to Live Meeting:
mutation($meetingLink: String!) {
addToLiveMeeting(meetingLink: $meetingLink) {
success
}
}