POST
/
audio
/
generate-upload-url
curl --request POST \
  --url https://scribe-api.puppilot.co/audio/generate-upload-url \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-API-Version: <x-api-version>' \
  --data '{
  "recording_session_public_id": "<string>",
  "auto_scribe_template_public_id": "<string>"
}'
{
  "url": "<string>",
  "message": "Presigned URL generated successfully. Use it to upload the audio file."
}

Overview

Generates a presigned URL to upload an audio file. The public_id from the previously created recording session is required. Optionally, users can provide auto_scribe_template_public_id to automatically start scribing upon upload completion. Users can set up webhooks to receive notifications when the scribing process is complete. View Webhook Docs

Request Body

  • recording_session_public_id (string) - The public ID of the recording session.
  • auto_scribe_template_public_id (string, optional) - The public ID of the the scribe template to use for automatic transcription. If provided, the scribing process starts automatically after upload completion.

Supported Audio Formats

The following audio file formats are supported:

.flac, .mp3, .mp4, .mpeg, .mpga, .m4a, .ogg, .wav, .webm

Additionally, you can upload a .zip file containing multiple audio files. The system will automatically process and transcribe each file inside the archive.

Example Request

{
    "recording_session_public_id": "<string>"
}

Uploading the Audio File

Once you receive the presigned URL, use it to upload your file.

Upload Command

Run the following command in your terminal to upload the audio file:

curl -X PUT -T "<AUDIO_FILE_PATH>" "<PRE_SIGNED_URL>"

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-API-Version
string
required

API versioning is required. Include the header X-API-Version with current version value in all requests.

Example:

"v1"

Body

application/json
recording_session_public_id
string
required

The public ID of the recording session.

auto_scribe_template_public_id
string | null

The public ID of the scribe template to use for automatic transcription. Optional.

Response

200 - application/json
Presigned URL generated successfully.
url
string
message
string