Skip to main content

Overview

The uploadAudio mutation allows you to upload audio files to Fireflies.ai for transcription.

Arguments

input
AudioUploadInput

Usage Example

To upload a file, provide the necessary input parameters to the mutation. Here’s an example of how this mutation could be used:
mutation uploadAudio($input: AudioUploadInput) {
  uploadAudio(input: $input) {
    success
    title
    message
  }
}
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your_api_key" \
  -d '{
    "query": "mutation($input: AudioUploadInput) { uploadAudio(input: $input) { success title message } }",
    "variables": {
      "input": {
        "url": "https://url-to-the-audio-file",
        "title": "title of the file",
        "attendees": [
          {
            "displayName": "Fireflies Notetaker",
            "email": "[email protected]",
            "phoneNumber": "xxxxxxxxxxxxxxxx"
          },
          {
            "displayName": "Fireflies Notetaker 2",
            "email": "[email protected]",
            "phoneNumber": "xxxxxxxxxxxxxxxx"
          }
        ]
      }
    }
  }' \
  https://api.fireflies.ai/graphql
{
  "data": {
    "uploadAudio": {
      "success": true,
      "title": "title of the file",
      "message": "Uploaded audio has been queued for processing."
    }
  }
}

Authenticated Downloads

The download_auth field allows you to upload audio/video files that require authentication. This is useful when your media files are hosted on private servers or behind authentication.

Bearer Token Authentication

Use bearer token authentication when your media URL requires an Authorization: Bearer <token> header:
mutation {
  uploadAudio(input: {
    url: "https://example.com/protected-audio.mp3"
    title: "Protected Meeting Recording"
    download_auth: {
      type: bearer_token
      bearer: {
        token: "your-bearer-token-here"
      }
    }
  }) {
    success
    message
  }
}

Basic Authentication

Use basic authentication when your media URL requires username and password:
mutation {
  uploadAudio(input: {
    url: "https://example.com/protected-audio.mp3"
    title: "Protected Meeting Recording"
    download_auth: {
      type: basic_auth
      basic: {
        username: "your-username"
        password: "your-password"
      }
    }
  }) {
    success
    message
  }
}
Note: The username is optional for basic auth. If not provided, only the password will be used.

FAQ

Audio upload only works with publicly accessible URLs or URLs with supported authentication (bearer token or basic auth). We cannot accept files hosted on your local machine.

You have two options:

  1. Signed URLs: Use signed URLs with short expiry times (e.g., AWS S3 presigned URLs, Google Cloud Storage signed URLs)
  2. Authenticated Downloads: Use the download_auth field to provide bearer token or basic authentication credentials. Fireflies will use these credentials when downloading your media file.

Fireflies supports two authentication methods for downloading media files:

  • Bearer Token: Adds Authorization: Bearer <token> header when downloading
  • Basic Auth: Adds Authorization: Basic <base64(username:password)> header when downloading

If your media file is publicly accessible, you don’t need to provide download_auth.

Error Codes

List of possible error codes that may be returned by the uploadAudio mutation. Full list of error codes can be found here.

The user account has been cancelled. Please contact support if you encounter this error.

The audio file is too short to be processed. Please ensure the audio file is at least 50kb in size.

The language code you provided is invalid. Please refer to the Language Codes page for a list of valid language codes.

Additional Resources